创建ICMP隐蔽通道
如何使用scapy在收到回显请求时发送自定义的回显回复?或者说,当收到回显请求时,我们是否需要再发送一个回显请求?
这只是为了学术研究的目的。
1 个回答
0
对于这种工作,最好的选择是写一个 AnsweringMachine
。
因为 ICMP 的请求和回复并不复杂,所以基于 scapy/layers/l2.py
中的 ARP_am
类来写应该很简单(你可以查看这个链接了解更多:https://bitbucket.org/secdev/scapy/src/tip/scapy/layers/l2.py?at=default#cl-500)。
如果你觉得这对你来说太复杂了,还有一个简单粗暴的方法,就是使用 sniff()
函数的 prn
参数,当看到请求时发送回复。你可以试试这个:
sniff(iface='eth0', filter='icmp', lfilter=lambda p: p[ICMP].type == 0
prn=lambda p: send(
IP(src=p[IP].dst, dst=p[IP].src)/ICMP(type=0)/p[ICMP].payload))