Есть ли способ определить весь трафик в кодировке base64 для захвата большого пакета? - PullRequest
1 голос
/ 12 апреля 2019

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 16 апреля 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

0 голосов
/ 12 апреля 2019

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

echo "base64 encoded payload" | base64
YmFzZTY0IGVuY29kZWQgcGF5bG9hZAo=

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

netcat -l -p 8090

POST к нему

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=
...