Вышел Intercepter-NG 2.5 для Android
Да, Intercepter еще жив! И после длительного затишья я рад представить новую версию.
Изначально ставилась задача причесать интерфейс, исправить ошибки, ввести некоторые нововведения и протестировать работоспособность на новых версиях Android.
Что из этого вышло — под катом.
Итак. Улучшен внешний вид приложения и повышено удобство использования. Выводимая информация разграничена цветами, ресайз текста осуществляется жестами, переключаться между вкладками можно при помощи свайпов, а так же добавлен вибро-отклик.
Правила маршрутизации и iptables автоматически сохраняются перед началом работы и восстанавливаются при завершении.
Чтобы избежать лишних ожиданий в момент запуска отображается результат предыдущего сканирования для текущей сети. Также при запуске делается быстрый pre-scan — чтобы исключить необходимость повторного сканирования, как это требовалось в прошлых версиях. Улучшен процесс сканирования, добавлен новый способ разрешения имён. Добавлена функция автоматического сохранения имён. Если во время сканирования не удалось определить имя устройства — оно будет взято из кэша.
В настройках добавилась кнопка диагностики. В случае возникновения проблем выводимая информация сможет облегчить поиск решения. В частности, проверяется статус SELinux. Intercepter автоматически переключает setenforce в 0 во время запуска, поэтому если в диагностике окажется статус Enforcing — значит, на данной системе он не отключаем и корректной работы ждать не стоит. Такая ситуация встречается, например, на стоковых прошивках у Samsung. Решается установкой сторонних ROM’ов, например LineageOS.
Новый Intercepter запускается на всех архитектурах начиная с версии Android 4.4. Основное тестирование проводилось на Android 9 и 10, никаких отличий в работе на более ранних версиях быть не должно. Больше не требуется дополнительная установка BusyBox и SuperSU. Достаточно Magisk или иных встроенных root-менеджеров. Libpcap обновлён до версии 1.9.1. Начиная с Android 8.1 для получения SSID сети (он высвечивается на начальном экране) требуется предоставить доступ к данным о местоположении. Их можно не предоставлять, на функционале программы это никак не сказывается.
Улучшен код для работы SSLStrip, добавлен HSTS спуфинг.
Имевшийся ранее сканер портов переделан в упрощенный X-Scan из оригинальной версии под Windows. К открытым портам применяется проверка на наличие SSL, затем высвечивается баннер службы (при наличии) и порт проверяется на принадлежность к HTTP протоколу.
Если это так — выводится информация из различных HTTP заголовков.
Если открыт 445 порт, то инициируется попытка прочитать версию ОС через SMB запрос. Дополнительно запускается проверка на наличие EternalBlue уязвимости.
Теперь я хочу рассказать о новом функционале, который может вырасти во что-то действительно большое, если комьюнити активно поддержит идею.
Производя обычное ARP сканирование, мы получаем пару IP: MAC. По MAC адресу мы можем определить производителя сетевой карты, через ICMP запрос мы можем получить значение TTL и определить, в общих чертах, тип операционной системы: Windows (128), Unix (64) или что-то более редкое — Cisco IOS (255). Если на исследуемом устройстве имеются открытые TCP порты, то мы можем получить TCP Window Size и уже отделить Windows XP от Windows 7 или Linux от FreeBSD.
Именно по этой схеме определялась операционная система в предыдущих версиях Intercepter.
В попытке расширить возможности определения ОС я обратился к пассивному фингерпринтингу, который многие годы попросту игнорировал. Наиболее актуальным приложением с относительно свежей базой является Satori. И Satori и p0f (другой известный инструмент) работают точно таким же образом, что описан выше, только помимо двух значений-маркеров анализируется ряд других полей IP и TCP заголовков, а также TCP опции, их значение и последовательность. Полученный отпечаток представляет из себя строку следующего вида: 64240:128:1:52: M1460, N, W8, N, N, S: T. Это фингерпринт для Windows 10, который так же актуален для Windows 7.
Осмотрев внимательно всю базу отпечатков для TCP протокола, стало ясно, что пользуясь ей действительно можно улучшить точность определения ОС, но изначальные ожидания не оправдались, т.к. многие отпечатки подходят для нескольких версий операционных систем, поэтому крайне затруднительно сделать выбор среди ряда вариантов.
Изначально, подобные системы фингерпринта создавались как универсальный способ определения ОС, применимый к трафику из разных сетей, в том числе глобальных,
где такой параметр как MAC адрес является не существенным. Но Intercepter работает строго в Ethernet среде, где каждое устройство доступно напрямую и имеет уникальный MAC.
Если мы добавим к TCP отпечатку еще и первые 3 байта MAC адреса, то получится практически уникальная запись, позволяющая с высокой степенью точности определить уже не столько операционную систему, сколько модель устройства! Как минимум это применимо к смартфонам, планшетам и другим служебным сетевым устройствам типа маршрутизаторов, принтеров и так далее. Так мы значительно увеличиваем пользу от применения сетевых отпечатков. Единственная сложность — собрать базу записей…
Задача решается несколькими способами:
1.
В настройках Intercepter добавлена кнопка, которая генерирует фингерпринт для вашего устройства, достаточно его скопировать и выслать мне на почту.
Главное убедитесь, что у вас отключена рандомизация MAC адреса, иначе фингерпринт будет совершенно бесполезен.
Плюсы: не требует особых телодвижений.
Минусы: даёт отпечаток только Android устройств с root правами.
2.
X-Scan. При наличии хотя бы одного открытого порта, по завершению сканирования, выводится отпечаток для исследуемого устройства, который автоматически копируется в буфер обмена. Если у вас есть возможность узнать версию ОС и\или модель устройства — подпишите отпечаток и вышлите на почту.
Плюсы: выводимая дополнительная информация в этом режиме может помочь определить модель устройства и сформировать отпечаток, даже если вы не знаете, что перед вами.
Минусы: малый охват, один отпечаток за одно сканирование.
3.
Intercepter-NG 1.0+. Я выпустил небольшое обновление, добавив вывод отпечатков при Smart сканировании. Присутствуют различные исправления и улучшения относительно предыдущей версии 1.0, в том числе в X-Scan добавлен чекер на EternalBlue, обновлена база oui. Не забудьте поставить npcap.
Плюсы: позволяет за раз получить отпечатки для большого числа устройств в сети.
Минусы: сканируется ограниченный список самых распространенных портов.
Пример полноценного отпечатка: CC2DE0;14480:64:1:60: M1460, S, T, N, W5: ZAT=Linux 3.x; MikroTik RB750Gr3
На начальном этапе требуются отпечатки даже с обычных компьютерных систем, не имеющих какой-то конкретной модели. Необходимо пополнить так называемые generic отпечатки, которые объединяют семейство операционных систем разных версий.
Эта база будет полезна не только для использования в Intercepter, она точно так же станет полезной для любого другого проекта, который занимается анализом трафика, например NetworkMiner, используемый в компьютерной криминалистике. Существующие базы для пассивного определения ОС по TCP отпечаткам сильно устарели или имеют недостаточное количество записей. Есть nmap, который так или иначе обновляется, но nmap — это про активное сканирование, совсем другая история…
Intercepter предлагает удобный и быстрый способ собрать отпечатки, не требуя глубоких познаний в IT — запусти сканирование, скопируй отпечаток — подпиши, отправь. Piece of cake.
Я даю инструмент, а что с ним делать дальше — решать вам…
Многих интересует судьба основной Windows версии. Выход полноценного обновления обязательно будет, но когда — пока неизвестно.
Выражаю благодарность AndraxBoy и другим пользователям 4pda за оказанную помощь в тестировании. Отдельное спасибо Магомеду Магомадову и Александру Дмитренко.
Вопросы, пожелания и отпечатки можно слать на intercepter.mail@gmail.com. Для отпечатков необходимо указать тему Fingerprint.
Site: sniff.su
Mirror: github.com/intercepter-ng/mirror
Mail: intercepter.mail@gmail.com
Twitter: twitter.com/IntercepterNG
Forum: intercepterng.boards.net
Blog: intercepter-ng.blogspot.ru