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

Возникла тут задачка - расшифровать трафик, который лезет у нас через шифрованый канал. ОС - 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