Как отфильтровать содержимое пакета в Wireshark?

8

У меня есть приложение, которое взаимодействует с базой данных Oracle, его журналирование довольно дурацкое, поэтому единственный способ узнать, какой SQL он отправляет в нашу базу данных, - это перехватить пакет для TNS.requests; Я хочу отфильтровать эти пакеты по тем, которые содержат имя конкретного, то есть по наличию конкретной строки в пакете. Как я могу это сделать?

Спасибо.


источник

Ответы:

13

Вы пробовали операторы «содержит» или «соответствует»? Например,

tns.request and tns contains "Marshmallows"

или просто

frame matches "(?i)marshmallows"

Первый пример ищет запросы TNS, которые содержат чувствительную к регистру строку «Зефир». Второй пример ищет «зефир» где угодно в любом кадре, игнорируя регистр. («содержит» выполняет простое сопоставление строк; «соответствует» позволяет использовать модификаторы PCRE).


Обновление: в Wireshark 2.6 и более поздних версиях «совпадения» по умолчанию не чувствительны к регистру. Вы можете использовать модификатор PCRE "(? -I)" для усиления чувствительности к регистру.

Джеральд Комбс
источник
Спасибо, я думал, что это будет что-то простое, ура, это именно то, что я хотел знать.
0

Есть несколько интерпретаций вашего вопроса:

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

  2. Вы хотите отфильтровать эти пакеты; т.е. брандмауэр уровня приложений или NIDS . Проверьте L7-фильтр для брандмауэра / шейпинга или Snort для NIDS (последний также может использовать некоторые скрипты Lua, я думаю)

  3. Вы хотите собирать пакеты для регистрации, создавать статистику или любые другие автоматизированные задачи. проверьте tcpdump / libpcap и / или мою собственную привязку libpcap для Lua .

Хавьер
источник
Да, я прочитал документы, но не смог найти то, что искал. Все, что я хочу сделать, это добавить фильтр, чтобы найти строку в необработанных данных пакета. Я выполняю поиск по отфильтрованным данным TNS.request, но он просто перебирает каждый пакет, где появляется строка. Извините, я думал, что это будет действительно немного синтаксиса.