Home Upgrade Search Memberlist Extras Hacker Tools Award Goals Help Wiki Contact

[FREE] XML-RPC SCANNER || FREE || THREADS || FAST || 100% WORKS

Hey Everyone it's Zidane, today i coded a New XML-RPC Scanner, more faster, easy to scan

You can scan the whole world in 6H if you have a 100mbps private connection.

Requierments

- A Server with a good connection
- Perl installed
- a Brain

Modules

1st you need to install all modules to use the script

- HTML::Parser

Code
wget http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/HTML-Parser-3.71.tar.gz
tar -xvf HTML-Parser-3.71.tar.gz
cd HTML-Parser-3.71
perl Makefile.PL
make
make install

- LWP::UserAgent

Code
wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz
tar -xvf libwww-perl-6.08.tar.gz
cd libwww-perl-6.08
perl Makefile.PL
make
make install

- LWP::Simple

Code
wget http://search.cpan.org/CPAN/authors/id/M/MS/MSCHILLI/libwww-perl-6.08.tar.gz
tar -xvf libwww-perl-6.08.tar.gz
cd libwww-perl-6.08
perl Makefile.PL
make
make install

- Parallel::ForkManager

Code
wget http://search.cpan.org/CPAN/authors/id/S/SZ/SZABGAB/Parallel-ForkManager-1.06.tar.gz
tar -xvf Parallel-ForkManager-1.06.tar.gz
cd Parallel-ForkManager-1.06
perl Makefile.PL
make
make install

- Net::IP

Code
wget http://search.cpan.org/CPAN/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz
tar -xvf Net-IP-1.26.tar.gz
cd Net-IP-1.26
perl Makefile.PL
make
make install

Set up the script

Source code

Code
#! /usr/bin/perl

use HTML::Parser; #HTML
use LWP::UserAgent; #http request
use LWP::Simple;
use Parallel::ForkManager; # threads
use strict;
use Net::IP; # range IP
use IO::Socket;
use Term::ANSIColor;
use vars qw( $PROG );
( $PROG = $0 ) =~ s/^.*[\/\\]//;
#Usage
if ( @ARGV == 0 ) {
      print "Usage : ./$PROG [Start IP] [End IP] [Threads] [.txt] [Delay]\n Coded by Zidane For HF User\n";
    exit;
}
my $threads  = $ARGV[2]; #threads
my @ip_team  = (); #IP
$|= 1;
my $ip   = new Net::IP ("$ARGV[0] - $ARGV[1]") or die "Invalid IP Range.". Net::IP::Error() ."\n";
$SIG{'INT'} = sub {exit;};
my @folders = ("/wordpress/", "/wp/", "/blog/", "/"); # folders
my $stringsearch = "XML-RPC"; # string to search
my $filename = $ARGV[3]; # .txt
my $max_processes = $ARGV[2]; #threads
my $pm = Parallel::ForkManager->new($max_processes); # thread spawner

#Forking
while ($ip) {
push @ip_team, $ip++ ->ip();
if ( $threads == @ip_team ) { Scan(@ip_team); @ip_team = () }
}
Scan(@ip_team);

#Scan
sub Scan
{
my @Pids;

      foreach my $ip (@_)
      {
      my $pid      = fork();
      die "Can't Fork $!\n" unless defined $pid;

      if  (0 == $pid)
      {
      alarm 1;

foreach (@folders) {

    my $pid2 - $pm->start and next; #thread
    alarm("$ARGV[4]");

        my $url = "http://$ip" . "$_" . "xmlrpc.php";
        my $ua = LWP::UserAgent->new;  
            print "\e[96m[!]Search \e[31m$url\n\e[0m";        
        my $response = $ua->get($url);
        if ( !$response->is_success ) {
        }
        if (head($url)) {

        my $parser = HTML::Parser->new( 'text_h' => [ \&text_handler, 'dtext' ] ); #text decoder
        $parser->parse( $response->decoded_content );
        sub text_handler {
            chomp( my $text = shift );

            if ( $text =~ /$stringsearch/i ) {

      my $ui = $url;
      $ui =~ s/xmlrpc.php/?feed=rss2/;
      if (head($ui)) {
      sub check {
      $LOLGETIT=get($ui);
      $LOLGETIT =~ /<item>.+?<link>(.+?)<\/link>.+?<\/item>/s;
      if ($1) {
      open (FILE, ">>$filename");
                my $post = $1;
                $ui =~ s{\Q?feed=rss2\E}{xmlrpc.php};
                print FILE "$ui $post\n";      
      close (FILE);
                print "\e[96m[+]Found : \e[32m$ui $post\e[0m\n";
      exec($^X, "-e", "sleep 1,kill(0,$pid2)||kill -9,$pid2"); #kill process
      }
      }
      check();
      } else {
      }        }    
    }
    } else {
}
$pm->finish;
}

      exit
      }
      else
      {
      push @Pids, $pid
      }
      }

foreach my $pid (@Pids) { waitpid($pid, 0) }
}

Usage perl scan.pl [Start IP] [End IP] [Threads] [.txt] [Delay]

Thanks to Vyp0r i recode his basic Scanner (http://pastebin.com/xYPux8dF)

Please do not forget to say "Thanks" if i helped you
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
Global symbol "$LOLGETIT" requires explicit package name at perl.pl line 74.
(Dec 28, 2014 08:01 AM)Infected. Wrote:  Global symbol "$LOLGETIT" requires explicit package name at perl.pl line 74.

delete the "use:strict;" at the begining
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
Please private message me your skype.
(Dec 28, 2014 08:40 AM)Infected. Wrote:  Please private message me your skype.

Allright Speak on skype then

Regards

🤝
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
He helped me fix the problem vouch for this guy:)
(Dec 28, 2014 09:21 AM)Infected. Wrote:  He helped me fix the problem vouch for this guy:)

No problem, It's normal to help you !

Regards

🤝
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
Thanks for sharing.... I appreciate it. :)
(Jan 1, 2015 01:46 PM)Tatishchev Wrote:  Thanks for sharing.... I appreciate it. :)

You welcome I hope you like it

Regards
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
One of the best users on HF !! HQ !! Voucher for you and of the for your tools ;)
[root@host dos]# perl scan.pl 1.0.0.0 255.255.255.255 8 scann.txt
Can't locate Encode/Locale.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /u sr/local/share/perl5/LWP/UserAgent.pm line 1001.
Compilation failed in require at scan.pl line 5.
BEGIN failed--compilation aborted at scan.pl line 5.
(Jan 13, 2015 10:12 AM)meskone Wrote:  [root@host dos]# perl scan.pl 1.0.0.0 255.255.255.255 8 scann.txt
Can't locate Encode/Locale.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /u sr/local/share/perl5/LWP/UserAgent.pm line 1001.
Compilation failed in require at scan.pl line 5.
BEGIN failed--compilation aborted at scan.pl line 5.

Install Encode::locale

Regards 🤝
“Don’t walk behind me; I may not lead. Don’t walk in front of me; I may not follow. Just walk beside me and be my friend.” Albert Camus
(Jan 13, 2015 10:12 AM)meskone Wrote:  [root@host dos]# perl scan.pl 1.0.0.0 255.255.255.255 8 scann.txt
Can't locate Encode/Locale.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /u sr/local/share/perl5/LWP/UserAgent.pm line 1001.
Compilation failed in require at scan.pl line 5.
BEGIN failed--compilation aborted at scan.pl line 5.

You need to install the Encode::Locale Perl module:

Code
cpan -i Encode::Locale
thx you both ;)

HF needs more high skilled ppl like you !

cheers
(Jan 13, 2015 10:12 AM)meskone Wrote:  [root@host dos]# perl scan.pl 1.0.0.0 255.255.255.255 8 scann.txt

Im not sure if you should do that. This script seems to take a long time to scan. I suggest trying specific ip ranges, ect


Possibly Related Threads...
Thread / Author Replies Views Last Post
by SIM-5669901Dec 8, 2025 10:01 PM 15 894 Dec 8, 2025 10:01 PM
Last Post: NiNJAA
by Zinedine ZidaneMar 17, 2021 11:34 AM 148 9,689 Mar 17, 2021 11:34 AM
Last Post: DIESELSCRUB
by NYANxCATDec 5, 2020 03:25 PM 91 3,196 Dec 5, 2020 03:25 PM
Last Post: Psytek