Advertisement
Guest User

Untitled

a guest
Sep 15th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <sys/types.h>
  3. #include <strings.h>
  4. #include <stdlib.h>
  5. #include <sys/socket.h>
  6. #include <netinet/in.h>
  7. #include <netdb.h>
  8. #include <unistd.h>
  9.  
  10. char *genStr(int length) {
  11. int i = 0;
  12. char *shit = malloc(sizeof(char) * length);
  13. for(i = 0; i < length; i++) {
  14. shit[i] = rand() % 128;
  15. } return shit;
  16. }
  17.  
  18. void login(int mySocket, char *myUser, char *myPass) {
  19. char *user = malloc(sizeof(char) * 512);
  20. char *pass = malloc(sizeof(char) * 512);
  21. sprintf(user, "USER %s\r\n", myUser);
  22. sprintf(pass, "PASS %s\r\n", myPass);
  23. write(mySocket, user, strlen(user));
  24. write(mySocket, pass, strlen(pass));
  25. }
  26.  
  27. void fuzz(int mySocket) {
  28. char fuzzerArgs[][20] = {
  29. "ABOR", "APPE", "AUTH", "CDUP",
  30. "CWD", "DELE", "EPRT", "EPSV",
  31. "FEAT", "HELP", "LIST", "MDTM",
  32. "MKD", "NLST", "NOOP", "OPTS",
  33. "PASS", "PASV", "PBSZ", "PORT",
  34. "PROT", "PWD", "QUIT", "REST",
  35. "RETR", "RMD", "RMFR", "SITE",
  36. "SITE CHGRP", "SITE HELP", "SITE MKDIR",
  37. "SITE SYMLINK", "SITE UTIME", "SITE CHMOD",
  38. "SITE RMDIR", "SIZE", "STAT", "STOR",
  39. "STOU", "SYST", "TYPE", "USER", "XCUP",
  40. "XCWD", "XMKD", "XPWD", "XRMD"
  41. };
  42. int len = rand() % 512;
  43. char *cmd = fuzzerArgs[rand()%47];
  44. char *fuzz = malloc(sizeof(char) * (len + strlen(cmd) + 4));
  45.  
  46. sprintf(fuzz, "%s %s\r\n", cmd, genStr(len));
  47. if(write(mySocket, fuzz, strlen(fuzz)) > 0) {
  48. printf("> %s (%d)\n", cmd, len);
  49. } else {
  50. printf("write() failed\n");
  51. }
  52. bzero(fuzz, (len + strlen(cmd) + 4));
  53. }
  54.  
  55. int main() {
  56. int i, fuzzSock, portno;
  57. struct sockaddr_in serv_addr;
  58. struct hostent *server;
  59. char buff[512];
  60. portno = 21;
  61. server = gethostbyname("127.0.0.1");
  62. bzero((char *)&serv_addr, sizeof(serv_addr));
  63. serv_addr.sin_family = AF_INET;
  64. serv_addr.sin_port = htons(portno);
  65. printf("Fuzzing FTP server running on 127.0.0.1[21]\n\n");
  66. for(;;) {
  67. fuzzSock = socket(AF_INET, SOCK_STREAM, 0);
  68. if(connect(fuzzSock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
  69. printf("Error: connect()\n"); exit(1);
  70. }
  71. login(fuzzSock, "z0x", "p4ssw0rt");
  72. recv(fuzzSock, &buff, 512, 0);
  73. sleep(1);
  74. for(i=0; i<10; i++) {
  75. fuzz(fuzzSock);
  76. sleep(1);
  77. bzero(&buff, 512);
  78. recv(fuzzSock, &buff, 512, 0);
  79. sleep(1);
  80. }
  81. close(fuzzSock);
  82. }
  83. return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement