端口映射,之前搞不透彻,这次结合自己设计的拓扑实践,加深理解。
此端口就是彼端口,映射就像复制了很多个门口,门口多了,你开哪一扇门都能进到同一间房,很方便,随意门 ???
开篇
首先给出设计好的拓扑图
出发点设在192.168.0.0/24网段的Kali攻击机。目标是把最里面10.0.0.0/24网段的DC机的Shell取出来。
内网穿透必不可少的是对边界机的控制,这里使用MSF,也为了持续控制,会以meterpreter session的形式做控制。
我们首先拿下同网段的Ubuntu的Shell,同网段使用绑定型或者反弹型的meterpreter payload都可以,这里制作反弹payload。
msfconsole开启监听。上传Ubuntu,后台运行木马,Kali接到返回的meterpreter。
msf5 > handler -p windows/x64/meterpreter_reverse_tcp -H 10.0.0.100 -P 8000
至此,Ubuntu服务器跟内网没有直连,符合DMZ区的安全要求。但是它的双网卡,跟一台Win7同网段。再顺着走,Win7跟DC机在同一个域内。我们再明确一下渗透路线,如图下所示。
想要顺利联系到Win7,路由网关不知道,但是Ubuntu这个中间介绍人却能联系到。换句话说,让它执行路由的功能,帮Kali转发送给Win7的信息。
MSF的路由功能就这样来的啦。
在Ubuntu添加路由。顺道使用添加Socks4a代理模块。这时候MSF外的应用,就可以借着这个隧道,享受这个漫游内网的福利了。
绑定型端口直连
那既然MSF借着路由可以访问Win7,那么我的发出去的Bind型Payload也可以直接找到Win7的木马啦。
首先运行Payload,再到Ubuntu执行木马。
发出去的请求,收到返回的 Meterpreter Sessions
好的,这是路由在发挥作用。
端口映射的反弹
刚才我是从攻击方的角度去思考怎么连上靶机,算是开辟道路直连上去。现在,思考,在Win7反弹meterpreter到攻击机可以吗?靶机Win7怎么找到我的攻击机?要知道,它可没有我来时的路。
它只知道Ubuntu的存在,因为Ubuntu同在172.16.0.0/24,那我的木马制作时就先填Ubuntu的地址好了。Ubuntu为我所控,其收到的迟早不就是我收到的?
先完成这一步,制作木马,上传到Win7(不要疑惑怎么上传,我不是开了代理吗,哈哈)
问题,怎么让Ubuntu的马就是我Kali的马?这就要真·端口转发!把Ubuntu 8000端口的流量都导到我的Kali 8000端口不就好了。
从Ubuntu来说,这是端口转发(把我的8000流量送给Kali 8000)。从Kali来说,这叫端口映射(把我的8000挂到Ubuntu 8000)!请细品。此端口就是彼端口,映射了就像镜像了很多个门口,门口多了,你从哪里进去都能到达同一间房。端口映射在NAT应用得多。
我搜了一下,frp做端口映射挺方便,就用它了。
frp 是CS结构的,Server就是“网关”,Client就是“它的内网机器”。Server负责把它的端口流量转发到内网具体端口,好,这样看,自然Ubuntu就是Server,把它的8000流量送给Kali。Kali就乖乖把自己的8000映射到Ubuntu上去。
长篇大论,感觉还不够言简意赅,先凑合着。
Ubuntu -> frps.ini
后台执行
Kali -> frpc.ini配置
后台运行
MSF先开启监听,Win7再执行木马。(注意先后顺序,如果木马先运行了,很容易就报告程序已停止运行,如图,猜想是程序设计,一段时间连接不上的停止工作)
好,收到来自遥远的Win7 Shell主动找上门了,Connection一栏看起来像是自己连自己。
后记
frp有缺点,不方便动态调节端口反射,因为它启动是加载配置执行的,一停下来,MSF Session就断了。其实它有高级功能,还有UI界面,不知能否解决问题,之后遇到再探讨。
再补充一点,为什么反弹这么受欢迎,还是因为,防火墙,严进宽出。在前面我的Win7执行Bind型木马时,是弹出了防火墙警告的。
所以说,虽然麻烦,但可能值得。
说好的DC机呢?这个,呐,最后放张图,不详细了。
你猜我用哪种方法接上的?