Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #91, ИЮЛЬ 2006 г.

FAQ

Степан Ильин aka Step

Хакер, номер #091, стр. 091-138-2


A: Крис Касперски обязательно посоветовал бы тебе дизассемблировать код. Так ты и вызовы отследишь, и в общем алгоритме программы разберешься. Но если квалификации не хватает, то вполне сойдет утилита NtSpy (http://cmp.phys.msu.su/ntclub). Прога представляет собой комбинацию драйверов - интерфейсная программа позволяет выудить информацию о любых системных вызовах. Для каждого выводится имя процесса, вызвавшего функцию, время вызова, имя функции и многое другое. NtSpy также позволяет наложить фильтр по процессам, что для тебя особенно актуально.

Q: Как писать кроссплатформенные приложения?

A: А как взломать Unix? Четких рецептов, естественно, нет, но есть общие рекомендации. Самый главный принцип — четкое разделение движка программы и ее интерфейса (во время проектирования и разработки приложения). Рассмотрим в качестве примера популярный Web-сервер Apache. Как известно, популярный демон реализован на базе всевозможных платформ, в том числе популярных Unix и Windows. Мощным ходом со стороны разработчиков стала многомодульность этого приложения. Каждый отдельный компонент, отвечающий за ту или иную функцию, написан с использованием внутреннего языка Apache и никак не затрагивает системных вызовов операционной системы. Таким образом, получается идеальная модель приложения, которое можно портировать на любую систему, переписав лишь часть, отвечающую за работу с сетевыми интерфейсами и операционной системой. В то же время все функциональные элементы остаются неизменными.

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

Q: А существует ли хоть какая-нибудь возможность перехватить HTTPS-трафик пользователя? По идеи, технология SSL полностью исключает такую возможность.

A: Начать стоит с того, что SSL может использоваться по-разному. В идеале как клиент, так и сервер должен иметь свой собственный сертификат — в этом случае достигается максимум безопасности. Но такой подход я встречал только на хакерских форумах, в то время как обычные сайты и даже банковские биллинги его обходят стороной. Если сертификаты используются только серверной стороной, то перехватить данные теоретически возможно, но с учетом нескольких условий.

Во-первых, тебе придется настроить пользовательское подключение так, чтобы весь HTTP-трафик шел через твою заранее заготовленную прокси, а для этого нужен доступ к компьютеру жертвы. Во-вторых, пользователь не должен обратить внимание (вероятнее всего, не обратит) на предупреждения браузера о том, что полученные детали SSL не совпадают с сертификатом сервера (сертификат прокси, естественно, будет отличаться от сертификата сервера). Все остальное — дело техники или, вернее, специального софта. Я знаю по крайней мере два HTTPS прокси-сервера, позволяющих перехватывать и модифицировать проходящие через них данные. Это — Burp proxy (http://portswigger.net/proxy/) и Achilles (www.mavensecurity.com/achilles). Особенно хорош Burp proxy. Благодаря продвинутому поиску и поддержки регулярных выражений найти нужную инфу среди массы перехваченных данных будет проще простого. Более того, любые параметры и значения форм, передаваемые серверу, легко модифицируются с помощью интерактивного инструмента, а другие данные при необходимости можно поправить с помощью шестнадцатеричного редактора. Если прокси-перехватчик установлен на удаленном компьютере, то очень кстати будет и веб-интерфейс софтины, отображающий логи программы.

Назад на стр. 091-138-1  Содержание  Вперед на стр. 091-138-3