20200805 -
引言
前几天有这样一个需求,在分析一个ELF样本(mirai变种)的时候,因为想看它的payload,但是因为他只有在成功收到raw socket扫描的回应之后,才会有后续的效果。为了达到这个目的,需要能够重定向本机的流量。
解决方案
运行ELF样本的环境是由docker运行的centos7容器,如果想使用iptables的话,必须给予一定的权限,所以启动容器的时的命令如下。
docker run -it --privileged centos:7
本次的需求是,将本机的所有流量打往某个机器的80端口,(本次目的端口的容器也是自己启动的)。最开始是参考了文章[1],他所描述的场景是将发往某个IP的流量发往本网段的一个机器。
ptables -t nat -A OUTPUT -d 183.61.xx.xx -p tcp --dport 8089 \
-j DNAT --to-destination 10.15.xx.xx:80
把访问183.61.xx.xx端口为8089的请求改成访问10.15.xx.xx的80端口流量。
我这里的需求基本是一致的,但是我因为我不知道请求的IP是多少,所有需要将前面第一个-d的参数进行修改,我是要把所有的流量都转发出去。
ptables -t nat -A OUTPUT -d 0.0.0.0/0 -p tcp --dport 8089 \
-j DNAT --to-destination 10.15.xx.xx:80
一开始将修改的地方变为any并不好使,才改为了这种形式。