Blog. Just Blog

Абсолютная защита

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Темная сторона Силы | Автор: ManHunter
Каждый день появлятся все больше вредоносных программ, нацеленных на кражу паролей и другой приватной информации. Противодействие брони и снаряда идет с переменным успехом, талантливые программисты антивирусных лабораторий создают все более мощные средства обнаружения заразы, в это же время не менее талантливые представители андеграунда придумывают новые способы их обхода. Нет никакой уверенности, что обновление антивирусной базы скачается раньше, чем в системе окажется троян. Однако можно противопоставить им практически абсолютную защиту. Принцип ее основан на том, что все вредоносные программы ищут своих жертв по заранее известным параметрам: прописанные в реестре пути установки, фиксированные имена и расширения файлов с паролями. Ни в одной вредоносной программе не будет использоваться сложный алгоритм эвристики или поиска по содержимому, так как это увеличит размер троянов на порядки и затруднит их незаметное распространение.

Рассмотрим этот метод защиты на примере некоторых популярных программ: интернет-пейджера Miranda IM, файлового менеджера Total Commander и почтового клиента The Bat!. Я пользуюсь именно этими программами, для других вам придется искать решения самостоятельно. В качестве имитации вредоносной программы будет использоваться утилита для восстановления забытых паролей Multi Password Recovery. Программа MPR выбрана не случайно, ее автор в прошлом занимался разработкой самого известного трояна Pinch и в Multi Password Recovery используются те же самые алгоритмы для получения паролей, что и в Pinch. Некоторые антивирусные программы определяют MPR как вирус, но по указанной ссылке гарантированно никакой заразы нет.
Запускаем MPR и видим как на ладони все логины и пароли от почтовых ящиков The Bat!, ваших красивых асечных номерков Miranda и FTP-серверов из Total Commander. Даже не сомневайтесь, это же самое "увидит" и троянская программа.

Начнем с Miranda. Через программу regedit открываем реестр, находим ветку

HKEY_LOCAL_MACHINE\SOFTWARE\Miranda

а в ней ключ Install_Dir, в котором содержится путь установки и, соответственно, место где хранятся файлы профилей с паролями. Удалять его бесполезно, при каждом запуске Miranda создает его заново. Можете проверить, не запуская Miranda удалить этот ключ и запустить MPR. Пароли от Miranda найдены НЕ будут. Но стоит запустить Miranda хотя бы раз, ключ в реестре будет восстановлен и пароли снова будут найдены. Запрещать создавать ключ мы не будем, но зато мы можем его переименовать! Для этого откроем файл miranda32.exe в любом двоичном редакторе, например HIEW или WinHex. Перед любым ковырянием в файлах обязательно делайте резервные копии! Поиском находим строку "Install_Dir" и заменяем ее на любую другую, точно совпадающую по длине, например "Hello_There". Настоятельно рекомендуется использовать только английские буквы. Сохраняем сделанные изменения, удаляем из реестра ключ "Install_Dir", запускаем Miranda. В реестре появился новый ключ "Hello_There". Запускаем MPR и видим, что пароли от ваших красивых шестизнаков теперь в полной безопасности. После установки и обновления версии Miranda не забывайте повторять все указанные выше действия. Если хватает навыков, то можете сделать универсальный Search and Replace патч.
Кроме того, проект Miranda имеет открытый код. Если вы программист, то можете изменить или убрать совсем эту ветку в исходниках, а потом перекомпилировать новый файл, уже полностью безопасный.

Переходим к Total Commander. Логины и пароли от FTP хранятся в файле wcx_ftp.ini, его местоположение определяется настройками, которые в свою очередь также доступны через реестр. Оригинальный файл при запуске проверяет свою целостность и в случае изменения контрольной суммы завершается с ошибкой. Поэтому всякие любители ключей и лицензионные пользователи могут дальше не читать, это вас не касается. Мы же воспользуемся универсальным патчем, который можно найти в архиве по приведенной выше ссылке. Кроме регистрации патч убирает проверку целостности и можно изменять exe-файл как нам угодно. Проверьте, чтобы файл TOTALCMD.EXE был не упакован. В инсталляторе используется паковщик UPX, но с офсайта можно скачать оригинальный неупакованный exe. Уже знакомым способом открываем файл TOTALCMD.EXE в hex-редакторе (про резервную копию не забыли?), находим строку wcx_ftp.ini и заменяем все ее вхождения на любую другую такой же длины, например kiss_me.now, сохраняем изменения. Переименовываем файл wcx_ftp.ini в новый. Для проверки запускаем Total Commander, Ctrl+F. Если все сделано правильно, то наблюдаем все аккаунты на своем месте. Запускаем MPR, в списке программ Total Commander больше не значится. Все, наши FTP в безопасности.

Теперь перейдем к более сложному примеру - почтовому клиенту The Bat!. Найдем и посмотрим в реестре ветку:

HKEY_CURRENT_USER\Software\RIT\The Bat!

Наблюдаем там пути каталогов с базами писем и файлов аккаунтов, в которых хранятся пароли. Прочитать эти файлы и расшифровать хранящиеся в них пароли уже дело техники, что и подтверждает MPR. В этом случае защита выполняется в два шага.
Шаг первый - реестр. Выгружаем через regedit указанную ветку реестра целиком, открываем на редактирование в любом блокнотике. Делаем резервную копию и глобально заменяем строку "\RIT" на другую, равную по длине, например "\HEY". Косая черта должна остаться неизменной. Сохраняем, запускаем и вносим в реестр. Исходную ветку \RIT при помощи того же regedit'а из реестра надо удалить.
Шаг второй - исполняемый файл. Как и в предыдущих двух примерах надо заменить в файле thebat.exe строку \RIT на нашу новую \HEY. Здесь есть две проблемы. Первая проблема заключается в том, что с некоторых пор авторы TheBat! стали накрывать главный исполняемый файл достаточно серьезной навесной защитой. Новичкам снять ее будет сложно. Последняя официально вышедшая неупакованная версия 4.0.0.3, ее можно найти и скачать например на сайте nobat.ru. По указанной в начале статьи ссылке иногда можно скачать более свежую версию с уже снятой защитой. В любом случае, для применения патча файл thebat.exe должен быть неупакованным и иметь размер около 12 мегабайт. Вторая проблема в том, что в исполняемом файле строки хранятся как в обычной ASCII-кодировке, так и в Unicode, и заменять придется оба варианта. С ASCII проблем не возникнет, как и в предыдущих примерах открываем thebat.exe в hex-редакторе. Строка поиска "\RIT\", строка замены "\HEY\", обратите внимание на закрывающую косую черту. Поиск и замена строк в Unicode отличается тем, что символы в Unicode кодируются двумя байтами, а значит искать надо строку "\", 0x00, "R", 0x00, "I", 0x00, "T". Значком "0x00" обозначен ASCII-символ с кодом 0. Соответственно строка для замены формируется тоже с учетом Unicode: "\", 0x00, "H", 0x00, "E", 0x00, "Y". Заметьте, что в этом случае закрывающей косой черты нет. Оба поиска выполняются глобально по всему файлу и заменяются все вхождения.
Если все сделано правильно, то после внесения изменений в реестр и исполняемый файл, TheBat! будет работать как и прежде. А вот контрольная проверка через Multi Password Recovery покажет, что он у вас вообще никогда не был установлен, значит и пароли воровать неоткуда :)

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

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 9569 | Комментариев: 19

Внимание! Статья опубликована больше года назад, информация могла устареть!

Комментарии

Отзывы посетителей сайта о статье
ManHunter (20.10.2010 в 13:33):
Мне это НЕ интересно.
Sanx (20.10.2010 в 13:31):
Просьба, напишите статью о универсальном патче Коммандера. Хотя бы кратко :) Спасибо за ваши статьи!
Олег (31.12.2009 в 14:16):
Только здесь нашел патч который убирает проверку целостности Total Commander (даже версии 7.50a!!!). Теперь изменил в .exe файле иконки для архивов, а то они слишком похожи на иконки папок. Спасибо вам!
ManHunter (18.09.2009 в 19:14):
Хорошая попытка. Только wcx_ftp.ini может лежать в папке с тоталом (как у меня), в document & settings или задаваться параметром при запуске. Переменные окружения с указанием местоположения файла конфигурации доступны только из-под запущенного тотала. Так что сигнатурный поиск перебором будет сводиться к проверке всех файлов на винте.
Ну а в новых версиях файл с паролями вообще шифруется. Так что вопрос закрыт.
k0l0p0k (18.09.2009 в 19:07):
универсальный алгоритм создавать к сожалению нет времени :(
после некоторых эксперементов выяснилось что TOTALCMD.EXE
создаёт в папке WINDOWS файлик wcx_ftp.ini ,в реестре упоминания
о wcx_ftp.ini нет ,к сожалению у меня TOTALCMD.EXE упакован...
вот некоторые соображения:
в папке WINDOWS файлов  около 100 шт (это у меня ),
в файле wcx_ftp.ini всегда присутствуют следующие строки:
[OldConnections]
[connections]
default=.....
...
host=....
username=.....
pasvmode=..
[General]
...
и т.д.
проанализировать 100 файликов на предмет наличия этих строк не
трудно,даже трояну :) ,ну а если не нашли значит облом :( ,ищем
другую жертву
ManHunter (18.09.2009 в 11:51):
Нарисуй-ка лучше универсальный автоматический алгоритм поиска имени файла с паролями в неупакованном файле TOTALCMD.EXE. До этого момента все твои доводы считаю несостоятельными, так как они все основаны на _ошибочной_ теории.
k0l0p0k (18.09.2009 в 09:53):
насчёт упаковки и rename согласен , но думаю в природе
найдётся много НЕупакованных и НЕпереименованных
ManHunter (18.09.2009 в 08:58):
А теперь включи мозг и подумай еще раз. Ты описываешь обход защиты с использованием "человеческого фактора", а эта защита против автоматической кражи паролей. Что будет, если я упакую файл после внесения изменений? Троян будет его распаковывать чтобы найти строчки? Я уже хочу такой троян!! А если в добавок переименую? Троян будет проверять все исполняемые файлы подряд? Троян размером в пару гигабайт с блекджеком и шлюхами? Ну-ну...
k0l0p0k (18.09.2009 в 08:57):
насчёт мусора: INI размером в пару гигабайт
мы анализировать НЕ будем а поищем другой
k0l0p0k (18.09.2009 в 08:51):
думаю обойти предложенную защиту не сложно:
до чтения реестра смотрим ЕХЕ находим нужные
названия веток\параметров\ключей
ManHunter (18.09.2009 в 08:42):
Тогда проще натолкать туда пару гигабайт мусора, чтобы любой троян охерел от такого счастья и поломался.
k0l0p0k (18.09.2009 в 08:27):
что касается Total Commanderа файлик wcx_ftp.ini лучше оставить и вписать в него ложные данные.таким образом нападающие будут
направлены по ложному следу.
ManHunter (20.08.2009 в 10:38):
Мне HIEW нравится, кому-то WinHex, кому-то еще что-то. Не буду же я про все писать, как там файл открыть.
Сергей (20.08.2009 в 10:15):
...Уже знакомым способом открываем файл TOTALCMD.EXE в hex-редакторе...
Подскажите это где посмотреть и какой hex- редактор??
bodrox (13.08.2009 в 11:25):
А вот Миранда версии 0.9.0.1 не восстанавливает ветку в реестре.
gosha (05.01.2009 в 07:44):
Для этого замените sqlite3.dll в Windows/System32 на скачанный с сайта sqlite.
Ссылка: http://www.sqlite.org/sqlitedll-3_6_7.zip
Ссылка на тему, откуда взято (для контролю): http://www.phpbbguru.net/commu...ic21596.html
Чалых (02.12.2008 в 13:59):
Multi Password Recovery
Почему-то при запуске выходит следующее сообщение:
"Приложению не удалось запуститься, поскольку sqlite3.dll не был найден. Повторная установка приложения может исправить эту проблему". Проблема не исправляется.
Never (17.10.2008 в 15:32):
Товарисчь Франкен, я бы попросил!
franken (16.10.2008 в 12:37):
"ее автор в прошлом занимался разработкой самого известного трояна Pinch"
ну это может не самый извесный, но непосвященному народу пофиг

в целом метод не новый, но очень даже имеет право на существование

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2018
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.004 сек.) / Память: 5 Mb
Наверх