通向彼岸 之内网代理转发 [ 利用端口重定向bypass各类应用层防火墙 fpipe ]



0x01 前言:
    如果你觉得netsh和iptables配置稍微有点儿繁琐,有款小工具可能会适合你,fpipe 一款专门用于端口重定向的小工具,从名字就能猜出来它是干啥的,很明显,forward pipe[转发,通过管道],虽然功能上和netsh有一点点类似,但确实不是一类东西,同样是监听来自外部的某个端口,但它多做了一步,它会把来自外部端口的流量先转到本地某个指定的端口上[转发],再通过转到的这个本地端口去连远程机器的某个端口[管道],而不是像netsh只是单纯的把端口转过去,简易通信流程如下

1
外部端口访问 <-> 本地监听来自外部的这个端口并它转到本地的另一个端口上(在本地绑定两个端口) <-> 通过本地的另一个端口和远程机器的某个端口通信

工具选项如下,非常简单,看选项说明基本就懂了:

0x02 我们可以拿它来做什么
    刚刚在上面已经说过,它并非直接转发,而是又自己建立了一个新的通道,这样的好处在哪里呢,很明显,我们可以通过这样的方式来轻松bypass掉各类应用层防火墙

0x03 环境如下:

1
2
3
4
目标边界机器[win2008en,防火墙已开启,且只允许80进] ip: 192.168.3.34[假设为公网ip] 192.168.32.143[目标内网ip]
目标内网的一台win机器[win2008r2cn] ip: 192.168.32.134
目标内网的一台linux机器[centos 6.8en] ip: 192.168.32.129
攻击者机器[win7cn] ip: 192.168.3.251


0x04 最终目的:

1
2
已确认所有内网机器之间的通信没有任何问题
攻击者通过边界机器的80端口直接访问内网那台windows机器的远程桌面和另一台linux机器的ssh

在边界的那台机器上执行:

1
2
# FPipe.exe -l 80 -s 1080 -r 3389 192.168.32.134 把来自外部的80端口的流量通过本地的1080端口转到内网192.168.32.134这台机器的3389端口上
# FPipe.exe -l 80 -s 1080 -r 22 192.168.32.129 把来自外部的80端口的流量通过本地的1080端口转到内网192.168.32.129这台机器的22端口上

此时,回到入侵者的机器上执行,这样就可以直接连到内网的那两台机器了,虽然边界机器确实是开了防火墙,但只要你有一个可以通过的端口,足矣:

1
# mstsc 192.168.3.34:80 在实际连rdp的时候,经常会断,不知为何,后期找到原因再来补充吧



1
# putty 192.168.3.34:80 相反,ssh就非常稳定,我在想拿到是图形界面的原因



小结:
    在实际渗透中,你可以在提权以后自己手工加一条允许某个端口的规则,注意建立管道绑的端口不要和系统中现有的端口冲突,用这个的主要原因还是希望能把内网中的一些出不来[不能连外网]的机器,通过这种方式一起给带出来,实际渗透中不一定非要用,实在没办法的时候可以尝试下,如果真是遇到那种什么都出不来的内网,好吧,算你走运,像类似的疑难杂症我们后续还会用大量的篇幅来说明[具体问题具体对待嘛],说实话,有些比较棘手的问题,我自己也不是搞的特别通透,仍在不断学习中…