2014-03-29 3 views
4

모니터 모드에서 무선 인터페이스를 사용할 수 있으며 네트워크 패킷을 성공적으로 탐지하여 Wireshark로 분석 할 수 있습니다. 나는 pcapyimpacket과 유사한 것을 구현하려고 노력해 왔습니다. 마치 pcapy이 Wireshark와 동일한 패킷을 포착하지 않는 것처럼 보입니다. 현재 맥북 프로 (Macbook Pro)가 설치된 Mac OS X 10.9에서 실행 중이지만 TP-LINK TL-WN722N 무선 USB 어댑터를 사용하여 우분투에서 동일한 동작을 확인했습니다.파이썬 패킷 스니핑/패킷 캡처 - pcapy가 패킷을 캡처하지 않음

다음은 분명히 작동하지 않는 스크립트의 예제입니다. 내가 Wireshark에서 볼 수는 있지만 pcapy와 함께 프로브 요청을받지 않습니다.

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은 모니터 모드입니다.

p = open_offline('path_to_file') 

내가 제대로 pcapy을 설정하지 않는 건가요 : 이것은 단순히, 와이어 샤크에서 생성 된 PCAP 파일을 사용하여 open_liveopen_offline에 변경 잘 작동?

+0

파이썬 2.7 – TheCreator232

+0

을 사용하는 경우 scapy 대신 pcapy를 사용하는 것이 좋을 것입니다. 모니터 모드 문제를 해결하는 동안 어떤 이유에서든 많은 패킷을 캡처 할 수는 없습니다. 그 생각을 가지고 있는지 확실하지 않은가요? –

+0

음, 나는 scapy를 꽤 많이 사용했다. 결코 Mac OS에서는 사용하지 않았다. 캡처를 사용하는 스 니프 명령을 적어 둘 수 있습니까? 그리고 많은 패킷을 포착하지 않는다는 것은 무엇을 의미합니까? – TheCreator232

답변

1

당신은 와이어 샤크에서 볼 수있는 모든 패킷 일부 패킷이 아닌 캡처 경우 (모든 나쁜 체크섬 심지어 패킷 캡처한다) 무차별 모드를 사용하려고 : pcapy

에 대한

1) 설정 무차별 모드를

promiscuous = True 
p = pcapy.open_live("your_interface_here", 2000, promiscuous, 1000) 

2) 인터페이스에 무차별 모드를 설정하십시오. Mac에서는 Linux에서이 작업을 수행하는 방법을 잘 모릅니다.

os.system('sudo ifconfig eth0 promisc') 

그런 다음 인터페이스를 종료하고 종료하십시오.

pcapy 및 구리 이더넷과 동일한 문제가있었습니다. 위의 트릭은 나를 위해이 문제를 해결했습니다.

관련 문제