內網偵察概述
內網偵察(Internal Reconnaissance)是滲透測試中取得初始存取權限後的關鍵階段。攻擊者需要了解目標網路的架構、系統配置、使用者權限等資訊,以規劃後續的橫向移動與權限提升策略。
本文將介紹常見的內網資訊收集技術,包含 Windows 與 Linux 環境下的偵察方法,以及 Active Directory 環境中的列舉技術。
本機資訊收集
Windows 系統
首先收集當前系統的基本資訊:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| # 系統資訊
systeminfo
hostname
whoami /all
# 檢視目前使用者權限
whoami /priv
# 列出本機使用者
net user
# 列出本機群組
net localgroup
# 檢視管理員群組成員
net localgroup administrators
# 檢視網路設定
ipconfig /all
# 檢視路由表
route print
# 檢視 ARP 快取
arp -a
# 列出正在執行的程序
tasklist /v
# 列出已安裝的軟體
wmic product get name,version
|
Linux 系統
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| # 系統資訊
uname -a
cat /etc/os-release
hostname
# 目前使用者資訊
id
whoami
# 列出所有使用者
cat /etc/passwd
# 列出所有群組
cat /etc/group
# 網路設定
ip addr
ip route
# ARP 快取
arp -a
# 執行中的程序
ps aux
# 已安裝的套件 (Debian/Ubuntu)
dpkg -l
# 已安裝的套件 (RHEL/CentOS)
rpm -qa
|
網路資訊收集
網路掃描
使用 Nmap 進行網路探測:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 快速掃描存活主機
nmap -sn 192.168.1.0/24
# TCP 連接掃描
nmap -sT -p- 192.168.1.100
# SYN 掃描(需要 root 權限)
nmap -sS -p 1-1000 192.168.1.100
# 服務版本偵測
nmap -sV -sC 192.168.1.100
# 作業系統偵測
nmap -O 192.168.1.100
|
內網服務探測
1
2
3
4
5
6
| # 檢視本機開放的連接埠
netstat -ano # Windows
ss -tulnp # Linux
# 掃描常見的內網服務
nmap -p 21,22,23,25,53,80,88,135,139,389,443,445,636,1433,3306,3389,5985 192.168.1.0/24
|
Active Directory 資訊收集
網域基本資訊
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # 檢視網域資訊
systeminfo | findstr /B "Domain"
# 網域控制器列舉
nltest /dclist:domain.local
# 檢視目前網域
echo %userdomain%
# 網域信任關係
nltest /domain_trusts
# 使用 PowerShell 查詢 AD
Get-ADDomain
Get-ADForest
Get-ADDomainController
|
使用 PowerView 進行列舉
PowerView 是一個強大的 PowerShell 工具,用於 Active Directory 偵察:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| # 載入 PowerView
Import-Module .\PowerView.ps1
# 取得網域資訊
Get-Domain
# 列舉網域控制器
Get-DomainController
# 列舉網域使用者
Get-DomainUser
# 列舉網域群組
Get-DomainGroup
# 列舉網域電腦
Get-DomainComputer
# 尋找網域管理員
Get-DomainGroupMember -Identity "Domain Admins"
# 尋找本機管理員權限
Find-LocalAdminAccess
|
使用者與群組列舉
列舉網域使用者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| # 使用 net 命令
net user /domain
# 查詢特定使用者
net user administrator /domain
# 使用 LDAP 查詢
Get-ADUser -Filter * -Properties *
# 尋找啟用的帳戶
Get-ADUser -Filter {Enabled -eq $true}
# 尋找密碼永不過期的帳戶
Get-ADUser -Filter {PasswordNeverExpires -eq $true}
|
列舉群組成員
1
2
3
4
5
6
7
8
| # 列出網域管理員
net group "Domain Admins" /domain
# 列出企業管理員
net group "Enterprise Admins" /domain
# 使用 PowerShell
Get-ADGroupMember -Identity "Domain Admins" -Recursive
|
網路共享資源發現
SMB 共享列舉
1
2
3
4
5
6
7
8
| # 列出本機共享
net share
# 列出遠端共享
net view \\192.168.1.100
# 使用 PowerView
Find-DomainShare -CheckShareAccess
|
使用工具掃描
1
2
3
4
5
6
7
8
| # 使用 smbclient 列舉
smbclient -L //192.168.1.100 -N
# 使用 smbmap
smbmap -H 192.168.1.100
# 使用 CrackMapExec
crackmapexec smb 192.168.1.0/24 --shares
|
服務與應用程式發現
服務列舉
1
2
3
4
5
6
7
8
9
10
11
| # 列出所有服務
Get-Service
# 列出正在執行的服務
Get-Service | Where-Object {$_.Status -eq "Running"}
# 使用 wmic
wmic service list brief
# 檢視服務設定
sc qc <service_name>
|
應用程式發現
1
2
3
4
5
6
| # 檢視已安裝程式
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion, Publisher
# 檢視排程工作
schtasks /query /fo LIST /v
|
BloodHound 基礎介紹
BloodHound 是一款用於分析 Active Directory 環境的強大工具,它能視覺化呈現攻擊路徑。
資料收集
使用 SharpHound 收集 AD 資料:
1
2
3
4
5
6
| # 執行 SharpHound
.\SharpHound.exe -c All
# 或使用 PowerShell 版本
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All
|
常見查詢
在 BloodHound 中可以執行以下查詢:
- 尋找到 Domain Admins 的最短路徑
- 尋找 Kerberoastable 帳戶
- 尋找具有 DCSync 權限的主體
- 尋找所有無約束委派的電腦
防禦與偵測
偵測內網偵察活動
- 監控 LDAP 查詢:大量的 LDAP 查詢可能表示有人在列舉 AD
- 監控 SMB 連線:異常的 SMB 存取模式可能表示共享列舉
- 啟用進階稽核:開啟 Windows 進階安全稽核功能
- 部署蜜罐帳戶:建立虛假的特權帳戶作為誘餌
最佳實踐
- 實施最小權限原則
- 定期審核 AD 權限
- 限制特權群組成員
- 監控敏感群組變更
- 使用分層管理模型(Tier Model)
參考資料