创建ICMP隐蔽通道

0 投票
1 回答
799 浏览
提问于 2025-04-17 21:02

如何使用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))

撰写回答