Как найти сниффер на компьютере
Какие инструменты или методы доступны для * nix и Windows, которые помогают определить, использует ли сниффер кто-то еще в локальной сети?
Сказав это и решительно учитывая, что существуют инструменты для обнаружения таких «явлений», какой будет обходной путь к тому, чтобы не понюхать?
Обнаружить снифферы очень сложно, потому что они работают пассивно . Некоторые анализаторы генерируют небольшие объемы трафика и, тем не менее, существуют некоторые методы их обнаружения.
- Машины кэшируют ARP (протокол разрешения адресов). Отправляя не транслируемый ARP, компьютер в случайном режиме (сетевая карта, которая заставляет карту пропускать весь трафик) будет кэшировать ваш адрес ARP. Затем отправляем широковещательный пинг-пакет с нашим IP, но с другим MAC-адресом. Только машина, которая имеет наш правильный MAC-адрес из кадра ARP, сможет ответить на запрос широковещательного пинга. Итак, если машина реагирует, она должна быть нюхает.
- Большинство снифферов делают разбор. Отправка огромного количества данных и проверка связи с подозрительной машиной до и во время потока данных. Если сетевая карта подозреваемого компьютера находится в случайном режиме, она проанализирует данные и увеличит нагрузку на нее. Таким образом, для ответа на пинг требуется дополнительное время. Эта небольшая задержка может использоваться как индикатор того, что машина нюхает или нет. Это может спровоцировать ложное срабатывание, если в сети возникли «нормальные» задержки из-за большого трафика.
- Следующий метод устарел и больше не надежен: отправка запроса ping с IP-адресом подозрительного компьютера, но не с его MAC-адресом. В идеале никто не должен видеть этот пакет, поскольку каждая сетевая карта будет отклонять эхо-запрос, поскольку он не соответствует своему MAC-адресу. Если подозрительный компьютер нюхает, он ответит, поскольку не будет отклонять пакеты с другим MAC-адресом назначения.
Есть некоторые инструменты, которые реализуют эти методы, например, инструменты с открытым исходным кодом, такие как Neped и ARP Watch или AntiSniff для Windows, который является коммерческим инструментом.
«Анализаторы генерируют небольшое количество трафика». Очень важно отметить, что системы отслеживания могут быть настроены для генерации абсолютно НЕТ трафика.Обнаружение пакетов - это пассивное занятие, обычно невозможно определить, кто-то анализирует вашу сеть. Однако для того, чтобы кто-то в проводной коммутируемой ЛВС мог видеть трафик, который не предназначен только для его IP-адреса (или широковещательной передачи в сеть / подсеть) или от него, ему необходимо либо иметь доступ к контролируемому / зеркальному порту, который дублирует весь трафик, или установите «кран» на шлюзе.
Лучшая защита от перехвата - это достойное сквозное шифрование и физический контроль на чувствительном оборудовании.
Изменить: CPM, Neped и AntiSniff теперь устарели 10-15 лет . Подумайте ядро Linux <2.2 или Windows NT4. Если у кого-то есть доступ к крану или зеркалу, его обычно очень трудно обнаружить. Манипулирование ARP или DNS, вероятно, является лучшим выбором, но это далеко не так.
CPM, Neped и AntiSniff могут быть использованы для обнаружения сниффинга. Взгляните на 802.1x, который может быть еще одним уровнем для защиты доступа уровня 2 к вашей локальной сети. Это останавливает людей, которые приходят и просто подключаются к вашей сети. Сократите физический доступ к сетевым точкам / распределительным шкафам. использовать сквозное шифрование. Используйте переключатели уровня 3! Назначьте каждому порту свою собственную подсеть! Нет арп на всех! есть политика безопасности!(Я полагаю) единственный способ, которым вы можете перехватить весь трафик в коммутируемой локальной сети, - это атака «человек посередине». Вы в основном делаете отравление ARP, крадете все пакеты, читаете их и впоследствии отправляете на нужный компьютер.
Есть, вероятно, несколько инструментов, которые могут сделать это, я знаю только один:
Ettercap может выполнять атаку Mitm и обнаруживать ее, когда кто-то другой делает это.
Социальная инженерия - это другой способ сделать это. Создайте учетную запись root / admin для honeypot или другую заманчивую цель, передайте ее пароль в открытом виде и просмотрите ваши логи.
Существует простой способ обнаружить большинство снифферов. Поставьте в сеть два ящика, которых нет в DNS и которые больше ни для чего не используются. Попросите их периодически пинговать или иным образом общаться друг с другом.
Теперь следите за своей сетью на предмет поиска DNS и / или запросов ARP на их IP-адреса. Многие снифферы по умолчанию будут искать любые адреса, которые найдут, и поэтому любой поиск на этих устройствах будет серьезным предупреждением.
Умный хакер может отключить эти поиски, но многие не подумают, и это определенно замедлит его.
Теперь, если он достаточно умен, чтобы не разрешать DNS-запросы, и предотвращает какие-либо ARP для этих устройств, ваша задача намного сложнее. На этом этапе вам следует придерживаться философии, согласно которой сеть всегда прослушивается, и принимать проактивные процедуры для предотвращения любых уязвимостей, которые могут возникнуть в этом предположении. Некоторые включают в себя:
- Используйте полностью коммутируемую сеть
- Привязать порты коммутатора к MAC-адресам
- Запретить неразборчивый режим на сетевых картах (если это возможно в вашей среде)
- Используйте безопасные протоколы
Wireshark - отличный инструмент для мониторинга сетевого трафика. И он будет искать имена в соответствии с IP-адресами, находить производителя по MAC-адресу и т. Д. Естественно, вы можете наблюдать, как он выполняет эти запросы, а затем вы знаете, что он работает.
Конечно, вы можете отключить эти вещи, а затем не будут обнаружены. И есть другие программы, разработанные, чтобы преднамеренно остаться незамеченными. Так что это просто что-то, чтобы рассмотреть, пытаясь ответить на этот вопрос.
Единственный верный способ сделать это - проверить каждое устройство в подсети.
Есть инструменты, например, nmap , но они не гарантированно работают, а пассивные касания не предадут их присутствия.
Вдобавок ко всему, я бы смотрел данные интерфейса SNMP коммутатора для интерфейсов, которые хост получает больше данных и / или отправляет меньше данных, чем в среднем. Посмотрите на что-либо кроме стандартного отклонения, и вы, вероятно, найдете людей, которые, скорее всего, будут делать то, что им не следует.
Хотя это могут быть не просто снифферы, они могут найти заядлых наблюдателей hulu / netflix.
Ваши коммутаторы / маршрутизаторы также могут иметь функции, позволяющие отслеживать и отлавливать людей, пытающихся отравить таблицы arp, что также будет довольно большим уловком.
Концентраторы (или действительно старые сетевые установки, такие как Thinnet / Thicknet) всегда передают все данные по сети. Любой подключенный будет видеть каждый пакет в своем локальном сегменте. Если вы установите свою сетевую карту в случайный режим (прочитайте все пакеты, а не только те, которые отправлены непосредственно вам) и запустите программу захвата пакетов, вы сможете увидеть все, что происходит, прослушивать пароли и т. Д.
Коммутаторы работают как сетевые мосты старой школы - они передают трафик через порт, если он либо: а) широковещательный, б) предназначен для этого устройства.
Коммутаторы поддерживают кэш, указывающий, какие MAC-адреса находятся на каком порту (иногда это может быть концентратор или коммутатор, подключенный к порту). Коммутаторы не реплицируют весь трафик на все порты.
Коммутаторы более высокого уровня (для бизнес-использования) могут иметь специальные порты (Span или Management), которые можно настроить для репликации всего трафика. ИТ-отделы используют эти порты для мониторинга трафика (законный анализ трафика). Обнаружение несанкционированного прослушивания должно быть простым - посмотрите на коммутатор и посмотрите, не подключено ли что-либо к этому порту.
Здорово, дружище! Соскучился? 🙂 В любом случае, я надеюсь, что ещё не успел промозолить тебе глаза :)) Сегодня я заведу разговор о методах обнаружения снифферов в локальных сетях.
Во многих уже существующих и вновь возводимых сетевых коммуникациях EtherNet Media Type, начальство принимает "законы", запрещающие использование снифферов. Это солидно обламывает кульхацкеров, любителей подглядывать
чужой траффик, да и вообще всякого, кому сниффер необходим для проведения более серьёзных мероприятий. С другой стороны, озадаченные начальством необходимостью отлавливать кульхацкеров-сниффофилов сисадмины напрягаются изысканиями средств обнаружения этих самых снифферов. Самые ленивые скачивают что-то вроде antisniff.c, запускают его на своих роутерах и отчитываются перед начальством, а всем остальным, уверен, тоже будет интересно читать эту статью.
Я постараюсь ответить на два основных вопроса, 1) как обнаружить работающий в сегменте сниффер, 2) как обеспечить невидимость работающего в сегменте сниффера. Я не буду нагружать текст дампами пакетов, потому что разговор пойдёт довольно простой и понятный.
Самый простой и очевидный трюк по отлову снифферов из сегмента основывается на детской наивности, с которой кул хацкеры запускают чужой софт. Такие кул хацкеры (которым, как правило, недосуг прочесть документацию к снифферу) являются самой лёгкой добычей для админов.
Вся муля в том, что многие снифферы (среди которых находится, кстати, популярный tcpdump) по умолчанию резольвят неизвестные локальному DNS-кэшу DNS-имена IP-адресов отлавливаемых кадров данных. Ведь, по логике создателей снифферов, программа не должна прятаться по умолчанию, а найденные DNS-имена нужны для того, чтобы придать больше смысла парсингу прослушиваемого траффика.
Если кул хацкер хочет обезопасить себя от обнаружения и позорного отключения от сети по статье "хакерство" (как в сети, где я работаю сейчас), то ему нужно просто-напросто отключать DNS-резольвинг. В tcpdump'e, например, это делается с помощью ключа '-n' 🙂
Эффективность следующего метода далеко не так однозначна, как предыдущего. То есть, нельзя утверждать, будто он будет работать со всеми системами, ядро которых обслуживает запущенный сниффер. Статистикой по этому методу я не обладаю, знаю лишь наверняка, что это работает на Windows 98 и со старыми ядрами Linux.
Source MAC Address сисадмина
Destination MAC Address выбирается отличным от MAC Address'a кул хацкера
Source IP Address сисадмина (или принимателя ответа, т.е. это может быть любой фэйковый адрес)
Destination IP Address кул хацкера
.
ICMP/ping
Ядро кул хацкера с интерфейсом, работающем в нормальном режиме, такой кадр данных попросту проигнорирует. Так вот, по идее, если интерфейс переведён в promiscious mode, он, как ни в чём не бывало, этот кадр данных пропустит и передаст ядро. А ядро, в свою очередь,
на полученный пинг должно ответить.
Эффективность самого кондового метода весьма умозрительна. У меня она проявилась лишь в стомегабайтной сети, при чуть ли не пиковой её нагрузке (10.000 кадров данных в секунду). Мой tcpdump недополучал больше половины сетевого траффика и машинка (p2-300/192RAM) изрядно при этом тормозила.
Итак, необходим провокационный траффик, такой, чтобы никто, кроме предполагаемого кул хацкерского сниффера, его не получал. Грубо говоря, совершенно любой мусор с Destination MAC Adddress'ами, отличными ото всех имеющихся в сети.
В таком случае, имеющиеся машинки будут этот траффик игнорировать и, например, отвечать на пинги очень быстро (миллисекунда или даже меньше), а кульхацкерский хост будет либо отвечать на пинги с солидной задержкой (как у меня, порядка двух-трёх сотен миллисекунд), либо даже и вовсе не отвечать на некоторые из них. Лучше всего отправлять мелкие пакеты провокационного траффика.
По совету одного злобного хакера (мнению которого я весьма доверяю), если ты не хочешь, чтобы кто-нибудь смог обнаружить твой сниффер в принципе, просто сними поддержку TCP/IP с интерфейса, на котором ты поднимаешь сниффер. Либо запрети любую реакцию ядра на входящий TCP/IP'шный траффик. Либо сочно настрой файерволл.
Существует ли програмное обеспечение, позволяющее обнаруживать сниферы в сети?
Чисто теоретически, сетевая карта в режиме снифинга переходит в доверенный режим, поидеи, должен быть какой-нибудь сканер, который постоянно опрашивает все сетевые хосты и смотрит, кто из них в доверенном режиме.
Какой софт реализует подобное обнаружение?
Хочешь быть мудрым? Не желай всего, что видишь; не верь всему, что слышишь; не говори всего, что знаешь; не делай всего, что умеешь, а только то, что полезно.Но могут быть нюансы: грамотно написанный сниффер может быть настроен так чтобы не принимать всё подряд, а только что-то конкретное - тогда вычислить будет сложнее
"Красота - как специи, которые хорошую еду делают ещё вкуснее, а без еды есть невозможно."В догонку к сказанному:
Если речь идёт об обнаружении PROMISC режима на сетевом интерфейсе
(в который его заводит снифер), то для этого можно использовать
ещё один способ. Не знаю, есть ли софт для этого, но технология такая:
С проверяющей машины отсылается ARP ответ на неbroadcast адрес.
причём ответ содержит правильную информацию (о том что к IP адресу нашей проверяющей
машины привязан такой-то MAC). После этого шлём ping пакет (echo request), на броадкаст адрес сети, но при этом - с левого MAC'а. Echo reply мы теоретически получим только от интерфейса, который в PROMISC режиме.
Есть ещё технология, которая определяет сниффер по изменениям в характеристиках доступности
хостов (по-моему это делает AntiSniff от l0pht). Суть техники в том, что сниффер
вынужден хотябы частично парсить проходящий трафик. И теоретически - чем больше объём прокачиваемой по сети информации - тем больше ресурсов он кушает и тем более 'медленным' становится хост, на котором он работает. Это проявляется например в увеличении задержек при ответах на пинги. Т.е. замеряются текущие задержки, затем искусственно генерируется большой объём трафика и при этом всё замеряется снова. В этом случае, хост на котором работает снифер, теоретически должен себя выдать (через разницу в задержках до и во время сетевой нагрузки).
Этот метод хорош тем, что он работоспособен и в ситуациях, когда в сети есть сниффер НЕ ВКЛЮЧАЮЩИЙ promisc режим (например, если используется ARP poisoning, при котором promisc вовсе необязателен).
Исследователи портала Bleeping Computer обнаружили, что компания Microsoft в составе обновления Windows 10 October 2018 Update без информирования пользователей добавила в ОС незаметную программу для диагностики сети и мониторинга пакетов под названием pktmon (Packet Monitor). Ее можно найти по этому пути: C:\Windows\system32\pktmon.exe.
Причем, информации об этой программе на сайте Microsoft нигде нет. Есть только описание в самой программе, там написано, что это «Monitor internal packet propagation and packet drop reports». Специалисты Bleeping Computer смогли научиться использовать pktmon, тем более у программы есть встроенный справочник. Также они опубликовали в своем исследовании несколько примеров активации разных возможностей pktmon для системных администраторов. Пользователи без административных прав не могут запускать эту программу.
Фактически, в Windows 10 появился встроенный аналог tcpdump, мощного и популярного инструмента для перехвата и анализа сетевых пакетов. Правда pktmon в настоящее время имеет ограниченный производителем функционал, который еще дорабатывается специалистами Microsoft. Причем полученные и сохраненные данные из pktmon уже сейчас можно использовать и в более функциональных приложениях, например, Microsoft Network Monitor или Wireshark. Вдобавок встроенная справочная документация приложения pktmon достаточно подробная, и лучше с ней ознакомиться, перед тем как начать экспериментировать с возможностями этой программы.
При использовании pktmon для мониторинга сетевого трафика необходимо настроить в программе фильтры пакетов на нужных портах, например, использовать команду «pktmon filter add -p 20». Для просмотра фильтров пакетов нужно использовать команду «pktmon filter list». Для удаления фильтров есть команда «pktmon filter remove».
Чтобы отслеживать пакеты на конкретных устройствах необходимо определить ID сетевого адаптера с помощью команды «pktmon comp list». Далее можно начинать перехватывать нужные пакеты: pktmon start --etw -p 0 -c 13, где "-p 0" — аргумент для захвата всего пакета, а "-c 13" — захват только с адаптера с ID 13. Данные будут записываться в файл pktMon.etl:
Для остановки работы процедуры захвата нужно ввести команду «pktmon stop». Далее можно преобразовать полученный файл в текстовый формат: pktmon PktMon.etl -o ftp.txt. Там будет записана в краткой форме информация о сетевом трафике:
Полностью файл pktMon.etl можно открыть и анализировать, например, с помощью Microsoft Network Monitor.
Оказывается, что в новом обновлении Windows 10 May 2020 Update (Windows 10 версии 2004) Microsoft также обновила инструмент pktmon. Теперь с его помощью можно будет перехватывать пакеты в режиме реального времени и даже конвертировать файлы с расширением ETL в формат PCAPNG, которые можно исследовать в программе для захвата и анализа сетевого трафика Wireshark.
Исследователи портала Bleeping Computer обнаружили, что компания Microsoft в составе обновления Windows 10 October 2018 Update без информирования пользователей добавила в ОС незаметную программу для диагностики сети и мониторинга пакетов под названием pktmon (Packet Monitor). Ее можно найти по этому пути: C:\Windows\system32\pktmon.exe.
Причем, информации об этой программе на сайте Microsoft нигде нет. Есть только описание в самой программе, там написано, что это «Monitor internal packet propagation and packet drop reports». Специалисты Bleeping Computer смогли научиться использовать pktmon, тем более у программы есть встроенный справочник. Также они опубликовали в своем исследовании несколько примеров активации разных возможностей pktmon для системных администраторов. Пользователи без административных прав не могут запускать эту программу.
Фактически, в Windows 10 появился встроенный аналог tcpdump, мощного и популярного инструмента для перехвата и анализа сетевых пакетов. Правда pktmon в настоящее время имеет ограниченный производителем функционал, который еще дорабатывается специалистами Microsoft. Причем полученные и сохраненные данные из pktmon уже сейчас можно использовать и в более функциональных приложениях, например, Microsoft Network Monitor или Wireshark. Вдобавок встроенная справочная документация приложения pktmon достаточно подробная, и лучше с ней ознакомиться, перед тем как начать экспериментировать с возможностями этой программы.
При использовании pktmon для мониторинга сетевого трафика необходимо настроить в программе фильтры пакетов на нужных портах, например, использовать команду «pktmon filter add -p 20». Для просмотра фильтров пакетов нужно использовать команду «pktmon filter list». Для удаления фильтров есть команда «pktmon filter remove».
Чтобы отслеживать пакеты на конкретных устройствах необходимо определить ID сетевого адаптера с помощью команды «pktmon comp list». Далее можно начинать перехватывать нужные пакеты: pktmon start --etw -p 0 -c 13, где "-p 0" — аргумент для захвата всего пакета, а "-c 13" — захват только с адаптера с ID 13. Данные будут записываться в файл pktMon.etl:
Для остановки работы процедуры захвата нужно ввести команду «pktmon stop». Далее можно преобразовать полученный файл в текстовый формат: pktmon PktMon.etl -o ftp.txt. Там будет записана в краткой форме информация о сетевом трафике:
Полностью файл pktMon.etl можно открыть и анализировать, например, с помощью Microsoft Network Monitor.
Оказывается, что в новом обновлении Windows 10 May 2020 Update (Windows 10 версии 2004) Microsoft также обновила инструмент pktmon. Теперь с его помощью можно будет перехватывать пакеты в режиме реального времени и даже конвертировать файлы с расширением ETL в формат PCAPNG, которые можно исследовать в программе для захвата и анализа сетевого трафика Wireshark.
Читайте также: