Title: Расшифровка трафика ipsec
Author: Viva Calman
Date: 2014-11-21 12:52:33
Correction code: 16520932247329

Возникла тут задачка — расшифровать трафик, который лезет у нас через шифрованый канал. ОС — FreeBSD, софт — ipsec+racoon.

Оказалось, это не так уж и трудно. На хабре, который изредка все же бывает полезным, была найдена статья, которая поясняла, как это все сделать.

Для автоматизации был создан простенький скриптик такого вида:

#!/bin/sh
DATE=`date +%F-%H`
DUMPF=/var/log/ipsec$DATE.pcap
KEYF=/var/log/ipsec$DATE.key
/usr/local/etc/rc.d/racoon stop
tcpdump -i em0 -w $DUMPF esp &
/usr/local/etc/rc.d/racoon start
sleep 20
setkey -D >> $KEYF

Sleep в 20 секунд нужен, чтобы ключи успели установиться. Возможно, в некоторых случаях нужно ждать подольше, но осооб вреда нет — ключи изменятся по таймауту, установленному в конфиге и он обычно около часа.

Но следует понимать, что из этого вытекает проблема, что после смены ключей трафик уже будет не расшифровать, придется повторять операцию.

От себя еще замечу следующее — во-первых, SPI надо брать именно в HEX-значении. я долго возился, пока до меня это не дошло.

Во-вторых — копируя вывод setkey -D, и вставляя ключи шифрования в Wireshark, нужно добавить 0x в начале и убрать все пробелы — тоже может оказаться неочевидно. ну а после все идет как по маслу, показывая содержимое шифрованных пакетов

^HOME