Advertisement
Doddy

[Perl] DH Secret Finder 0.8

Oct 13th, 2016
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.86 KB | None | 0 0
  1. # !usr/bin/perl
  2. # DH Secret Finder 0.8
  3. # (C) Doddy Hackman 2016
  4. # Credits for the arrays :
  5. # Dirs : directory-list-2.3-small.txt - Copyright 2007 James Fisher
  6. # Files : Based in wfuzz-1.4
  7. # Link for Files : https://raw.githubusercontent.com/tuwid/darkc0de-old-stuff/master/wfuzz-1.4/wordlists/common.txt
  8. # Shells : Based in https://github.com/bhavyanshu/Shell-Finder
  9.  
  10. use LWP::UserAgent;
  11. use Getopt::Long;
  12. use Color::Output;
  13. Color::Output::Init;
  14.  
  15. GetOptions(
  16.     "panels"   => \$panels,
  17.     "domains"   => \$domains,
  18.     "dirs"  => \$dirs,
  19.     "files"   => \$files,
  20.     "shells"   => \$shells,
  21.     "url=s"   => \$url,
  22.     "savefile=s"  => \$savefile,
  23.     "verbose"  => \$verbose
  24. );
  25.  
  26. head();
  27.  
  28. if ($panels) {
  29.     if($panels && $url) {
  30.         search($url,"panel");
  31.     } else {
  32.         sintax();
  33.     }  
  34. }
  35. elsif ($domains) {
  36.     if($domains && $url) {
  37.         search($url,"domain");
  38.     } else {
  39.         sintax();
  40.     }
  41. }
  42. elsif ($dirs) {
  43.     if($dirs && $url) {
  44.         search($url,"dir");
  45.     } else {
  46.         sintax();
  47.     }
  48. }
  49. elsif ($files) {
  50.     if($files && $url) {
  51.         search($url,"file");
  52.     } else {
  53.         sintax();
  54.     }
  55. }
  56. elsif ($shells) {
  57.     if($shells && $url) {
  58.         search($url,"shell");
  59.     } else {
  60.         sintax();
  61.     }
  62. }
  63. else {
  64.     sintax();
  65. }
  66.  
  67. copyright();
  68.  
  69. # Functions
  70.  
  71. sub search {
  72.     my ($url,$type) = @_;
  73.    
  74.     my $wordlist = "";
  75.     my $name = "";
  76.    
  77.     if($type eq "panel") {
  78.         $wordlist = "wordlists/panels.txt";
  79.         $name = "Panels";
  80.     } elsif($type eq "domain") {
  81.         $wordlist = "wordlists/domains.txt";
  82.         $name = "Domains";
  83.     } elsif($type eq "dir") {
  84.         $wordlist = "wordlists/directories.txt";
  85.         $name = "Directories";
  86.     } elsif($type eq "file") {
  87.         $wordlist = "wordlists/files.txt";
  88.         $name = "Files";
  89.     } elsif($type eq "shell") {
  90.         $wordlist = "wordlists/shells.txt";
  91.         $name = "Shells";
  92.     } else {
  93.         $wordlist = "wordlists/panels.txt";
  94.         $name = "Panels";
  95.     }
  96.    
  97.     my $cantidad = 0;
  98.    
  99.     if(-f $wordlist) {
  100.         printear_titulo("[+] Loading Wordlist ...\n");
  101.         my @wordlist = load_wordlist($wordlist);
  102.         printear("\n[+] Wordlist Loaded : ");
  103.         print int(@wordlist)." lines\n";
  104.         printear_logo("\n[+] Searching $name in $url ...\n\n");
  105.         for my $line(@wordlist) {
  106.             chomp $line;
  107.             my $link = "";
  108.             if($type eq "domain") {
  109.                 $link = $line.".".$url;
  110.             } else {
  111.                 $link = $url."/".$line;
  112.             }
  113.             if(check_page($link)) {
  114.                 if($verbose) {
  115.                     printear("[+] Checking ");
  116.                     printear_logo("$link : ");
  117.                     printear_azul("OK\n");
  118.                 } else {
  119.                     printear_azul("[+] Link : $link\n");
  120.                 }
  121.                 $cantidad++;
  122.                 if($savefile) {
  123.                     savefile($savefile,"[+] Link : $link");
  124.                 }
  125.             } else {
  126.                 if($verbose) {
  127.                     printear("[+] Checking ");
  128.                     printear_logo("$link : ");
  129.                     printear_rojo("FAIL\n");
  130.                 }
  131.             }
  132.         }
  133.         printear("\n[+] $name Found : ");
  134.         print "$cantidad\n";
  135.         if($cantidad eq "0") {
  136.             printear("\n[-] $name not found\n");
  137.         }
  138.         if($savefile) {
  139.             printear_logo("\n[+] Logs $savefile saved\n");
  140.         }
  141.         printear_titulo("\n[+] Finished\n");
  142.     } else {
  143.         printear_rojo("\n[-] Wordlist not exists");
  144.     }
  145. }
  146.  
  147. # More Functions
  148.  
  149. sub check_page {
  150.     my $url = shift;
  151.     my $nave = LWP::UserAgent->new(ssl_opts => {verify_hostname => 0,SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE});
  152.     $nave->agent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:25.0) Gecko/20100101 Firefox/25.0");
  153.     $nave->timeout(10);
  154.     my $code = $nave->get($url);
  155.     if ($code->is_success) {
  156.         return 1;
  157.     } else {
  158.         return 0;
  159.     }
  160. }
  161.  
  162. sub load_wordlist {
  163.     my @result;
  164.     my @words;
  165.     open( FILE, $_[0] );
  166.     @words = <FILE>;
  167.     close FILE;
  168.     for (@words) {
  169.         push( @result, $_ );
  170.     }
  171.     return (@result);
  172. }
  173.  
  174. sub savefile {
  175.     my ($filename,$text) = @_;
  176.     open( SAVE, ">>" . $filename );
  177.     print SAVE $text . "\n";
  178.     close SAVE;
  179. }
  180.  
  181. sub printear {
  182.     cprint( "\x036" . $_[0] . "\x030" );
  183. }
  184.  
  185. sub printear_logo {
  186.     cprint( "\x037" . $_[0] . "\x030" );
  187. }
  188.  
  189. sub printear_titulo {
  190.     cprint( "\x0310" . $_[0] . "\x030" );
  191. }
  192.  
  193. sub printear_rojo {
  194.     cprint( "\x035" . $_[0] . "\x030" );
  195. }
  196.  
  197. sub printear_azul {
  198.     cprint( "\x033" . $_[0] . "\x030" );
  199. }
  200.  
  201. sub sintax {
  202.     printear("[+] Sintax : ");
  203.     print "perl $0 <option> <value>\n";
  204.     printear("\n[+] Options : \n\n");
  205.     print "-panel -url <url> : Find panel administration in the URL\n";
  206.     print "-domain -url <url> : Find domains in the URL\n";
  207.     print "-dirs -url <url> : Find directories in the URL\n";
  208.     print "-files -url <url> : Find files in the URL\n";
  209.     print "-shells -url <url> : Find shells in the URL\n";
  210.     print "-savefile <filename> : Save results\n";
  211.     printear("\n[+] Example : ");
  212.     print "perl secret_finder.pl -shells http://localhost/ -savefile results.txt\n";
  213.     copyright();
  214. }
  215.  
  216. sub head {
  217.     printear_logo("\n-- == DH Secret Finder 0.8 == --\n\n\n");
  218. }
  219.  
  220. sub copyright {
  221.     printear_logo("\n\n-- == (C) Doddy Hackman 2016 == --\n\n");
  222.     exit(1);
  223. }
  224.  
  225. #The End ?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement