БУТ ИЛИ НЕ БУТ? - продвинуто распространяем троев

DarkSergeant

Спецвыпуск Xakep, номер #025, стр. 025-038-1


(DarkSergeant@inbox.ru)

Давным-давно, когда программы еще были маленькими, дискеты - большими, а винчестеров почти совсем не было, вирусы часто распространялись через загрузочные записи дискет. Такие вирусы называют бУтовыми. Сейчас мы вспомним старое и тоже замутим бутового, но уже не вируса, а трояна.

Для начала давай разберемся, что мы хотим сделать после того, как получит управление наш троян, от этого будет зависеть, какие программы уже должны быть запущены (или работу каких программ мы должны эмулировать сами). Так, если мы хотим запороть инфу на винте, то нам никаких особых программ не надо, а можно руками отформатировать винт, получим доступ к нему на низком уровне.

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

ГОТОВИМ

«Программа переписалась на винт».

Для того чтобы совершить такое простое действие, необходим запущенный драйвер файловой системы дискеты и драйвер файловой системы винчестера. С дискетой все просто, мы ее сами делаем, поэтому можем использовать какую хотим на ней файловую систему, хоть Fat16, хоть Fat32, хоть какую-нибудь экзотику, на крайняк можем сделать свою простенькую файловую систему со своим драйвером. С винчестером все намного хуже, мало того, что мы точно не знаем, какая там система используется, так еще и нужны драйвера для этих систем. На винчестере под управлением Windows может использоваться Fat32 или NTFS; если с Fat32 все просто, можно использовать драйвер со стандартной загрузочной дискеты Windows-а, то с NTFS все сложнее, необходим специальный драйвер для доступа к NTFS из-под DOS. Мало того, что драйверы NTFS из-под DOS глючные, так они еще и здоровые как не знамо кто, а дискета у нас маленькая, все на нее не упихнешь. Поэтому придется пока надеяться на то, что на атакуемом компьютере используется FAT.

«Программа получила управление при последующей загрузке с винчестера».

Это можно сделать следующими способами. Заменить загрузочный сектор винчестера или записать вызов себя в autoexec.bat. Но эти оба способа не удобны, так как windows до сих пор не запущена и приходится все делать самому. (Хотя, конечно понятно, что и без загруженного виндоуса можно вытащить пароли и отправить их по почте, но уж очень много кода придется писать ручками.) Получается, что на самом деле нам надо получить управление при запущенной винде, но сбрасывать со счетов эти способы не надо. Можно использовать их в качестве промежуточной ступеньки для того, чтобы отдельные шаги были меньше и быстрее и поэтому менее заметны пользователем.

«Программа получила управление под запущенной виндой».

Под Windows получить управление можно большим количеством способов, но так как винда еще не загружена, то у нас нет доступа к реестру, у нас есть доступ только к файловой системе. Остается два способа - прописать себя в Startup-директорию или заменить какой-нибудь существующий exe-шник, который точно получает управление (идеальные кандидатуры Internet Explorer, Notepad, Word, Outlook).

Содержание  Вперед на стр. 025-038-2