Hooker 2.4

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

Hosted by uCoz