我使用scapy构建构建arp欺骗攻击。我已经准备好使用linux ip forwarding进行攻击了。
os.system("echo %s > /proc/sys/net/ipv4/ip_forward" % (f,))
但是我希望能够动态修改数据包并发送已编辑的数据包,因此我需要重新启动IP转发。我尝试使用此代码执行此操作,但是其他计算机/网关可以获得包装,尽管它们在攻击者中使用。
#gIP is the gatwaway ip
#arp t able is an arptable I gatherd before I started the attack
#both of them have the correct value so the problem dosent lay there
def pkt_handler(self, pkt):
pkt.show()
ip = pkt.getlayer(sp.IP)
get_mac = lambda x: info.arp_table.get(x, info.arp_table[info.gIP])
ether = sp.Ether(dst=get_mac(ip.dst))
sp.sendp(ether/ip)
编辑: 经过大量调试并查看tcpdump后,我想我知道是什么导致了problam。如果客户端A和服务器B以及攻击者S.当客户端A发送给服务器B时,请说一个echo messege。服务器获取信息并通过发送给攻击者来响应它,但不知何故scapy无法嗅探信息,即使tcpdump可以。不知道什么是这个问题,任何帮助都会很好。
答案 0 :(得分:0)
用于ip forward或arp spoof使用alerady已知的工具
-- O(n) in case the elements are hashable and no hash collisions
import Data.Hashable(Hashable)
import Data.HashSet(fromList, member)
twoEqual :: (Hashable a, Ord a) => [a] -> Bool
twoEqual xs = any (flip member hs) xs
where hs = fromList xs
或使用EtterCAP