Name: Hooker
Version: 2.4
Author: ACrazzi & Shade
Language: Visual C++
Packed: not packed
| | Server | Editor | Editor GUI |
|---|---|---|---|
| Icon | |||
| (1) Name | Hooker.exe | hkconf.exe | HooConf.exe |
| (1) Size | 21504 (24.07.1999) | 8192 (24.07.1999) | 59392 (30.07.1999) |
| (1) KAV detected | Trojan.PSW.Hooker.a | Trojan.PSW.Hooker.a | Trojan.PSW.Hooker.a |
| (2) Name | pvds.exe | - | - |
| (2) Size | 127269 (22.11.1999) | - | - |
| (2) KAV detected | Trojan.PSW.Hooker.b | - | - |
| (3) Size | 55318 | - | - |
| (3) KAV detected | Trojan.PSW.Hooker.24.g | - | - |
Editor:
Editor GUI:
Warning:
1) Editor GUI (HooConf.exe) contains a trojan, which send passwords from your computer to emails badass@31337.net, dumb@isp.com, lamer@isp.com, vasya@freesome.com, victim@isp.com
2) Also known "v2.5" - a Hooker v2.4 trojanized with a Hooker v2.4. File History.txt of "v2.5" contains strings:
2.5 ~~~ Исправлена мелкая ошибка при определении имени юзера и компа. До- бавлено пару новых фичь: [main]:full = 0 будут логиться только те окна в которых были нажатия. [main]:adv = 0 не будут логиться системные клавиши (arrow keys, PgUp, PgDn, Shift, Alt, Ctrl, Insert, Home, End и т.д.) Исправлен мелкий баг: прога не соединя- лась по IP, только по имени хоста.
Features:
Hooker, the intelligent trojan keylogger
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
(версия 2.4, вероятно последняя)
Disclaimer
~~~~~~~~~~
Эта программа создана исключительно в образовательных целях,
авторы не несут никакой ответственности за ее использование,
все что вы делаете, вы делаете на свой страх и риск. Она
распространяется на принципах freeware. Это значит, что вы
можете ее использовать и распространять без каких-либо огра-
ничений, при условии, что за это не будет взыматься никакой
платы. Авторы не против использования, модификации, дизас-
семблирования части или всего программного кода.
Пространное вступление
~~~~~~~~~~~~~~~~~~~~~~
Не стоит относиться к созданию сетевых троянов как к че-
му-то предосудительному. Ведь они, в отличии от вирусов, с кото-
рыми их часто путают, не несут деструктивных функций, не самораз-
множаются, не наносят прямого ущерба, их использование возможно
исключительно благодаря неопытности пользователей. Ситуация с
трояно-писателями мне сегодня напоминает ту, которая была с виру-
сомейкерами в пору господства DOS. Помните? "Каждый серьезный
программист рано или поздно сталкивается с проблемой создания со-
моразмножающихся программ - вирусов." (не помню кто сказал) вре-
мена изменились: писать вирусы под винды оказалась несколько
сложнее чем под DOS. К тому же интернет вторгся на просторы на-
шей необъятной родины. Согласитесь, заниматься сетевым программи-
рованием с претензией на мировую известность куда интересней, чем
писать вирусы.
Что касается hooker'a - это мыльный троян, вот некоторые его
особенности:
- функция кейлога, правда, не такого продвинутого как в
HookDump
- возможность гибкой настройки всего что можно настроить
- отслеживание модемных соединений
- эта прога может закачивать другие исполняемые файлы с
любой веб странички и запускать их
- устойчивая работа как под Win95/98 так и под NT 4.0/5.0
- доступность исходников
Троянская часть написана на MS Visual C 5.0. MFC'шные клас-
сы и какие-либо нестандартные библиотеки не использовались,
только стандартные сишные или системные функции. Не исключено,
что после некоторых усилий, исходник можно будет компилить на
Borland C, а может и на WATCOM. На мой взгляд, эта прога являет-
ся классическим примером того, как пишется троян. Возможно ко-
му-то она поможет при создании чего-нибудь хорошего.
Установка в системе
~~~~~~~~~~~~~~~~~~~
При первом запуске программа переносит себя в каталог опре-
деленный при конфигурации. При выборе раздела в реестре надо
иметь в виду следующее:
HKEY_LOCAL_MACHINE - будет стартовать при любом пользователе
HKEY_CURRENT_USER - только при текущем
\Software\Microsoft\Windows\CurrentVersoin\, далее могут
быть варианты:
Run если не указан путь к файлу, то он дол-
жен быть доступен по Path, системный ката-
лог (NT: %windir%\system32, Win95/98:
%windir%\system) по умолчанию по Path недос-
тупен.
RunServices файл должен лежать в системном каталоге (ес-
ли путь не указан явно). Этот раздел рабо-
тает только под Win95/98.
RunOnce используется для однократного запуска файла.
После запуска система ждет пока завершится
запушеный процесс и только потом продолжает
загрузку, удалив все из RunOnce.
RunServicesOnce тоже что и предыдущий, но для системного ка-
талога, раздел не работает под NT
Когда-то (давно) когда большая часть пользователей не знала
о существовании реестра, системы удаленного администрирования и
другие программы сомнительного содержания писали свое тело в сис-
тменый каталог или каталог виндовса, а в реестре прописывались в
Run или RunServices. Сейчас же наблюдается положительная тенден-
ция: народ стал умнеть, чуть что так сразу в реестр проверять а
нет ли в RunServices\.exe? В этом свете соблазнительно было-бы
предусмотреть запуск из всех четырех вышеописаных разделов. Но
при запуске из RunOnce или RunServiceOnce система приостанавли-
вает загрузку. Поэтому при каждом старте hooker'a он себя переза-
пускает при этом второй копии процесса в командной строке пере-
дается флажок Restart_ID, ID - идентификационный номер (DWORD,
полученое некоторыми манипуляциями с датой и временем конфигури-
рования).
Кейлог
~~~~~~
Осуществить "прослушивание" клавиатуры в среде Win32 до-
вольно просто. Делается это с помощью системной ловушки. Т.е. на-
до определить CallBack функцию, которая будет вызываться при на-
жатии клавишь. Эта функция должна находится в dll. При создании
нового процесса, а следовательно и очереди сообщений система под-
ключает к процессу эту dll. В hooker'e CallBack функция пишет на-
жимаемые клавиши в небольшой буферок, который находится в сегмен-
те данных динамической библиотеки. Вызывая соответствующюю фун-
кцию dll можно освобаждать этот буфер и считывать из него инфор-
мацию. Но при подключении к вновь созданному процессу dll'ки сис-
тема автоматически создает для кода этой библиотеки новый сег-
мент данных. Поэтому пришлось использовать область данных кото-
рая разделяется между всеми копиями кейлог dll, в ней - то и хра-
ниться кейлог буфер. Теперь представте ситуацию когда два трояна
используют одну кейлог библиотеку и оба опрашивают один и тот же
кейлог буфер. Критической ошибки вероятно не произойдет, но ло-
гиться нажатия будут криво у обоих. Поэтому рекомендуется давать
разные имена кейлог библиотекам. Есть несколько настроек, кото-
рые позволяют варьировать, так сказать, "направление" кейлога,
все зависит от целей, которые вы преследуете и размера лога, на
который расчитываете.
- можно вести кейлог во всех окнах или только в подозри-
тельных, заголовки которых содержат подстроки, определяе-
мые при конфигурации ("login", "passw", "term", "парол" и
т.д.)
- можно логить все клавиши, включая системные (SHIFT, ALT,
CTRL, TAB, MENU, Caps Lock, Num Lock /etc), а можно только
буквы, цифры.
- наконец, если вы хотите понаблюдать за машиной, т.е. пос-
мотреть что на ней делают, включите режим "логить окна в
которых ничего не нажимали". В некоторых случиях это по-
лезно, даже интересно, можно например узнать привычки/ув-
лечения пользователя. Ну что можно сказать о человеке, ко-
торый только и делает что серфает по вражеским гей-сайтам?
...а вот было такое :)
Если кейлог вам не нужен просто удалите все субстроки и пос-
тавте выборочный кейлог.
Определение модемных соединений
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Как определить подключен комп к и-нету или нет? Единого ре-
цепта я пока, к сожалению, не видел. Если соединение идет через
модем т.е. используются стандартные RAS функции, так бывает в
большинстве случаев. То надо использовать функции RASAPI32.DLL,
но если машина постоянно подключена к сети, например, по локалке,
там этой библиотеки может и не быть. Поэтому пришлось функции
подгружать динамически через LoadLibrary/GetProcAddres. Даже ес-
ли RASAPI нет в системе троян будет работать. При конфигурирова-
нии можно явно указать использовать функции RAS для определения
соединения с интернетом или предпологать что он всегда доступен.
Надо учитывать что TCP/IP соединение может быть не только с ин-
тернет провайдером. К примеру, захотелось погеймится и соедини-
лись люди по TCP/IP, а hooker будет пытаться отправить мессагу.
Это может время от времени здорово загружать и без того тонкий
модемный канал.
Если соединение успешно установлено идет запись в лог о вре-
мени, телефонном номере, IP пользователя и сервера. Предполагает-
ся, что одновременно может существовать не более одного соедине-
ния.
Загрузка исполняемых фалов с web
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кто-нибудь сегодня может сказать сколько существует систем
удаленного администрирования? Как то BO, NetBus, DeepThroat,
WinCrash... по моим скромным оценкам не менее десятка стоящих
программ. Грех было бы пренебрегать таким капиталом :) Большин-
ство их писалось на Delphi или MS Visual Basic, видимо под впе-
чатлением первого Back Orifice. Я ничего не имею против дельфей,
где-то выбор этого инструментария может быть оправданным, но раз-
мер экзешника... согласитесь великоват, для того чтобы заслать
его по почте своему злостному врагу. Для hooker'a размер выкачи-
ваемого с web файла принципиального значения не имеет. Ведь
происходит это как бы в фоновом режиме и почти незаметно для
пользователя. Если файл по каким либо причинам не был закачан ус-
пешно, ну там коннект упал, винда последовала за ним, а потом и
копм в окошко полетел. Не волнуйтесь, в следующий раз hooker обя-
зательно повторит попытку. Закачивается файл в системный каталог
под именем который он имеет на web. Проверка на обновление файла
осуществляется каждые полчаса. Если дата создания web файла изме-
ниться, то он будет скачан и запущен снова. Возможно вы задумае-
те закачивать файл с нестандартного вебовского порта, тогда так и
пишите www.myhost.ru/file.exe:8000