Программно-аппаратные средства обеспечения информационной безопасности Утилита tcpdump

advertisement
К.В. Звонарев
Программно-аппаратные
средства обеспечения
информационной безопасности
ТЕМА ЛЕКЦИИ
Утилита tcpdump.
Утилита tcpdump.
Утилита tcpdump относится к числу так называемых
«снифферов» − программ предназначенных для
перехвата сетевого трафика.
Она переводит сетевую плату в режим
прослушивания (или неразборчивый режим −
promiscuous mode).
Это означает, что сетевая плата будет
перехватывать весь трафик Ethernet, а не только
тот, что адресован ей.
Утилита tcpdump.
Опции
Описание
-i interface
Какой интерфейс должен прослушиваться программой.
-w file
По умолчанию отчёт программы tcpdump выводится на
терминал в режиме реального времени, однако можно
попросить при помощи опции -w записывать всю информацию
в файл в бинарном виде, т.е. сделать dump того, что
происходит на сетевом интерфейсе. В последствии эту
информацию можно заново проанализировать при помощи
опции -r.
-r file
Эта опция применяется вместо -i и служит для того, чтобы
прочитать данные из файла. Файл в бинарном формате можно
создать заранее при помощи опции -w. Кроме того, есть и
другие программы, которые создают файлы в формате
бинарного файла tcpdump.
-A
-D
-x
-xx
-X
-XX
Перечислить
доступные
интерфейсы
прослушивать при помощи опции -i).
(которые
можно
Эти опции включают вывод содержимого пакета. Опция -A — в
формате ASCII, -x — в шестнадцатеричном виде и -X
одновременно и в ASCII и в шестнадцатеричном виде.
Двухбуквенные опции делают то же, что и их однобуквенные
аналоги, но не отбрасывают заголовки канального уровня. Для
просмотра содержимого пакетов может быть так же полезна
опция -s (см. далее).
Утилита tcpdump.
-v
-vv
Verbose — подробный вывод информации о заголовке пакета. Чем
больше букв v тем подробнее вывод.
-vvv
-t
-tt
-ttt
-tttt
-f
-n
-N
Разный формат вывода даты: 1) не выводит информации о времени,
2) Печатает неформатированную метку времени в каждой строке,
3) Печатает интервал времени между пакетами, 4) обычный формат
(час:мин:сек.микросек), но спереди добавлена текущая дата (годмесяц-число).
-f не преобразует IP адреса в имена. -n ещё строже: не только адреса,
но и номера протоколов выводятся в числовом виде. Опция -N
заставляет вместо полного доменного имени писать только имя хоста.
Утилита tcpdump.
-e
Выводится информация о заголовках канального уровня (MACадреса).
-c count
Выйти из программы после получения count пакетов.
-s size
Захватывать size байт от каждого пакета. По умолчанию
перехватываются только первые 96 байт. В большинстве
случаев этого достаточно для прояснения ситуации, однако,
если необходимо перехватывать все содержимое пакетов,
стоит выставить size равным MTU.
-E
алгоритм:секр
ет
Использует встроенную в Tcpdump возможность расшифровывать
на лету пакеты, зашифрованные по протоколу IPSec ESP.
Разумеется, чтобы использовать эту опцию, вы должны
располагать разделяемым секретным ключом. В число
возможных значений параметра "алгоритм" входят des-cbc,
3des-cdc, blowfish-cbc, r3c-cbc. Кроме того, оно может быть
пустым. По умолчанию используется des-cbc. Значением
параметра "секрет" должен служить секретный ключ ESP в
текстовом виде.
Утилита tcpdump.
Условия определяют то, какие пакеты будут
перехвачены.
Если не указано никаких условий, будут перехвачены
все пакеты, если условия указаны, то только те
пакеты, для которых это условие истинно.
Условие состоит из некоторого количества
примитивов.
Примитив состоит из идентификатора (числа или
имени) перед которым идёт оператор одного из трёх
видов:
Утилита tcpdump.
•Тип. Чем является идентификатор? Допустимые значения:
host, net, port, portrange.
Например, возможны следующие примитивы: host somehost,
net 128.3, port 20, portrange 6000-6008
•Направление. Куда относительно идентификатора направлен
пакет? Возможные направления: src, dst, src or dst, src
and dst.
Например: src somehost, dst net 128.3, src or dst
port ssh.
•Протокол. Ограничивает пакеты некоторым протоколом.
Возможные протоколы: ether, fddi, tr, ip, arp, rarp,
decnet, icmp, tcp и udp.
Например: ether src somehost, arp net 128.3, tcp port
21, udp portrange 7000-7009. Если протокол не указан,
подразумеваются все пригодные протоколы.
Утилита tcpdump.
Кроме того, есть примитивы, за которыми не следует
шаблона: gateway, broadcast, less, greater.
Можно строить сложные условия объединяя примитивы
при помощи следующих операторов: and, or, not.
Рассмотрим некоторые примитивы.
dst host xxx − истина, если пакет направлен хосту
xxx.
src host xxx − истина, если пакет отправлен хостом
xxx.
host xxx − истина, если пакет отправлен хостом xxx
или предназначен хосту xxx.
Утилита tcpdump.
Перед перечисленными примитивами могут быть
упомянуты протоколы ip, ip6, arp, rarp.
Например, ip host xxx.
ether dst host xxx − истина, если пакет
предназначен хосту с канальным адресом xxx (т.е.
MAC адрес xxx).
ether src host xxx − аналогично, но в обратную
сторону.
ether host xxx − истина, если MAC адрес
назначения или MAC адрес источника xxx.
Утилита tcpdump.
gateway xxx − истина, если пакет использует xxx в
качестве шлюза. Т.е. когда IP-адрес отправителя или
получателя не соответствует Ethernet-адресу хоста.
Данную возможность целесообразно использовать,
когда необходимо отследить весь трафик, проходящий
через Интернет-шлюз.
dst net xxx − истина, если IP адрес назначения
принадлежит сети xxx.
src net xxx − истина, если IP адрес источника
принадлежит сети xxx.
net xxx − истина если один из адресов (источника или
назначения) принадлежит сети xxx.
net xxx mask yyy − то же, но позволяет задавать
сеть через маску подсети.
net xxx/len − то же.
Утилита tcpdump.
dst port xxx − порт назначения xxx.
src port xxx − порт источника xxx.
port xxx − один из портов (назначения или источника)
xxx.
dst portrange xxx-yyy − истина, если порт
назначения лежит в диапазоне между xxx и yyy.
src portrange xxx-yyy − аналогично.
portrange xxx-yyy − аналогично
less xxx − истина, если размер пакета меньше xxx.
greater xxx − истина, если размер пакета больше
xxx.
Утилита tcpdump.
tcpdump host 192.168.1.1 − записывает весь трафик хоста
192.168.1.1.
tcpdump –i lnc0 “host 192.168.1.1 and host 192.168.1.2”
− записывает весь трафик между хостами 192.168.1.1 и 192.168.1.2.
Если выполняется ping хоста 192.168.1.2 хостом 192.168.1.1, то
будет отображаться следующее:
Утилита tcpdump.
Чтобы просматривать трафик только в одном направлении, можно
дать следующую команду:
tcpdump –i lnc0 “src host 192.168.1.1 and dst host 192.168.1.1”
Следующая команда позволяет просматривать все пакеты,
предаваемые по протоколу ftp с хоста 192.168.1.1 на хост
192.168.1.2, при этом отображается содержимое пакетов в
шестадцатиричном и текстовом виде:
tcpdump –X src host 192.168.1.1 and \
“(dst host 192.168.1.2 and port 21)”
Утилита tcpdump.
Download