Есть ли способ определить весь закодированный в base64 трафик в/из захвата большого пакета?

У меня есть большой (8 ГБ) захват пакета (.pcap), который сгенерировал несколько предупреждений Snort.

Я подозреваю, что некоторые данные могли быть украдены во время кодирования. Есть ли простой способ определить, вышло ли что-то из закодированного в Base64, без необходимости просеивать Wireshark, чтобы найти проблему, возможно, с помощью терминала?

Я беспокоюсь о том, что актор может перемещаться внутри системы и извлекать файлы в стороннюю систему, которые не будут распознаны предупреждениями Snort.

Я попытался разобрать большой .pcap на файлы размером 200 МБ, чтобы можно было более внимательно изучить (моя виртуальная машина имеет ограничения по памяти).


person user3440278    schedule 12.04.2019    source источник


Ответы (2)


Непростая задача, но вы можете попробовать использовать tsharkв командной строке.
Сгенерированная полезная нагрузка base64:

echo "base64 encoded payload" | base64
YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=

Настройте прослушивающий сокет:

netcat -l -p 8090

ОТПРАВИТЬ на него

curl -X POST -d 'YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=' http://localhost:8090                                                                                                                                 
^C

Разбор в командной строке после захвата с помощью wireshark:

tshark -r ~/tmp/base64.pcapng -T fields -e http.file_data | grep -E '^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$'

Результат (плюс пустые строки для несовпадений, не показаны для простоты):

YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=
person LMC    schedule 12.04.2019

Это вдохновило меня на написание pdml2flow-base64strings плагина для pdml2flow. Используя возможности pdml2flow, плагин ищет во всех полях, известных wireshark/tshark, действительные данные в кодировке base64. Если он находит строки base64, он затем декодирует и печатает необработанные данные для вас. Вы можете использовать переключатель --minlength, если хотите ограничить поиск только данными определенного размера. Это также позволяет сузить область поиска только до символов ascii (--ascii) или utf-8 (--utf8).

Например, если вы хотите извлечь все строки utf-8, закодированные в любом поле, известном wireshark/tshark, вы можете использовать pdml2flow с плагином:

tshark -r dump.cap -Tpdml | pdml2flow +base64strings --utf8

или если вы не хотите использовать агрегацию потоков, используйте pdml2frame

tshark -r dump.cap -Tpdml | pdml2frame +base64strings --utf8

Надеюсь, это поможет. Любой вклад приветствуется, спасибо.

Раскрытие информации: я являюсь автором pdml2flow и pdml2flow-base64strings

person Ente    schedule 16.04.2019