Практика
Всем администраторам Unix систем, будь то Linux или BSD, известна такая полезная утилита, как TCPDUMP. Эта утилита позволяет производить слежение (мониторинг) сетевого трафика на компьютере, на котором она запущена, причем если компьютер является роутером - то прекрасно видно - кто по каким портам куда ломится через этот роутер.
Через нее можно задавать правила - что отлавливать - с каких IP с каких портов - на какие IP какие порты. Через нее можно и записывать отловленные пакеты - например, для их последующего анализа. Можно "ловить" только через определенные интерфейсы и т.д.
Но что делать, если Вам приходится администрировать Windows и возникает такая-же задача? В Unix-то tcpdump доступна из коробки, а Windows не предоставляет никаких средств подобного уровня.
Встрачайте: Windump. Это не реклама, это на самом деле полезная утилита и с виду полная замена TCPDUMP, только для Windows!
Итак, что же нам нужно сделать:
1) Скачиваем драйвер WinPCAP (тоже знакомо по Unix?). Несмотря на предупреждение разработчика о том, что драйвер не протестирован "на полную" под Vista (и, соответственно, Windows 7) - удовольствие это работает, что очень радует!
Сайт разработчика со страницей закачки: https://www.winpcap.org/install/default.htm
2) Устанавливаем WinPcap, для этого даже перезагружаться не придется.
3) Скачиваем WinDump. Сайт разработчика со страницей закачки: http://www.winpcap.org/windump/install/default.htm
4) Ложим WinDump.exe в удобное место, куда можно легко добраться через консоль Windows. Это не инсталятор - это уже готовая к использованию утилита.
5) Открываем CMD (Пуск -> Выполнить -> "cmd" -> Enter). Переходим в каталог, куда Вы положили WinDump.exe и запускаем ее:
Перед Вами побегут строчки перехватываемых пакетов, среди которых можно видеть - какой пакет откуда идет и куда, с какого порта и на какой, какая у него длинна и какие флаги TCP установлены.
Жмем Ctrl+C для остановки.
Но тупо глядеть все пакеты нам может быть не интересно. Тогда придется воспользоваться ключами и "выражениями".
Как смотреть определенный трафик
Если набрать
То появится маленький набор подсказок - исключительно чтобы Вы не забыли сами опции. Но никакой подробной информации, к сожалению, здесь нет.
Максимум информации (на английском языке) можно найти по адресу https://www.winpcap.org/windump/docs/manual.htm , т.е. со страницы документации WinDump разработчика. Для Unix-оводов я могу сказать радостную новость - опции оставлены такими же, как в оригинальной TCPDUMP под Linux/BSD.
tcpdump - dump traffic on a network
tcpdump [ -AdDeflLnNOpqRStuUvxX ] [ -c count ]
[ -C file_size ] [ -F file ]
[ -i interface ] [ -m module ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ]
[ -E spi@ipaddr algo:secret,... ]
[ -y datalinktype ] [ -Z user ]
[ expression ]
Ну и на русском я поясню самые основы (минимум) - чтобы Вы сразу могли приступить к слежению за трафиком.
Итак, если запустить WinDump без параметров - он будет показывать все проходящие пакеты, независимо - откуда и куда пакеты шли, на интерфейсе по-умолчанию. При этом для всех IP адресов отправителя и получателя будет производится попытка отрезолвить DNS-имя через PTR записи, а для портов - попытка показать не номер порта, а имя службы.
Отлов без резолва
Чтобы запретить сканеру резолвить DNS имена и номера портов - следует запускать с ключем "-n":
Это полезно чаще всего, т.к. трудно (особенно на глаз) определить по DNS-имени - что за компьютер, куда ломится, по каким портам (имена служб вместо номеров портов играют действительно злую шутку); ну и это нормально так экономит сетевой трафик на тему резолва IP адресов.
Смотрим внутренности пакетов
Ключ "A" позволяет нам помимо вывода "откуда - куда" печатать и сам контент пакетов (т.е. их внутренности в ASCII):
Остальные ключи
Все ключи (их множество) Вы можете посмотреть в предлагаемом мануале.
Правила просмотра
Чаще всего нужно не просто смотреть все, что идет откуда угодно куда угодно. Например, нам может понадобиться глядеть только трафик, который касается компьютера с IP 192.168.0.70, например, глядеть - на какие IP ломится бухгалтер или охранник; или на какой порт ломится какая-то программа. Для этого используются выражения.
Выражения пишутся после всех параметров в виде суммирующих записей AND или OR.
HOST
Для просмотра трафика, касающегося определенного компьютера, используется слово "host":
Если вариации "dst host" и "src host" позволяет, соответственно, ловить трафик, который был отправлен с адреса (src host) или направляется к адресу (dst host).
PORT
Для отслеживания трафика, касающегося определенного порта - слово "port":
По аналогии с HOST: существуют "src port" и "dst port" - соответственно, порт, с которого идет пакет и порт, на который идет пакет.
PORTRANGE
То же, что и "port", но позволяет задать диапазон портов (так же есть и "src portrange" и "dst portrange"), диапазон задается через тире:
GATEWAY
Условие "gateway" позволяет смотреть пакеты, проходящие через указанный шлюз (маршрут):
NET
Условие "net" позволяет ловить только те пакеты, которые принадлежать указанной подсети:
Соответственно, слова "net src" и "net dst" ловят пакеты, которые пришли с или идут в указанную сеть.
LESS и GREATER
Эти условия позволяет ловить пакеты, которые только меньше (LESS) или больше (GREATER) заданного размера в байтах:
IP PROTO
Позволяет ловить пакеты только определенного протокола: icmp, icmp6, igmp, igrp, pim, ah, esp, vrrp, udp, или tcp.
VLAN
Условие позволяет ловить только пакеты, принадлежащие определенному VLAN (соответственно, таггированые):
AND или OR
Правила, как я уже говорил, можно склеивать несколько в одно через AND или OR. Например, если нам нужно смотреть трафик, входящий или исходящий на компьютер 192.168.0.70 по удаленному или локальному порту 80 - выражение будет выглядеть вот так:
Тем, кто уже пользовался TCPDUMP под *nix - затруднений это не должно вызвать.
Много больше Вы можете узнать из прилагаемой (выше по заметке) инструкции, правда, на английском языке.
Комментарии
Оставить комментарий
Компьютерные сети
Термины: Компьютерные сети