При анализе приложений я систематически сталкиваюсь со странными протоколами. С Wireshark’ом можно заглянуть внутрь их, а инет подскажет общие факты. Но иногда хочется их и потыкать: переслать еще разок, изменить что-нибудь и опять послать, сравнить ответы. Причем, поскольку время ограниченно, хочется все делать оперативно.
Я думаю, многие из нас приходили к мысли, что было бы хорошо, если бы в Wireshark’е был редактор пакетов: клик-клик, поменял и отправил. Но пока этого не случилось, мы вынуждены искать иные пути. Фактически задачку
приходится свести к тому, что мы снифаем трафик в Wireshark’е, находим необходимые пакеты и сохраняем только их в pcap-файл. А далее каким-то «редактором» их меняем на свой вкус и отправляем в канал. Задачка приводится к выбору этого редактора.
Как ни странно, одним из главных решений стал scapy (хотя кто бы сомневался, но о нем чуть позднее). Меня же заинтересовал относительно молодой и вроде бы активный проект Ostinato.
Это GUI-шный мультиплатформенный (на Python’е) открытый генератор пакетов, а заодно и снифер. Можно либо взять и собрать пакет с нуля, а можно импортировать из Wireshark’а (формат pcap, pcap-ng — не понимает). Далее через GUI можно поменять любой из слоев TCP/IP-стека, что-то убрать, что-то добавить или изменить. Также можно посылать последовательности пакетов. По сути, все базовые потребности покрываются. Тем, кто не знаком близко со стеком TCP/IP, я бы очень посоветовал с ней поиграться.
В ней «слоеность пирога» очень четко просматривается. В качестве маленького совета — глянь мини-видео, ведь без него «методом клика» с тулзой не разберешься, несмотря на всю ее простоту.
Теперь о scapy. Это мощнейший инструмент для генерации/обработки сетевых пакетов.
Функционала очень много, из коробки поддерживается большое разнообразие протоколов. Можно воссоздать практически все сетевые атаки или эмулировать протоколы. Если не знаком с ним, то The very unofficial dummies guide to scapy поможет тебе в первом приближении понять, что там и как.
Ну а теперь о решении. Все, что требуется, — это проделать следующее в scapy:
1. Открыть pcap-файл и сохранить пакеты в массив:
wspkt=rdpcap("path_to_pcap_file")
2. Можно посмотреть список полученных пакетов в массиве wspkt:
wspkt.summary()
3. Полностью посмотреть конкретный пакет:
wspkt0 (.show()
4. Не забываем, что нужно что-то еще и отредактировать. Можно обратиться к определенным полям (из пункта выше). Например, поменяем MAC:
wspkt[0][Ether].dst="67:66:66:66:66:66"
5. Отправить какой-то пакет (например, второй) из массива в сеть:
send(wspkt[1])
Как видишь, все просто, но поставить scapy под Win — это нелегко.
3 comments On Как редактировать пакеты в Wireshark.
Pingback: Как проснифать трафик в Windows без использования WINCAP - Cryptoworld ()
Добрый день. Возможно ли блокировать IP адреса при помощи Wireshark.
Wireshark это инструмент анализа сетевых пакетов.
Для блокировки Вам нужен Firewall.