2016-09-25 15 views
2

802.11 프로브 요청을 보내고 프로브 응답을 수신하는 작업을 수행하려고합니다. 그러나 그 결과는 좋지 않습니다.Scapy 프로브 요청 수신 및 프로브 응답 수신

가 여기 내 전송 프레임 부분, 내가 파이썬에서 Scapy를 사용

class Scapy80211(): 
    def __init__(self,intf='wlan0',ssid='test',\ 
      source='00:00:de:ad:be:ef',\ 
      bssid='00:11:22:33:44:55',srcip='10.10.10.10'): 
    self.rates = "\x03\x12\x96\x18\x24\x30\x48\x60" 
    self.ssid = ssid 
    self.source = source 
    self.srcip = srcip 
    self.bssid = bssid 
    self.intf = intf 
    self.intfmon = intf + 'mon' 

    def ProbeReq(self,count=10,ssid='',dst='ff:ff:ff:ff:ff:ff', fc=0): 
     if not ssid: ssid=self.ssid 
     param = Dot11ProbeReq() 
     essid = Dot11Elt(ID='SSID',info=ssid) 
     rates = Dot11Elt(ID='Rates',info=self.rates) 
     dsset = Dot11Elt(ID='DSset',info='\x01') 
     pkt = RadioTap()\ 
     /Dot11(type=0,subtype=4,FCfield=fc,addr1=dst,addr2=self.source,addr3=self.bssid)\ 
     /param/essid/rates/dsset 

     print '[*] 802.11 Probe Request: SSID=[%s], count=%d' % (ssid,count) 
     try: 
     sendp(pkt,count=count,inter=0.1,verbose=1) 
     except: 
     raise 

ssid = 'aa' #This is the AP I want to interact with 
sdot11 = Scapy80211(intf='mon0') 
sdot11.ProbeReq(ssid=ssid) 
sniff(count=10, timeout=5, prn=PacketHandler, filter="type mgt subtype probe-resp") 

가 나는 결과를 얻을 수있는 한 시간이 20 시간에 대한 코드를 실행합니다.

게다가, 결과도 조금 이상합니다. 응답을받을 수 있었을 때, 나는 종종 그 때 많이받습니다.

그럼 아무도 도와 줄 수 있습니까? 어떻게 송수신 작업을합니까?


코드를 srp()으로 변경했습니다. sniff() 문을 제거하고 sendp()를 srp()로 바꿉니다. 그리고 여기에 내 결과입니다, 나는 그것에 대해 매우 혼란 스럽습니다.

[*] 802.11 Probe Request: SSID=[aa], count=10 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 

Received 0 packets, got 0 answers, remaining 1 packets 
[*] 802.11 Probe Request: SSID=[aa], count=10 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 
Begin emission: 
Finished to send 1 packets. 

Received 12 packets, got 0 answers, remaining 1 packets 

은 내가 AA에서 프로브 응답 프레임, 내가 프로브 요청에 보내는 하나를 수신 할.

그래서 결과가 답이되지 않습니까? 그리고 SSID, 소스, bssid와 같은 올바른 매개 변수를 채우지 않은 것은 관련이 있는지 확신 할 수 없습니다. 그리고 "ff : ff : ff : ff : ff : ff"에서 MAC 주소 aa으로 대상을 변경해야합니까?

답변

0

내가 틀렸다면, 프로브를 보낸 다음 응답을 스니핑합니다. 답변이 도착하면 그 시간에 도착할 가능성이 높습니다.

srp() 프레임을 보내고 답변을 매칭하는 기능을 사용해야합니다.

+0

예, 정확하게 그랬습니다. 내 코드를'srp()'로 바꿨고 그 결과와 불확실한 것을 게시합니다. 너는 볼 수 있니? –