Когда дело доходит до сниффинга трафика с помощью инструмента командной строки, tcp dump - это инструмент
выбора как из- за его мощности, так и простоты, он совместим с wirehark, а это означает, что
вы можете сохранить захваченный пакет в файл, а затем открыть этот файл в wirehark на та же или
другая машина для визуального осмотра, давайте посмотрим, как она работает. tcp dump установлен по умолчанию в
любом дистрибутиве Linux, следующие комментарии будут выполняться от имени пользователя root, если вы хотите увидеть, что
поражает ваш интерфейс, вы выполняете tcp dump минус i и имя интерфейс в этом случае eth0
давайте сгенерируем некоторый трафик,
это захваченные пакеты,
я останавливаю захват, нажимая на control плюс c, если вы хотите видеть только пакет
с IP-адресом или с него, вы добавляете опцию хоста tcp dump минус i и хост интерфейса
и IP-адрес, скажем 8.8.8.8, и в другом терминале я собираюсь пинговать типичный адрес
, который захватывает только пакет с типовым адресом или с него,
и если вы хотите видеть только трафик в в одном или другом направлении вы можете использовать src или dst,
например, этот параметр
dst medium.com минус n используется не для преобразования адресов в имена, вы можете использовать
IP-адрес или доменное имя, которое будет преобразовано в IP-адрес вашим DNS-сервером
и это пакеты для medium.com
для захвата пакетов, идущих в или из определенной сети или подсети, используйте параметр
net net и адрес подсети,
и если вы хотите увидеть пакеты определенного приложения,
используйте параметр порта, например, я хочу см. только
порт пакета https 443 минус double v и минус n для получения более подробного вывода
и печати дополнительных полей, которые я использовал минус double v, это https-трафик,
если вы хотите видеть трафик, идущий или исходящий из определенного порта, используйте src port или dst
параметры порта , например, я буду обнюхивать только DNS-запросы, и это означает, что пакет udp переходит на порт 53.
dst-порт 53 минус vv минус n,
вы видите, что это запросы DNS,
добавление минус опция будет иметь вывод, включающий строки ascii из захвата,
это позволяет легко r eading и возможность анализировать вывод с помощью grep или других команд,
давайте попробуем этот фильтр dst-порт 80 минус a и минус n минус 10 является необязательным,
и я посещу http-сайт, например info dot cern dot siege
, кстати, это главная страница первого веб-сайта
видит захват, если вы используете минус x вместо минус a, вы увидите как данные в формате ascii, так и шестнадцатеричные данные,
я перезагружаю страницу, это захваченный пакет,
его содержимое в виде строки, а здесь с левой стороны - шестнадцатеричные данные
Давайте продолжим и посмотрим, как сохранить захваченные данные в файл. Часто бывает полезно сохранять захваченные пакеты
в файл для анализа в будущем. Эти файлы известны как файлы pcapp
и могут быть открыты в wirehark или других инструментах анализа пакетов, включая tcp dump. сам
для записи в файл используйте параметр минус w, как в следующем примере, я хочу сохранить
все пакеты http в файл, чтобы дамп tcp минус i имя интерфейса eth0 порт 80 cern точка ch
минус w и имя файла cern dot ch dot picap
это спасет p ackage в этот файл,
и я генерирую некоторый трафик, некоторый трафик http,
когда вы хотите остановить захват, вы просто нажимаете на control, плюс c 27 пакетов
были захвачены и сохранены в этот файл,
чтобы прочитать файл позже с использованием дампа tcp минус r, как это, я прочитал примечание к файлу,
что при чтении файла все параметры, которые мы видели
, все еще доступны, например, минус n минус двойной v и минус x и прописные буквы x
в конце этой лекции, я хочу показать вам еще расширенные функции
tcp dump, которые являются логическими операторами and and or
, предположим, что вы хотите захватывать только пакеты icmp,
идущие на определенный IP-адрес, например, tcp dump минус i с 0 icmp, протокол и хост
и IP-адрес, который он будет захватывать только пакет icmp для или с этого IP-адреса
нормально, в фоновом режиме работал пинг
, это пакеты, но если я пингую другой IP-адрес, скажем, stackoverflow.com,
вы заметите, что пакеты не захватываются в последнем примере, я захватываю трафик http
или https для который Мне нужно использовать логический оператор или, например,
порт 80 или порт 443