我试图使用Scapy向我的RADIUS服务器发送一个简单的RADIUS访问请求,但是Scapy未能捕捉到响应。我已经使用tcpdump和scapysniff来验证客户端是否确实收到了access accept。在
以下是我的设置:
数据包:(AVP是一个定制的构建层)
<IP frag=0 proto=udp dst=10.200.202.19 |<UDP sport=10999 dport=radius |<Radius code=Access-Request authenticator='W\xe8\xe1\x81FD\xdalR,\x9e8?\x8e\xda&' |<AVP type=User-Name data='testing' |<AVP type=User-Password data=',\xea\x84p\x8b\x8e\x8bo\x1c\xa5P\x9cR\xea\xb5M' |<AVP type=NAS-IP-Address data='127.0.1.1' |<AVP type=NAS-Port data='0' |>>>>>>>
客户端2个终端:
终端1
^{pr2}$终端2
>>> sr(pkt, iface='eth0', filter='udp and port 1812', timeout=5)
Begin emission:
.Finished to send 1 packets.
.
Received 2 packets, got 0 answers, remaining 1 packets
(<Results: TCP:0 UDP:0 ICMP:0 Other:0>, <Unanswered: TCP:0 UDP:1 ICMP:0 Other:0>)
我仔细研究了Scapy的源代码,发现在寻找响应时,我们主要做两件事,比较接收包的hashret()
值和发送包的{
>>> a = sniff(iface='eth0', filter='udp and port 1812')
♥>>> a
<Sniffed: TCP:1 UDP:2 ICMP:0 Other:0>
>>> a.summary()
Ether / IP / TCP 10.200.202.191:ssh > 10.200.201.242:51044 PA / Raw
Ether / IP / UDP 10.200.202.191:10999 > 10.200.202.19:radius / Raw
Ether / IP / UDP 10.200.202.19:radius > 10.200.202.191:10999 / Raw / Padding
>>> a[1].hashret()
'\x00\x08\x00\x00\x00\xac\x11'
>>> a[2].hashret()
'\x00\x08\x00\x00\x00\xac\x11'
>>> a[2].answers(a[1])
1
在这之后,我开始在eclipse中运行一个简单的测试,并尝试逐步执行该程序,据我所知,sr()
似乎完全没有响应,因此从未对其进行任何处理。在
目前没有回答
相关问题 更多 >
编程相关推荐