使用 iptables 的中间人攻击

使用 iptables 的中间人攻击

我希望测试一个通过 TCP 与其他子系统通信的子系统。我使用了以下方法:

"iptables -A OUTPUT -p tcp --dport "+port_number" -j DROP"

停止端口上的流量,这样我就可以通过脚本将自己的数据发送到被测系统。这个方法确实很有效。

我现在希望将流量转发到我的脚本,而不是简单地丢弃它。然后我希望在将数据转发到被测子系统之前处理脚本中的数据。

我可以使用 iptables 来做到这一点吗? 有更好的方法吗?

答案1

您可以尝试这个(到端口的传入流量1234将被重定向到4321本地主机,您可以在那里监听脚本):

iptables -I INPUT -p tcp --dport 1234 -j ACCEPT
iptables -I INPUT -p tcp --dport 4321 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 1234 -j REDIRECT --to-ports 4321

如果您也想1234从同一台机器访问该端口,则需要添加一条OUTPUT规则,因为PREROUTING环回接口未使用该规则:

iptables -t nat -I OUTPUT -p tcp -o lo --dport 1234  -j REDIRECT --to-ports 4321

现在,您可以在服务器上尝试监听nc -l 4321(这里您可以使用自己的脚本)。在客户端上,尝试nc server_host_name_or_ip 1234写入任何内容以验证服务器是否正确执行重定向。

不要忘记保存iptables配置!

相关内容