iT邦幫忙

2021 iThome 鐵人賽

DAY 17
0
Security

資安這條路─系統化學習滲透測試系列 第 17

Day 17 Server Message Block (SMB)相關安全

  • 分享至 

  • xImage
  •  

因為電腦壞掉了,所以暫時沒有截圖 QQ

Server Message Block (SMB)

SMB 針對網路傳輸檔案的協定,提供給網路芳鄰與印表機使用。

可透過未經身分驗證的 inter-process communication (IPC) 機制,處理共享的資料。
最新的版本為 SMB 3.1.1 (Windows 10 與 Windows Server 2016)

以下為版本與作業系統:

SMB Version Windows version
CIFS Microsoft Windows NT 4.0
SMB 1.0 Windows 2000, Windows XP, Windows Server 2003 & Windows Server 2003 R2
SMB 2.0 Windows Vista & Windows Server 2008
SMB 2.1 Windows 7 & Windows Server 2008 R2
SMB 3.0 Windows 8 & Windows Server 2012
SMB 3.0.2 Windows 8.1 & Windows Server 2012 R2
SMB 3.1.1 Windows 10 & Windows Server 2016

假設使用端和伺服器端使用不同的作業系統與 SMB 版本,則會以最高可支援的版本進行連線,如 Windwos 8 與 Widnow Server 2016 則會以 SMB 3.0 進行連線。

現今有許多 SMB 相關的已知漏洞,如 CVE-2017-0143,影響大量的設備與系統。

使用的 TCP 與 UDP 的 port

名稱 port 說明
netbios-ns 137/tcp NETBIOS Name Service
netbios-ns 137/udp NETBIOS Name Service
netbios-dgm 138/tcp NETBIOS Datagram Service
netbios-dgm 138/udp NETBIOS Datagram Service
netbios-ssn 139/tcp NETBIOS session service
netbios-ssn 139/udp NETBIOS session service
microsoft-ds 445/tcp 用於 AD

tool:Null session with rpcclient

於 Linux 中有一個工具名 Rpcclient,可執行使用者端的 MS-RPC 的函式。

null session
null session 用於 Samba 或 SMB 伺服器的連接使用,不需要密碼進行身分驗證,預設情況下較舊的系統為開啟的,而 Windows XP SP2 和 Windows Server 2003 禁止使用。

利用空的帳號名稱
rpcclient -U "" [target]

輸入以上的指令,會要求輸入密碼,可以將密碼留空。

會看到rpcclient $> 可輸入指令

取得幫助清單
help

查看功能變數名稱與使用者數量
rpcclient $> querydominfo

該指令可看到 Domain、Server、Comment、Total Users、Total Group、Total Aliases 等資訊

查看使用者清單
rpcclient $> enumdomusers

可看到目前使用者的清單,其中 RID 以十六進位表示(0x3E8 = 1000)
user:[fei] rid:[0x3e8]

指定使用者帳號取得資訊
rpcclient $> queryuser [username]

指定使用者 RID(binary) 取得資訊
rpcclient $> queryuser 1000

指定使用者 RID(Hex) 取得資訊
rpcclient $> queryuser 0x3e8

以上的指令可以針對該使用者,查詢使用者路徑、home drive、密碼相關資訊。

利用 TAB 取得可用的指令

rpcclient $> enum <TAB><TAB>

enumalsgroups      enumdomgroups      enumjobs           enumprinters       enumtrust
enumdata           enumdomusers       enumkey            enumprivs         
enumdataex         enumdrivers        enummonitors       enumprocdatatypes 
enumdomains        enumforms          enumports          enumprocs

如果出現 NT_STATUS_CONNECTION_DISCONNECTED 表示可能因為 smbclient 版本太低,可以在 /etc/samba/smb.conf 編輯 client min protocol = CORE

RID Cycling

並不是每一個系統都可以使用 enumdomusers 列出所有使用者,有一些系統沒有支援,沒有支援的系統,若使用 querydominfo 中的使用者數量為 0。
我們需要使用 RID cycling 來取得使用者列表。

RID(relative identifier)

  • 使用者創立的時候賦予的可變長度的數
  • RID 為 SID (Security Identifier) 的一部分
  • SID 與 RID 可以識別帳號或群組
  • 如果想要查詢 SID 可使用 lookupnames
  • RIDS 的總類
    • 500-1000 for System
    • 1000-10000 for Domain

查詢 up name
rpcclient $> lookupnames pbx

查詢 SID,會輸出使用者帳號
rpcclient $> lookupsids [domain]

查詢以中使用者群組
rpcclient $> lookupnames administrators

窮舉 System RID
rpcclient $> lookupsids S-1-5-32-[501-1000]

Tool:Enum4linux

利用 Perl 撰寫而成的 Linux 版本 enum.exe 可以列舉 Windows 主機的 Samba 資訊,

./enum4linux.pl [options] [ip]

參數 說明
-U 取得使用者的清單
-M 取得機器的清單
-S 取得共享的清單
-P 取得密碼策略資訊
-G 取得群組和成員列表
-d 詳細資訊,使用於參數 -U 與 -S
-u user 特別指定帳號,預設為""
-p pass 特別指定密碼,預設為""
-a 執行所有的獵取包含 -U -S -G -P -r -o -n -i
-o 取得作業系統資訊
-i 取得印表機資訊

基本列舉
enum4linux [target]

  1. 會列舉使用者、群組等詳細資訊。
  2. 會針對 RID 循環查詢有效的使用者帳號和群組。

Nmap SMB scripts

Nmap 中的 NSE 包含許多與 SMB 相關的掃描腳本,路徑於 /usr/share/nmap/scripts/smb*

ls -ls /usr/share/nmap/scripts/smb*

若找到想要使用的掃描腳本,可利用以下的指令,指定腳本:

nmap --script=[scriptname] [target ip]

確認 SMB 版本與作業系統版本
nmap -p 139,445 --script=smb-os-discovery [target]

利用所有與 SMB 相關的腳本進行掃描

nmap -p 139,445 --script=smb-vuln* [target]

掃描結果可能有 false 或是詳細的掃描資訊(State:VULNERABLE)。

確認目標是否存在 MS08-067 漏洞
nmap -p 139,445 --script=smb-vuln-ms08-067 [target]

MS17-010 Eternalblue

Eternalblue 是 2017 年 04 月利用 SMBv1 協定的漏洞,影響以下版本:

  • Windows 7
  • Windows 8
  • Windows 8.1
  • Windows Server 2003/2008/2012(R2)/2016

該漏洞將造成遠端伺服器任意執行指令,屬高風險漏洞。

確認目標是否存在 MS17-010 漏洞
nmap -p 445 [target] --script=smb-vuln-ms17-010

可下載 NSE 到系統內部
wget https://svn.nmap.org/nmap/scripts/smb-vuln-ms17-010.nse -O /usr/share/nmap/scripts/smb-vuln-ms17-010.nse

更新 NSE 資料庫
nmap --script-updatedb


上一篇
Day 16 Simple Network Management Protocol (SNMP) 相關安全
下一篇
Day18 Web Server 相關掃描
系列文
資安這條路─系統化學習滲透測試37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言