Re: GrabTheCMS

Skapad 1 år sedan, skriven i Perl, med 226 visningar. This paste is a reply to GrabTheCMS by anonym
URL http://kod.perl.se/view/b4cd81e1 Bädda in
Ladda hem koden eller visa koden i råformatVisa bredare version
  1. #!/usr/bin/perl
  2. # This script helps you to get Wordpress & Joomla & Drupal Sites from a server
  3. # Demo : https://youtu.be/B56vi1iUhWw
  4.  
  5. use LWP::UserAgent;
  6.  
  7. use HTTP::Request::Common qw(GET);
  8.  
  9. use WWW::Mechanize;  
  10.  
  11. use Socket;
  12.  
  13. $mech = WWW::Mechanize->new(autocheck => 0);
  14. $ag = LWP::UserAgent->new();
  15.  
  16. $ag->agent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.3) Gecko/20010801");
  17.  
  18. $ag->timeout(10);
  19.  
  20. sub getSites {
  21.         for($count=10;$count<=1000;$count+=10)
  22.         {
  23.                 $k++;
  24. #               $url = "http://www.hotbot.com/search/web?pn=$k&q=ip%3A$ip&keyvol=01f9093871a6d24c0d94";
  25.                 $url = "https://www.bing.com/search?q=ip%3a$ip&go=Submit+Query&qs=ds&first=$count&FORM=PERE$k";
  26. #               $url = "https://www.bing.com/search?q=ip%3A$ip+&count=50&first=$count";
  27.                 $resp = $ag->request(HTTP::Request->new(GET => $url));
  28.  
  29.                 $rrs = $resp->content;
  30.  
  31.  
  32.  
  33.                 while($rrs =~ m/<a href=\"?http:\/\/(.*?)\//g)
  34.                 {
  35.        
  36.                         $link = $1;
  37.                
  38.                         if ( $link !~ /overture|msn|live|bing|yahoo|duckduckgo|google|yahoo|microsof/)
  39.                         {
  40.                                 if ($link !~ /^http:/)
  41.                                 {
  42.                                         $link = 'http://' . "$link" . '/';
  43.                                 }
  44.        
  45.                                 if($link !~ /\"|\?|\=|index\.php/)
  46.                                 {
  47.                                         if  (!  grep (/$link/,@result))
  48.                                         {
  49.                                                 push(@result,$link);
  50.                                         }
  51.                                 }
  52.                         }
  53.                 }
  54.         }
  55.         $found = $#result + 1;
  56.         print "found $found sites\n";
  57.        
  58. }
  59. sub WPS {
  60.         foreach $site (@result)
  61.         {
  62.                 $url = $mech->get("$site");
  63.                 $Scont = $mech->content;
  64.                 if ($Scont =~ m/wp-content/g)
  65.                 {
  66.                         $license = $site."license.txt";
  67.                         $horse = $mech->get("$license");
  68.                         if ($horse->is_success)
  69.                         {
  70.                                 $Scont = $mech->content;
  71.                                 $login = $site."wp-login.php";
  72.                                 $logUrl = $mech->get("$login");
  73.                                 if ($Scont =~ m/WordPress/)    
  74.                                 {
  75.                                         push @WPS,$site;
  76.                                         print "$site\n";
  77.                                 }
  78.                                 elsif($logUrl->is_success)
  79.                                 {
  80.                                         push @WPS,$site;
  81.                                         print "$site\n";
  82.                                 }
  83.  
  84.                         }
  85.  
  86.                 }
  87.  
  88.  
  89.         }
  90.  
  91. }
  92. sub Drupal {
  93.         foreach $site (@result)
  94.         {
  95.                 if  (!  grep (/$site/,@WPS) and ! grep(/$site/,@JM))
  96.                 {
  97.                         $mech->get("$site");
  98.                         $Scont = $mech->content;
  99.                         if ($Scont =~ m/<meta name="Generator" content="Drupal/ig)
  100.                         {
  101.                                 push @DS,$site;
  102.                                 print "$site\n";
  103.                         }
  104.                 }
  105.         }
  106. }
  107.  
  108. sub DRV {
  109.         foreach $site (@result)
  110.         {
  111.                 $mech->get("$site");
  112.                 $Scont = $mech->content;
  113.                 if ($Scont =~ m/<meta name="Generator" content="Drupal $ver/ig)
  114.                 {
  115.                         push @DS,$site;
  116.                         print "$site\n";
  117.                 }
  118.         }
  119.        
  120. }
  121.  
  122. sub Joomla {
  123.         foreach $site (@result)
  124.         {
  125.                 if  (!  grep (/$site/,@WPS))
  126.                 {
  127.                         $url = $mech->get("$site");
  128.                         $Scont = $mech->content;
  129.                         if ($Scont =~ m/<meta name="generator" content="Joomla!/ig)
  130.                         {
  131.                                 push @JM,$site;
  132.                                 print "$site\n";
  133.                         }
  134.                         else
  135.                         {
  136.                                 $admin = "$site/administrator/";
  137.                                 $mech->get("$site");
  138.                                 $AdminCont = $mech->content;
  139.                                 if ($AdminCont =~ m/<meta name="generator" content="Joomla!/ig)
  140.                                 {
  141.                                         push @JM,$site;
  142.                                         print "$site\n";
  143.                                 }
  144.                         }
  145.                 }
  146.         }
  147. }
  148. sub Joomla15 {
  149.         foreach $site (@result)
  150.         {
  151.                 $mech->get("$site");
  152.                 $Scont = $mech->content;
  153.                 if ($Scont =~ m/<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" \/>/ig)
  154.                 {
  155.                         push @JM,$site;
  156.                         print "$site\n";
  157.                 }
  158.                 else
  159.                 {
  160.                         $admin = "$site/administrator/";
  161.                         $mech->get("$site");
  162.                         $AdminCont = $mech->content;
  163.                         if ($AdminCont =~ m/<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" \/>/ig)
  164.                         {
  165.                                 push @JM,$site;
  166.                                 print "$site\n";
  167.                         }
  168.                 }
  169.         }
  170. }
  171.  
  172.  
  173. sub IP_id {
  174.         print "Enter the IP of the server or a site hosted on the same server\n";
  175.         print ">> ";
  176.         $input =<stdin>;
  177.         chomp($input);
  178.         if ($input =~ m/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/)
  179.         {
  180.                 $ip = $input;
  181.                 print "Collecting the sites...\n";
  182.                 getSites();
  183.         }
  184.         elsif ($input =~ m/\D/g)
  185.         {
  186.                 if ($input =~ m/https:\/\//)
  187.                 {
  188.                         $source = substr($input,8,length($input));
  189.                         print "Site : $source\n";
  190.                         print "Getting IP Adress...\n";
  191.                         $ip = inet_ntoa(inet_aton($source));
  192.                         print "IP: $ip\n";
  193.                         print "Collecting the sites...\n";
  194.                         getSites();
  195.                 }
  196.                 elsif ($input =~ m/http:\/\//)
  197.                 {
  198.                         $source = substr($input,7,length($input));
  199.                         print "Site : $source\n";
  200.                         print "Getting IP Adress...\n";
  201.                         $ip = inet_ntoa(inet_aton($source));
  202.                         print "IP: $ip\n";
  203.                         print "Collecting the sites...\n";
  204.                         getSites();
  205.  
  206.                 }
  207.                 else
  208.                 {
  209.                         print "Site : $input\n";
  210.                         print "Getting IP Adress...\n";
  211.                         $ip = inet_ntoa(inet_aton($input));
  212.                         print "IP : $ip\n";
  213.                         print "Collecting the sites...\n";
  214.                         getSites();
  215.                 }
  216.         }      
  217. }
  218.  
  219. sub Into {
  220.         print qq(
  221.          .-.
  222.    %%%%,/   :-.               << GrabTheCMS >>       -> {fallag Ghazzaw!}
  223.    % `%%%, /   `\\   _,        <TM> Fallaga  </TM>
  224.    |' \)`%%|     '-' /            
  225.   \\_/\  %%%/`-.___.'        <W>   Extract Wordpress Sites               </w>
  226.     __/  %%%"--"""-.%,      <J>   Extract Joomla Sites                  </j>
  227.   /`__|  %%         \\%%     <D>   Extract Drupal Sites                  </d>  
  228.  \\\\  \\   /   |     /'%,    <ALL> Extract all Sites                     </all>
  229.   \\]  | /----'.   < `%,    <WJD> Extract Wordpress + Joomla + Drupal   </wjd>
  230.        ||       `>> >
  231.       ||       ///`
  232.        /\(      //\(
  233. );
  234.  
  235.  
  236.         print "\t\t\t    #(w/j/d/all/WJD) : ";
  237.         $choice1 = <stdin>;
  238.         chomp ($choice1);
  239.         if ($choice1 eq "w" or $choice1 eq "W" or $choice1 eq "1")
  240.         {
  241.                 print "\nExtract Wordpress sites...\n";
  242.                 print "==============================\n";
  243.                 IP_id();
  244.                 print "Searching for Wordpress sites\n";
  245.                 WPS();
  246.                 $n_found = $#WPS+1;
  247.                 print "\t>> Found $n_found Wordpress sites\n\n";
  248.                 print "Do you want to save the result (Y\\n): ";
  249.                 $save = <stdin>;
  250.                 chomp($save);
  251.                 if ($save eq "Y" or $save eq "" or $save eq "y")
  252.                 {
  253.                         open(wp, ">WPSites.txt");
  254.                         map {$_ = "$_\n"} (@WPS);
  255.                         print wp @WPS;
  256.                 print "\t>> Saved at WPSites.txt\n";
  257.                 }
  258.         }
  259.         elsif ($choice1 eq "j" or $choice1 eq "J" or $choice1 eq "2")
  260.         {
  261.                 print "\nExtract Joomla sites...\n";
  262.                 print "==============================\n";
  263.                 print "Do you want to extract all Joomla Sites or V1.5 only ?\n";
  264.                 print "(ALL\\1.5): ";
  265.                 $choice2 = <stdin>;
  266.                 chomp($choice2);
  267.                 if ($choice2 eq "all" or $choice2 eq "ALL" or $choice2 eq "")
  268.                 {
  269.                         IP_id();
  270.                         print "Searching for Joomla sites\n";
  271.                         Joomla();
  272.                         $n_found = $#JM+1;
  273.                         print "\t>> Found $n_found Joomla sites\n\n";
  274.                         print "Do you want to save the result (Y\\n): ";
  275.                         $save = <stdin>;
  276.                         chomp($save);
  277.                         if ($save eq "Y" or $save eq "" or $save eq "y")
  278.                         {
  279.                                 open(joomsite, ">JoomlaSites.txt");
  280.                                 map {$_ = "$_\n"} (@JM);
  281.                                 print joomsite @JM;
  282.                                 print "\t>> Saved at JoomlaSites.txt\n";
  283.                         }
  284.                 }
  285.                 elsif ($choice2 eq "1.5")
  286.                 {
  287.                         IP_id();
  288.                         print "Searching for Joomla 1.5 sites\n";
  289.                         Joomla15();
  290.                         $n_found = $#JM+1;
  291.                         print "\t>> Found $n_found Joomla 1.5 sites\n\n";
  292.                         print "Do you want to save the result (Y\\n): ";
  293.                         $save = <stdin>;
  294.                         chomp($save);
  295.                         if ($save eq "Y" or $save eq "" or $save eq "y")
  296.                         {
  297.                                 open(joomsite, ">JoomlaSites.txt");
  298.                                 map {$_ = "$_\n"} (@JM);
  299.                                 print joomsite @JM;
  300.                                 print "\t>> Saved at JoomlaSites.txt\n";
  301.                         }
  302.                 }
  303.                 else
  304.                 {
  305.                         print "Unknown Choice !!\nExiting...\n";
  306.                         exit;
  307.                 }
  308.                        
  309.         }
  310.         elsif ($choice1 eq "d" or $choice1 eq "D" or $choice1 eq "3")
  311.         {
  312.                 print "\nExtract Drupal sites...\n";
  313.                 print "==============================\n";
  314.                 print "Do you want to extract all Drupal version or sites with specific version\n";
  315.                 print "(all? Y\\n): ";
  316.                 $choice3 = <stdin>;
  317.                 chomp ($choice3);
  318.                 if ($choice3 eq "n" or $choice3 eq "N")
  319.                 {
  320.                         print "(version?):" ;
  321.                         $ver = <stdin>;
  322.                         chomp ($ver);
  323.                         IP_id();
  324.                         print "Searching for Drupal $ver sites\n";
  325.                         DRV();
  326.                         $n_found = $#DS+1;
  327.                         print "\t>> Found $n_found Drupal sites\n\n";
  328.                         print "Do you want to save the result (Y\\n): ";
  329.                         $save = <stdin>;
  330.                         chomp($save);
  331.                         if ($save eq "Y" or $save eq "" or $save eq "y")
  332.                         {
  333.                                 open(drupsite,">DrupalSites$ver.txt");
  334.                                 map {$_ = "$_\n"} (@DS);
  335.                                 print drupsite @DS;
  336.                                 print "\t>> Saved at DrupalSites$ver.txt\n";
  337.                         }
  338.                 }
  339.                 elsif ($choice3 eq "Y" or $choice3 eq "y" or $choice3 eq "")
  340.                 {
  341.                         IP_id();
  342.                         print "Searching for Drupal sites\n";
  343.                         Drupal();
  344.                         $n_found = $#DS+1;
  345.                         print "\t>> Found $n_found Drupal sites\n\n";
  346.                         print "Do you want to save the result (Y\\n): ";
  347.                         $save = <stdin>;
  348.                         chomp($save);
  349.                         if ($save eq "Y" or $save eq "" or $save eq "y")
  350.                         {
  351.                                 open(drupsite,">DrupalSites.txt");
  352.                                 map {$_ = "$_\n"} (@DS);
  353.                                 print drupsite @DS;
  354.                                 print "\t>> Saved at DrupalSites.txt\n";
  355.                         }
  356.                        
  357.                 }
  358.         }
  359.  
  360.         elsif ($choice1 eq "WJD" or $choice1 eq "wjd" or $choice1 eq "" or $choice1 eq "5")
  361.         {
  362.                 print "\nExtract Wordpress & Joomla & Drupal sites...\n";
  363.                 print "====================================================\n";
  364.                 IP_id();
  365.                 print "\nSearching for Wordpress sites\n";
  366.                 print "---------------------------------\n";
  367.                 WPS();
  368.                 $n_found = $#WPS+1;
  369.                 print "\t>> Found $n_found Wordpress sites\n";
  370.                 open(wordpress, ">Wordpress.txt");
  371.                 map {$_ = "$_\n"} (@WPS);
  372.                 print wordpress @WPS;
  373.                 print "\t>> Saved at Wordpress.txt\n\n";
  374.  
  375.                 print "\nSearching for Joomla sites\n";
  376.                 print "------------------------------\n";
  377.                 Joomla();
  378.                 $n_found = $#JM+1;
  379.                 print "\t>> Found $n_found Joomla sites\n";
  380.                 open(joomla, ">Joomla.txt");
  381.                 map {$_ = "$_\n"} (@JM);
  382.                 print joomla @JM;
  383.                 print "\t>> Saved at Joomla.txt\n\n";
  384.  
  385.                 print "\nSearching for Drupal sites\n";
  386.                 print "-----------------------------\n";
  387.                 Drupal();
  388.                 $n_found = $#DS+1;
  389.                 print "\t>> Found $n_found Drupal sites\n";
  390.                 open(drupal,">Drupal.txt");
  391.                 map {$_ = "$_\n"} (@DS);
  392.                 print drupal @DS;
  393.                 print "\t>> Saved at Drupal.txt\n";
  394.         }
  395.         elsif ($choice1 eq "all" or $choice1 eq "ALL" or $choice1 eq "4")
  396.         {
  397.                 print "\nExtract Server sites\n";
  398.                 print "========================\n";
  399.                 IP_id();
  400.                 map {$_ = "$_\n"} (@result);
  401.                 print @result;
  402.                 print "Do you want to save the result (Y\\n): ";
  403.                 $save = <stdin>;
  404.                 chomp($save);
  405.                 if ($save eq "Y" or $save eq "" or $save eq "y")
  406.                 {
  407.                         open(sites, ">Sites.txt");
  408.                         print sites @result;
  409.                         print "\t>> Saved at Sites.txt\n";
  410.                 }
  411.  
  412.         }
  413. }
  414. Into();

Replies to Re: GrabTheCMS rss

Title Name When
Re: Re: GrabTheCMS anonym 9 månader ago.
Re: Re: GrabTheCMS anonym 1 år ago.

Svara på "Re: GrabTheCMS"

Här kan du skriva ett svar till kodsnutten ovan