1 2 3 4 5 6 7 8 9 10 11 12 13 14 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
|
package bedmod::smtp;
use Socket;
# This package is an extension to bed, to check
# for smtp server vulnerabilities.
sub new {
my $this = {};
bless $this;
return $this;
}
sub init {
my $this = shift;
%special_cfg=@_;
$this->{proto}="tcp";
# check for missing args, set target and host
if ($special_cfg{'p'} eq "") { $this->{port}='25'; }
else { $this->{port} = $special_cfg{'p'}; }
if ( $special_cfg{'u'} eq "") {
&usage();
exit(1);
}
# get info nessecairy for FTP
$this->{mail} = $special_cfg{'u'};
$this->{vrfy} = "HELP\r\n";
}
sub getQuit{
return("QUIT\r\n");
}
sub getLoginarray {
return(
"XAXAX\r\n",
"HELO XAXAX\r\n",
"EHLO XAXAX\r\n",
"HELP XAXAX\r\n",
);
}
sub getCommandarray {
my $this = shift;
# the XAXAX will be replaced with the buffer overflow / format string
# just comment them out if you don't like them..
@cmdArray = (
"EXPN XAXAX\r\n",
"MAIL FROM: XAXAX\r\n",
"MAIL FROM: <XAXAX>\r\n",
"MAIL FROM: <$this->{mail}> XAXAX\r\n",
"MAIL FROM: <$this->{mail}> RET=XAXAX\r\n",
"MAIL FROM: <$this->{mail}> ENVID=XAXAX\r\n",
"ETRN XAXAX\r\n",
"ETRN \@XAXAX\r\n",
"MAIL FROM: <$this->{mail}>\r\nRCPT TO: <XAXAX>\r\n",
"MAIL FROM: <$this->{mail}>\r\nRCPT TO: <$this->{mail}> XAXAX\r\n",
"MAIL FROM: <$this->{mail}>\r\nRCPT TO: <$this->{mail}> NOTIFY=XAXAX\r\n",
"MAIL FROM: <$this->{mail}>\r\nRCPT TO: <$this->{mail}> ORCPT=XAXAX\r\n",
"HELP XAXAX\r\n",
"VRFY XAXAX\r\n",
"RCTP TO: XAXAX\r\n",
"RCTP TO: <XAXAX>\r\n",
"RCPT TO: <$this->{mail}> XAXAX\r\n",
"RCPT TO: <$this->{mail}> NOTIFY=XAXAX\r\n",
"RCPT TO: <$this->{mail}> ORCPT=XAXAX\r\n",
"RSET XAXAX\r\n",
"AUTH mechanism XAXAX\r\n",
"DATA XAXAX\r\n",
"DATA\r\nXAXAX\r\n.",
"XAXAX\r\n"
);
return(@cmdArray);
}
sub getLogin {
my $this = shift;
@login = (
"HELO doona.pl\r\n",
"EHLO doona.pl\r\n",
);
return(@login);
}
sub testMisc {
my $this = shift;
return();
}
sub usage {
print qq~ Parameters for the SMTP plugin:
-u <valid mail address at target host>
~;
}
1;
|