Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #60, НОЯБРЬ 2005 г.

Виртуальный шпион

Tony (porco@argentina.com)

Спецвыпуск: Хакер, номер #060, стр. 060-058-1


Создание электронного Штирлица

Эта статья поможет тебе в создании собственной программы-шпиона. Здесь ты не найдешь готовых ответов на все вопросы, но получишь список действенных рецептов и тропинок для труднодоступных мест, по которым тебе необходимо прошагать, чтобы найти свой Грааль.

Synopsis

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

3rd Party

Человеку, всерьез желающему вести слежку за определенным компьютерным существом, скорее всего, не подойдут существующие (в паблике ;)) шпионы из-за их недостаточной функциональности, заметности их работы, невозможности установить программу удаленно и т.д. Неудивительно. Ведение слежки – это, в первую очередь, творческий процесс, который зависит от подготовленности жертвы, доступности ее рабочего места, воображения следящего и наличия/отсутствия паранойи у системного администратора. Любая сколь угодно совершенная программа не в состоянии предоставить тебе всех нужных данных. Однако в некоторых случаях имеет смысл использовать удобный и готовый к употреблению инструментарий. Типичный пример – информация о посещенных web-сайтах. Если жертва пользуется ишачком, то эта информация сохраняется в каталоге Documents and Settings\User\Local Settings\History\History.IE5. Незачем вводить парсер этих данных в свой шпион, если можно сжать и переслать их для анализа в свой почтовый ящик. Далее можно взять программу Red Cliff Web Historian для анализа историй путешествий ишака, которая вытащит все имена и явки скачиваемых файлов плюс сохранит их в формате таблицы Excel. Итак, мораль: необходимо использовать существующий код и инструменты максимально.

Упрощение задачи

Перед началом слежки раскопай максимум информации о программном обеспечении, установленном на компьютере жертвы. Возможно, для этого потребуется дополнительный шпион или сканер, например Shadow Security Scaner. Для упрощения материала будем считать, что у нашего клиента стоит одна из NT-операционок, пусть Windows XP SP2. Также будем считать, что ты уже проник в эту систему и можешь делать с ней все, что тебе заблагорассудится. Первое из важнейших качеств твоего шпиона – умение запускаться незаметно для пользователя.

Скрытый запуск

Эта тема давно изъезжена вдоль и поперек, поэтому пробегусь по ней в конспективной форме. Запускать шпион стандартным образом из "Автозапуска" или штатного Run'a в реестре - плохая идея. Даже слегка подкованный пользователь быстро раскроет твой замысел с помощью простого StartUp-менеджера. Мне больше всего нравится способ загрузки стандартным системным процессом твоей DLL, так как в этом случае ты убиваешь сразу двух зайцев: невидимость твоей программы и автозагрузку. Невидимость достигается за счет того, что шпион подгружается в адресное пространство родителя и создает в его процессе свой поток (thread). Типичный пример - это системный процесс Winlogon. Дело в том, что существует возможность написать свой плагин (DLL) к этому процессу и зарегистрировать плагин в реестре. В момент своей инициализации Winlogon загружает все плагины, перечисленные в подключах "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify", и вызывает зарегистрированные обработчики системных событий, таких как авторизация пользователя, запуск оболочки, завершение работы и т.д.

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