Авторы: (c)Крис Касперски ака мыщъх и Ares
Сниффер для хакера - это как катана для самурая. Вот только самураев нынче много, а достойного оружия - мало. Плохо, когда сниффер отказывается работать, но еще хуже, когда он работает неправильно - например, в упор не видит трафик или некорректно его декодирует, теряя пароли и другую жизненно важную информацию...
Поздравляем! В нашем полку прибыло! Зарелизен новый сниффер 0x4553-Intercepter отечественной разработки, распространяемый на бесплатной основе, хоть и без исходных текстов, что, конечно, большой минус, но этот минус полностью перекрывается богатым функционалом, обгоняющим конкурентов по всем статьям сразу. И это - с первого релиза! В последующих версиях планируется введение в строй множества соблазнительных фич, выводящих конкуренцию в плоскость вертикального предела с полным отрывом от земли. Что ж, как говорится, поживем - увидим, а пока разберемся с тем, что уже есть (благо, разбираться действительно есть с чем).
Рисунок 1. Форум пользователей 0x4553-Intercepter'а.
Краткая характеристика: характер - нордический... тьфу, какой к черту характер? Не характер! Интерфейс! А интерфейс у нас графический, то есть гуевый, можно даже сказать интуитивно понятный, позволяющий хачить сразу же после запуска без чтения мануалов. Для начинающих хакеров - самое то! Конечно, парни поопытнее предпочитают командную строку с кучей "магических" ключей и строгое разделение обязанностей. Они мыслят так: пусть у нас будет куча мелких утилит, каждая из которых делает что-то одно: кто-то грабит трафик, кто-то его декодирует, кто-то выдергивает из декодированного трафика пароли, а кто-то... короче, UNIX-way в чистом виде. 0x4553-Intercepter идет по пути интеграции (швейцарский нож типа "все в одном"), исповедуя концепции Windows, что, впрочем, совсем неудивительно, поскольку он, собственно говоря, на Windows и ориентирован.
Грабеж трафика реализован через популярный пакет PCAP, перенесенный из мира UNIX'а в мир Windows. Достаточно многие снифферы устанавливают WinPCAP в систему, жестко прописывая его на диске и в реестре, что в конечном счете приводит к конфликтам со многими приложениями, возникающим даже при незапущенном сниффере. 0x4553-Intercepter в этом плане предельно корректен. Библиотеки wpcap.dll и packet.dll он деловито носит за собой, динамически подгружая их из своего рабочего каталога строго по необходимости, а потому операционная система остается в нетронутой девственной целости.
Кстати, операционная система может быть любой из линейки NT - W2K, XP, S2K3 и по заявлениям разработчика, Виста. Мыщъх третировал... тьфу, тестировал сниффер на S2K3 - полет нормальный. Висты под рукой нет, проверять не на чем, хотя по слухам, циркулирующим на форумах, у WinPCAP'а с ней какие-то терки, так что не факт, что все заведется. Впрочем, Виста на хакерских машинах - явление редкое, если не сказать - исключительное, так что независимо от качества поддержки последней - это не есть проблема. К тому же, если копнуть вглубь, 0x4553-Intercepter не ограничивается одной лишь Windows, поддерживая возможность удаленного захвата трафика посредством RPCAP-демона, обычно устанавливаемого на шлюз локальной сети и грабящий весь трафик на входе/выводе во "внешний" мир. Поскольку, шлюзы нередко вращаются под управлением Linux'а или xBSD, то RPCAP-демон оказывается весьма полезным подспорьем. А без него сниффер превращается в игрушку, которой много не награбишь, особенно в сетях с интеллектуальными маршрутизаторами, доставляющих пакеты только тем узлам, которым они непосредственно адресованы (впрочем, 0x4553-Intercepter способен грабить трафик даже в таких условиях, но об этом мы поговорим чуть позже), а пока вернемся к описанию базового функционала.
Рисунок 2. 0x4553-Intercepter грабит трафик в "сыром" (raw) режиме.
Снифферы первых поколений работали в так называемом "сыром" режиме (raw mode), захватывая весь (или не весь) пролетающий мимо них трафик, который потом приходилось растягивать на пакеты, сортируя их по номерам портов/типам протоколов, а затем еще и декодировать содержимое с учетом формата конкретного протокола. 0x4553-Intercepter не только отображает награбленное в удобочитаемом виде, но и способен "выхватывать" пароли (или их хэши) из следующих протоколов: ICQ, IRC, AIM, FTP, IMAP, POP3, SMTP, LDAP, BNC, SOCKS, HTTP, NNTP, CVS, TELNET, MRA, DC++, VNC, MYSQL, ORACLE.
Пароли, посланные открытым текстом "как есть" (они же "plain"), готовы к непосредственному использованию сразу же после перехвата. Стоп! Нельзя понимать написанное столь буквально. Конечно же, не сразу после перехвата, а только после завершения текущей сессии легальным пользователем-жертвой, т.к. повторный вход в активную сессию в 99% случаев блокируется, что впрочем не представляет особой проблемы. С хэш-суммами дело обстоит намного хуже и без взлома (обычно осуществляемого методом перебора) тут не обойтись, однако у большинства протоколов криптостойкость невелика, а современные компьютеры (особенно объединенные в ботнеты) чрезвычайно мощны. Короче - эх, кони, мои кони! Достаточно воспользоваться одной из многих хэш-ломалок и запастись терпением. По понятным причинам (нельзя объять необъятное!) хэш-ломалки в состав 0x4553-Intercepter не входят.
Сниффер поддерживает множество популярных мессенджеров, отображая диалог в удобочитаемом виде. В настоящий момент "перевариваются" следующие протоколы: ICQ, AIM, JABBER, YAHOO, MSN, GADU-GADU, IRC и MRA, причем в отличие от зарубежных снифферов, работающих преимущественно с ANSI-текстом, 0x4553-Intercepter выгодно отличается тем, что поддерживает кодировки UTF8\UTF16\RTF, используемые для передачи национальных символов (в том числе и кириллических). Мыщъх проверил: 0x4553-Intercepter корректно отображает не только русские, но даже китайские письмена и арабскую вязь, а вот с некоторыми европейскими языками имеются определенные трудности, поскольку они используют ANSI со своей локалью (читай - кодовой страницей), которая не есть уникод и при попытке вывода на экран при текущей кириллической или американской локали такая мешанина получается... Но это не проблема 0x4553-Intercepter'а. Если в сети находятся два человека, общающиеся не через уникодовые мессенджеры (или через уникодовые, но с отличной от нас локалью), то мы должны через "региональные настройки" выбрать ту же самую локаль, что у них, открыть текст, награбленный 0x4553-Intercepter'ом, в "Блокноте" и сохранить его как уникод, после чего можно возвращать русскую локаль на место и открывать файл чем угодно (читай - чем угодно с поддержкой уникода - вот, в частности, FAR позволяет просматривать уникодовые файлы по F3, но для их редактирования нужно установить специальный плагин, коих много). Кстати, китайские/японские неуникодовые клиенты также используют ANSI, ну это, конечно, не совсем ANSI, точнее даже совсем не ANSI, но с точки зрения сниффера оно выглядит именно так и чтобы прочесть захваченный текст, приходится опять-таки перенастраивать операционную систему на китайскую/японскую локаль.
Рисунок 3. Китайская мессага, посланная в ANSI-формате, отображаемая в системе с установленной китайской локалью (сверху), тот же самый текст, отображаемый в системе с установленной кириллической локалью (снизу).
Тут, кстати говоря, самое время (и место!) сказать, что протокол и клиент - совсем не одно и то же. GTalk, например, использует JABBER-протокол и хотя отсутствует в данном списке, замечательно "захватывается" сниффером. Вообще же, клиентов много. Намного больше, чем протоколов. Некоторые клиенты (та же "Миринда") поддерживают целый легион протоколов и потому успешность перехвата зависит от того, по какому протоколу треплется конкретный пользователь. Традиционная почта (в смысле - SMTP/POP3) к мессенджерам не относится, но она также захватывается и декодируется сниффером. К Web-интерфейсу сказанное не относится и потому его приходится разгребать руками, лапами и хвостом...
Кстати, о птичках, то есть о хвостах. Для любителей поработать руками в 0x4553-Intercepter предусмотрен старый добрый "сырой" режим, отображающий трафик в hex-виде (слева цифры, справа - символы), но прибегать к этому режиму обычно нет никакой нужды, поскольку сырых граберов - от хвоста и больше, и в этом плане 0x4553-Intercepter им не конкурент, то есть конкурент, конечно, но все-таки он ориентирован на совсем другой класс задач.
В арсенале 0x4553-Intercepter имеется множество убийственных технологий. Чего только один "eXtreme mode" стоит. В этом режиме снифер грабит весь трафик, определяя типы протоколов не по номерам портов, которые могут быть изменены, а по их содержимому (естественно, поскольку искусственный интеллект еще не изобретен, возможны ошибки - как позитивные, т.е. захват "левых" пакетов, так и негативные - т.е. пропуск полезных пакетов, однако достаточно выловить всего лишь несколько пакетов, чтобы определить порт, зная который, можно грабить трафик и в обычном режиме). Главным образом эта фича полезна для выявления Proxy- и FTP-серверов. Остальные сервисы работают с более или менее предсказуемыми портами. POP3/SMTP на нестандартных портах встречаются крайне редко, а вот приватный FTP на нестандартном порте (типа чтобы не засекли и не ломились всякие левые личности) - явление вполне нормальное.
Награбленный трафик может быть сохранен в pcap-формате (стандарт де-факто среди снифферов) и подвергнут дальнейшему анализу в утилитах, извлекающих информацию, которую не извлек 0x4553-Intercepter. Как правило, это взломщики паролей, работающие с протоколами, неизвестными 0x4553-Intercepter'у, к которым относятся многие беспроводные протоколы и нестандартные протоколы, реализованные неизвестно кем и неизвестно для чего. В любом случае, возможность экспорта трафика в общепринятый формат не помешает, тем более, что 0x4553-Intercepter с радостью импортирует в себя pcap-дампы, собранные другими снифферами, ловко грабящими трафик, но не знающими - чего такого хорошего с ним можно сделать (где искать пароли, как декодировать сообщения мессенджеров и т.д.)
Помимо чисто снифферных функций, 0x4553-Intercepter располагает рядом весьма соблазнительных фич. Начнем с банального обнаружения узлов, которое в данном случае осуществляется отнюдь не тупым сканированием и перебором IP-адресов (даже мааааленькая локальная сеть класса С сканируется ну очень долго, плюс на узле могут быть закрыты все порты и запрещен ответ на ping). 0x4553-Intercepter посылает широковещательный ARP-запрос, требуя, чтобы все узлы, которые его получили, сообщили свои IP-адреса. Быстро и эффективно. Это вполне легальная операция, на которую системы обнаружения вторжением смотрят сквозь пальцы, ну разве что хакер не начнет “от нечего делать” слать запросы один за другим, что выглядит весьма подозрительно.
Рисунок 4. 0x4553-Intercepter обнаруживает узлы локальной сети, выявляя активные снифферы, многие из которых в действительности представляют собой сторожевые системы.
Причем 0x4553-Intercepter способен выявлять остальные снифферы, многие из которых с формальной точки зрения представляют собой брандмауэры или те же самые системы обнаружения вторжений. Вот такие, с позволения сказать, "честные" снифферы в локальной сети, высаживающие администратора на измену и делающие эту фичу совершенно бесполезной для него (вменяемые злоумышленники давно используют стелс-снифферы, требующие небольшой доработки сетевой карты, чтобы она не реагировала на пакеты, которые предназначены не ей, и простейший способ заткнуть ей рот - перерезать передающий провод в витой паре, правда будучи запущенным на такой карте 0x4553-Intercepter потеряет добрую половину функционала). А вот для хакеров функция обнаружения снифферов - самое то. Даже если это не система защиты, а просто человек-со-сниффером, он явно не ламер и лучше его узел не трогать, а то ведь можно и огрести. Еще неизвестно кто круче окажется - он или мы.
Интегрированный перепрограмматор MAC-адресов - вещь полезная, хотя и без нее имеется куча утилит аналогичного назначения, в том числе и входящих в состав большинства (если не всех) дистрибутивов Linux'а и xBSD. В крупных локальных сетях идентификация хакера, как правило, осуществляется по номеру порта маршрутизатора, в который воткнут его сетевой кабель, причем специальная сторожевая программа следит за соответствием MAC-адресов и номеров физических портов маршрутизатора, а потому от возмездия не уйти. Ну, разве что добраться до маршрутизатора и на время атаки переткнуть соседние кабели, поменяв их местами. А вот в маленьких локальных сетях (особенно с приходящими администраторами) ситуация совершенно иная. Огромное количество таких “типа администраторов" о MAC-адресах только слышали, но так и не врубились - зачем они нужны, ведь у нас есть замечательный лог, в котором записаны IP!
Администраторы поумнее устанавливают разнообразные системы обнаружения вторжений, отображающие MAC-адреса потенциальных нарушителей и если хакер изменит свой MAC, то найти его будет весьма проблематично. Хотя не стоит забывать, что чем умнее администратор, тем более глупым он стремиться выглядеть. А зачем ему понты кидать? Зато когда нагружают непрофильной работой, то отмазка: "не знаю, не умею, и вообще совсем не в теме" - работает железно. Кстати, то же самое относится к хакерам. Чтобы хакерствовать, оставаясь при этом на свободе при всех своих (бригада каратистов быстрого реагирования пролетает мимо), достаточно пригнуться лаптем или поленом, прущимся от Visual Basic'а и шепотом называющим ATL-CTRL-DEL хакерской комбинацией.
Рисунок 5. Определение MAC-адреса нарушителя при помощи популярного пакета Colasoft Capsa, используемого многими администраторами.
Сниффер полезен не только для перехвата чужих данных, но так же и для анализа циркулирующего локального трафика. С его помощью можно понять - кто и куда ломится с нашей машины, например - какие данные передает система при входе в сеть. Аналогичным образом вылавливаются спам-боты (особенно при сниффе со шлюза) - в логе друг за другом идет отображение перехваченных писем. Шлюзовой перехват в этом плане очень хорош тем, что его крайне трудно замаскировать, в то же самое время, если зловредная программа запущена на одной машине со сниффером она может ему весьма эффективно противостоять и потому, если сниффер говорит, что в "Багдаде все спокойно", вовсе не факт, что нас уже не поимели.
У 0x4553-Intercepter есть еще одна очень полезная фича. Cain и Ufasoft sniffer при загрузке pcap-дампов "подвисают" на время их обработки, не предоставляя никаких рычагов управления для управления процессом и ничего не отображая на экране. 0x4553-Intercepter показывает текущий статус загрузки в пакетах/процентах, выводя данные (появляющиеся буквально на глазах) параллельно с их загрузкой. Можно созерцать, а можно переключиться в другой режим, занявшись делом, или просто прервать загрузку дампа, если нам уже понятно, что ничего интересного в нем все равно нет.
Без ложной скромности 0x4553-Intercepter претендует на роль одного из лучших снифферов, ориентированного на молодое поколение хакеров, влюбленных в графический интерфейс и шарахающихся от командной строки как ладан от дьявола. Консольные снифферы их не удовлетворяют, а необходимость обрабатывать награбленный трафик кучей различных утилит - просто бесит. Что ж, спрос рождает предложение и желающие наконец обрящут то, что они так давно и безуспешно искали.
А если возникнут какие-то непонятки - то RFTM. Курим мануал, в смысле - путем нажатия на F1 или открываем справку, находящуюся в файле help.chm, написанном на международном хакерском языке. Английском, в смысле, научиться трепаться на котором намного проще, чем освоить кодинг на ассемблере. Ну, а для совсем ленивых - машинные переводчики есть.
Ну, а там с графического интерфейса и до командной строки недалеко. Главное ведь - это понять основные концепции, врубиться в тему, втянувшись в первые эксперименты (а экспериментировать с 0x4553-Intercepter сниффером можно оччччень долго). Когда же его функционала и гибкости будет недоставать - вот тогда и только тогда следует всерьез задумываться об установке Linux/xBSD и доработке имеющихся снифферов, распространяемых в исходных текстах.
Рисунок 6. Сниффер - русский, а мануал - английский, для затяжного раскуривания.
Рисунок 7. В первом релизе имеются недоделанные функции в стиле "under construction".