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

Stealth patching своими руками

Крис Касперски

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


ака мыщъх (no e-mail)

Малоизвестные способы взлома

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

Обзор способов взлома

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

Будем исходить из того, что на вражеском компьютере уже находится собственный код хакера. Забросить его можно различными путями. Например, найти переполняющийся буфер и затолкать в него shell-код или зарядить электронное письмо "нехорошим" вложением. В общем, эта методика уже давно отработана и отшлифована до зеркального блеска. Вирусы, черви, троянские лошади так и прут - только успевай затыкать дыры. А количество дыр, обнаруженных в Windows за последние полгода, переходит все границы терпимости и гуманизма. Каждый месяц приходится качать по полста метров заплаток, практически все из них критические. Но кто качает их? Так, считанные единицы! Корабль под названием "Windows" дал серьезную течь, треснув по всем швам. Миллионы незалатанных машин ждут своего часа!

Локальное воздействие на атакуемую машину до сих пор замалчивается как специалистами по информационной безопасности, так и хакерами. Дальше примитивных методов сокрытия файлов и процессов дело обычно не идет. Вызывать native-API операционной системы можно, но... бесполезно. Заразить NTOSKRNL.EXE таким способом все равно не удастся, к тому же любая модификация системных файлов слишком заметна. Лучше воевать с исполняемыми файлами прямо в памяти!

Модификация без изменения

Классика – это не только Достоевский с Толстым, но и изменение защитных байт в файле или памяти (более известное под именем "bit hack"). Такой же древний, неинтересный, навязший у всех на зубах прием. Легко обнаруживаемый, да к тому же юридически далеко не безупречный. Модификация программного обеспечения - это статья. А статья - это ласты :). "Несанкционированный доступ к информации" и все такое.

Можно ли хакнуть приложение, не прикасаясь к нему? Вопрос не так глуп, как кажется: в нашем распоряжении есть и ментальные методы. Попросту говоря, голова. Пусть мы не можем модифицировать код и данные приложения, но насиловать регистры процессора нам никто не запрещает! Процессор, в отличие от программного обеспечения, продается, а не лицензируется, то есть мы можем делать с ним все, что вздумается.

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

(Типичный фрагмент защищенной программы)

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