Практические примеры использования tcpdump

Thank you for reading this post, don't forget to subscribe!

Tcpdump - пакет­ный сниф­фер и глав­ный инстру­мент сете­во­го ана­ли­за для спе­ци­а­ли­стов по инфор­ма­ци­он­ной без­опас­но­сти. Рас­смот­рим несколь­ко прак­ти­че­ских при­ме­ров “под­слу­ши­ва­ния” сете­во­го траффика.

Рабо­та­ет tcpdump при помо­щи интер­фей­са bpf (Berkeley Packet Filter). Если под­держ­ку это­го устрой­ства отклю­чить, то сниф­финг в UNIXBSD) ока­жет­ся невоз­мо­жен. Уста­нов­ка ути­ли­ты не долж­на вызы­вать слож­но­стей, в Debian/Ubuntu это мож­но сде­лать сле­ду­ю­щим образом:

в RedHat/Centos:

Если запу­стить ути­ли­ту tcpdump без допол­ни­тель­ных опций, то она нач­нет ана­ли­зи­ро­вать траф­фик на всех доступ­ных сете­вых интер­фей­сах в системе:

Несколь­ко наи­бо­лее часто исполь­зу­е­мых опций для ути­ли­ты tcpdump:

  • -i interface - какой сете­вой интер­фейс будет исполь­зо­вать­ся для захва­та пакетов;
  • -n - вывод IP-адре­са вме­сто име­ни хоста;
  • -t - не выво­дить мет­ку вре­ме­ни (timestamp) в каж­дой строке;
  • -X - вывод содер­жи­мо­го паке­та в ASCII- и hex-формате;
  • -v, -vv, -vvv - уве­ли­че­ние кол-ва подроб­ной информации;
  • -c N - завер­ше­ние рабо­ты после полу­че­ния N пакетов;
  • -s N - кол-во бай­тов паке­та, кото­рые будет обра­ба­ты­вать tcpdump;
  • -S - выво­дить абсо­лют­ные поряд­ко­вые номера;
  • -q - вывод мини­му­ма инфор­ма­ции (имя про­то­ко­ла, отку­да и куда шел пакет, пор­ты и коли­че­ство пере­дан­ных данных);
  • -w file - запись дан­ных tcpdump в дво­ич­ном фор­ма­те в файл.

Пере­хо­дим к примерам.

  1. Вывод спис­ка доступ­ных сете­вых интерфейсов:

Резуль­тат выпол­не­ния команды:

  1. Захват 5 паке­тов на сете­вом интер­фей­се en0:

Резуль­тат:

  1. Выво­дить номер пор­та вме­сто исполь­зу­е­мо­го им про­то­ко­ла (для той же самой команды):

Резуль­тат:

  1. Инфор­ма­ция о вхо­дя­щих паке­тах на всех интер­фей­сах на пор­ту 53:

Резуль­тат выполнения:

  1. Инфор­ма­ция о паке­тах на всех интер­фей­сах и всех пор­тах, кро­ме 53:

Резуль­тат:

  1. Инфор­ма­ция о паке­тах, пере­дан­ных по про­то­ко­лу icmp (в сосед­ней кон­со­ли запус­ка­ем ping 8.8.8.8):

Резуль­тат:

  1. Запи­сы­ва­ем пере­хва­чен­ные паке­ты в файл для даль­ней­ше­го анализа:

Сами паке­ты будут запи­са­ны в файл, в кон­со­ли увидим:

  1. Чита­ем инфор­ма­цию из файла:

Резуль­тат:

  1. Более подроб­ная инфор­ма­ция о пакетах:

Резуль­тат:

  1. Паке­ты, полу­чен­ные с опре­де­лен­но­го ip-адреса:

Резуль­тат:

  1. Паке­ты, отправ­лен­ные на опре­де­лен­ный ip-адрес:

Резуль­тат:

  1. Паке­ты (вхо­дя­щие и исхо­дя­щие) от опре­де­лен­но­го хоста:

Резуль­тат:

  1. Паке­ты на опре­де­лен­ном диа­па­зоне портов:

Резуль­тат:

Боль­ше инфор­ма­ции об исполь­зо­ва­нии дан­ной ути­ли­ты мож­но най­ти здесь и здесь.