我正在编写一个程序,在网关和主机上执行ARP欺骗攻击,然后尝试捕获它们之间的HTTP流量并在浏览器上呈现Web会话。我正在使用libnet和pcap。
我已经成功完成了欺骗,现在我正在尝试进行中继,程序在主机和网关之间实现虚拟连接。
我遇到了TCP事务的问题。当主机需要页面时,它首先尝试通过发送TCP SYN数据包与攻击者建立TCP连接(因为它已经被欺骗)。问题是我的机器(攻击者)没有响应SYN,然后受害者重试make de connection,发送一堆SYN重传。
在我看来,我认为TCP连接是由pcap(或内核)自动完成的。是否有任何配置或参数来设置这个或我需要自己执行TCP事务?如果是这样,是否有任何建议可以达到最佳性能?
感谢您的建议。
Obs。:用于过滤HTTP请求,我在pcap上使用以下过滤器,可在it's man page
上使用tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)
答案 0 :(得分:1)
Libpcap是一个用于读取原始网络数据包的库,在pcap_sendpacket()
/ pcap_inject()
的版本中,用于发送原始网络数据包。 &#34;原始网络数据包&#34;表示原始链路层数据包;如果你想假装是一个TCP实现,你必须在原始数据包读/发送机制的顶上提供你的自己的 TCP实现 - 以及IPv4或IPv6。
答案 1 :(得分:0)
好的,对于那些碰到这个主题的人,我找到了一种聪明的方法来实现受害者和服务器之间的连接(我想这是正确的方法)。
您必须只让TCP SYN,ACK和whatevers通过,而不是执行两个连接来发送HTTP消息,一个是网关,另一个是受害者。你的行为就像一个&#34;管道&#34;。
因此,当您从受害者收到SYN时,只需将其发送到网关,然后网关将其发送到服务器并使用SYN ACK进行应答。当然,您必须伪造发送者和目标的以太网头,以验证欺骗。