# 攻防LAB:存取Windows C槽之嘗試
### 一、測試環境建制與說明
- 假想情況:
- **公司內部網路**,可能有惡意人員、資安部門的測試
- **共用一台Router**,並且沒有切VLAN或者等等安全防護,e.g 一些公寓
- 作業系統:
本次作業系統使用Ubuntu以及Windows 11家用版進行模擬;條件可以交換,做交叉測試。
- 攻擊者:Ubuntu 24.04.2 LTS
- 防禦者:Windows 11 24H2 家用版
- 網路資訊:
- Ubuntu:

- Windows:

- 先決條件:
- Windows:
需要啟動`系統管理員`,後半段說明,若不想一直Debug 可以去後半段先設定
- 測試目標:
使用Ubuntu主機,取得Windows C槽裡面的`目標物.txt`
- 真實情況找網段內主機
先安裝Nmap
```
nmap -sn 192.168.0.0/24
```
:::info
- -sn:代表`Ping`略過Port的掃描
- 192.168.0.0/24:首先看後面的24, 代表著為`Class C`的網段,24也就是將IP Address轉二進制以後,1的數量,這組IP總共識24個1,`/24`由此得來,再來看`192.168.0.0`代表著這個`Class C`網段要找的主機有0 - 255,請參考下圖:

:::
---
### 二、 資訊蒐集
準備以Ubuntu進行攻擊,先蒐集情資,使用Nmap, 一些指令相關可以參考[這裡](https://github.com/Sakuya4/nmapwithkali)
> Windows 使用官網安裝:https://nmap.org/download
- 安裝
```
sudo apt update
sudo apt install nmap
```
- Ping測試連線
透過`Ping <目標IP>`測試發現,目標主機有擋`Ping`, 因此使用其他方式探測主機,筆者選擇使用`nmap -sS 192.168.0.201`進行測試(透過TCP SYN)。而筆者會想測試一下445, 雖然他有擋,應該會是`Filter`, 不過因為445 port是關於檔案和印表機共用的Port, 還是會想測試看看。
結果如下:


輸入`nmap -p 445 -sS 192.168.0.201`, 果然是Filter

經過資訊蒐集,發現**445可能是開的**,所以想嘗試連進共享資料夾看看。打開一個資料夾,在路徑上輸入:
```
smb://192.168.0.201/
```
如果是Windows 的話直接打開資料夾,在路徑上輸入:
```
\\192.168.0.201\
```
嘗試成功,發現可以進行連線,也代表SMB是有開啟的,推測正確

:::spoiler
如果真的想確定結果可以把防火牆關掉,再`nmap -p 445 192.168.0.201`,會看到Open
:::
---
### 三、 嘗試攻擊
Windows 11在現代作業系統中,其實蠻安全的,首先Windows 11登入是用Microsoft帳戶登入;並且系統上預設使用`SMBv3`,表示說認證的時候不會用「明文」傳送。再來連接正常情況下都是加密的,所以WireShark抓封包只能抓到「密文」,就阻擋了一個情資蒐集的手段。
而這種情況下可以使用`暴力破解法`,這種手段可以使用`msfconsole`來協助破解
安裝方法:
step 1
```
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall
```
step 2 更改權限並且運行安裝腳本
```
chmod 755 msfinstall
sudo ./msfinstall
```
step 3 啟動
```
msfconsole
```
> [Windows 教學](https://blog.csdn.net/m0_73135216/article/details/130643219)
- 進行`暴力破解`設定
首先到建立一個`.txt`,每一行一個密碼,可以多輸入幾個,因為有可能會碰到嘗試次數的限制,所以建議將較有把握過通過的密碼放前面。呈現如下圖:

> [密碼列表可參考這裡或使用](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10-million-password-list-top-100.txt)
使用`SMB_login`操作:
```
use auxiliary/scanner/smb/smb_login
```
依序設定:
```
set RHOST 192.168.0.201
Set SMBuser user
set PASS_FILE /home/user/password.txt
```
1. 目標主機
2. 目標主機使用者名(常見為user)
3. 密碼表

- 測試結果
- 成功,如圖所示,到了密碼:admin以後,出現了success

由此可以知道連上對方SMB的方法帳號密碼就是:
:::info
帳號:user
密碼:admin
:::
如果嘗試失敗,情況大概是暴力破解的密碼嘗試全部失敗,會建議攻擊者可以將較容易成功的密碼放前面。
---
### 四、 竊取資料
- 用剛剛取得的帳號密碼登入

發現他需要進一步驗證,通常這種驗證代表著管理員身份,而通常Windows不去變動的話管理員一定是Administrator,因此再次使用`SMB_login`
```
use auxiliary/scanner/smb/smb_login
```
依序設定:
```
set RHOST 192.168.0.201
Set SMBuser Administrator
set PASS_FILE /home/user/password.txt
```

由測試發現,管理員帳號密碼為:
:::info
帳號:Administrator
密碼:password
:::
接下來輸入以後發現仍然不能連線,前面有提到,Windows 11 是使用`SMBv3`, 因此可以推測**是否攻擊主機使用的SMB版本與Windows11不相符**

1. 首先嘗試啟用SMBv2以上版本,輸入下列指令後,進入到`smb.conf`修改的地方,在global修改成圖所示,`Crtl + o` -> `enter` -> `Crtl + x`,最後`sudo systemctl restart smbd nmbd`
```
sudo nano /etc/samba/smb.conf
```

2. 如果不行則使用再加上,並用同樣方式儲存:
```
client NTLMv2 auth = yes
client signing = required
```
- SMB版本調整後仍無法的情況
輸入下面的指令,並輸入Administartor的密碼,滑到底發現非常長
```
smbclient //192.168.0.201/c$ -U Administrator -d 10
```

仔細看到下面這兩行有解釋,
:::info
`SPNEGO login failed`:SPNEGO是SMB用於協商認證的機制,然後登入過程失敗了。
`The referenced account is currently disabled and cannot be logged on to.`:Administrator處於禁用的狀態,沒辦法用這個帳戶登入。
`session setup failed: NT_STATUS_ACCOUNT_DISABLED`:SMB建會議失敗,收到了來自伺服器的狀態碼`NT_STATUS_ACCOUNT_DISABLED`,表帳號被禁。
:::

- 問題結論
經過`smbclient //192.168.0.201/c$ -U Administrator -d 10`測試結果發現,問題是出在「Windows管理員沒有啟用」。
- 問題排除(先決條件)
1. 查看管理員是否真的沒有啟用
由圖可以得之,管理員確實沒有啟用,Windows 11預設將管理員停用,以防這次Lab實際發生
```
net user administrator
```

2. 將管理員啟用
啟用管理員後,回到Ubuntu就可以嘗試登入了。
```
net user administrator /active:yes
```

- 重新嘗試登入
最後修改完成,嘗試在Ubuntu登入,並且發現成功,達成LAB目標,取得`目標物.txt`,並測試`r w x`都沒問題,測試結束。



---
### 五、 最後流程演示及成果展示
1. 首先透過nmap收集資料,看445有沒有開
結果`Filtered`,但一般情況不會去調整,先預設有開,可以透過輸入`smb://192.168.0.201/`去確定是否有反應。

2. 環境安裝`msfconsole`並開始使用`smb_login`
準備好一個「一行一組密碼的」`password.txt`放置在某路徑,請記住,接著使用
`use auxiliary/scanner/smb/smb_login` 並設定標的。
```
set RHOST 192.168.0.201
Set SMBuser user
set PASS_FILE /home/user/password.txt
run
```

:::info
可以直接嘗試Administrator, 會比較有效率
:::
3. 取得管理員帳號
取得後嘗試透過user帳號進入C槽,發現無果,用前一步驟方法取得Administrator密碼,可以注意到圖中有Account lockout, 已經有說明管理員帳號其實沒有啟用的問題了。

4. 用取得之資訊登入環境
經測試需要使用Adminstrator, 破解後得知其密碼為password, 依序輸入即可進入
:::success
使用者名稱:Administrator
網域:WORKGROUP
密碼:password
:::

5. 找出LAB的目標「目標物.txt」


測試後確定 `r w x`都沒有問題。

#### 結語
SMB服務是LAN環境中常見的攻擊目標,「弱密碼」和「未啟用的帳戶鎖定策略」會使系統面臨線上「暴力破解」等等風險。Windows的管理共享提供了遠端管理員級別的檔案系統訪問入口。在安全測試和故障排除中,攻擊者需要理解協議細節和使用詳細調試工具。Windows預設禁用內建的Administrator帳戶是一個非常重要的基礎設定,使LAB進行遇到障礙,也印證實際攻擊會遇到的情況。但是,系統若是存在其他漏洞或配置弱點,一樣有可能會被攻擊者繞過。建議User針對系統進行弱點掃描,尤其是Server可能存在更多弱點。