У меня есть беспроводной интерфейс в режиме монитора, и я могу успешно перехватывать сетевые пакеты и анализировать их с помощью Wireshark. Я пытался реализовать нечто подобное с помощью pcapy
. и impacket
. Похоже, что pcapy
не перехватывает те же пакеты, что и Wireshark. В настоящее время я работаю на Mac OS X 10.9 с Macbook Pro 2012 года, но заметил такое же поведение на Ubuntu с беспроводным USB-адаптером TP-LINK TL-WN722N.
Вот пример написанного мной сценария, который явно не работает. Я не получаю запросов зондирования с помощью pcapy
, хотя я вижу их в Wireshark.
import pcapy
import impacket
DECODER = impacket.ImpactDecoder.RadioTapDecoder()
def packet_handler(header, data):
radio_packet = DECODER.decode(data)
dot11 = radio_packet.child()
if dot11.get_subtype() == impacket.dot11.Dot11Types.DOT11_SUBTYPE_MANAGEMENT_PROBE_REQUEST:
management_base = dot11.child()
if management_base.__class__ == impacket.dot11.Dot11ManagementFrame:
print management_base.get_source_address(), management_base.get_destination_address()
p = pcapy.open_live("your_interface_here", 2000, 0, 1000)
p.loop(-1, packet_handler)
В этом примере en1 находится в режиме мониторинга. Это прекрасно работает с использованием файла pcap, сгенерированного из Wireshark, просто изменив open_live
на open_offline
:
p = open_offline('path_to_file')
Я неправильно настроил pcapy
?