內網資訊收集與偵察技術

Internal Network Reconnaissance Techniques

內網偵察概述

內網偵察(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 權限的主體
  • 尋找所有無約束委派的電腦

防禦與偵測

偵測內網偵察活動

  1. 監控 LDAP 查詢:大量的 LDAP 查詢可能表示有人在列舉 AD
  2. 監控 SMB 連線:異常的 SMB 存取模式可能表示共享列舉
  3. 啟用進階稽核:開啟 Windows 進階安全稽核功能
  4. 部署蜜罐帳戶:建立虛假的特權帳戶作為誘餌

最佳實踐

  • 實施最小權限原則
  • 定期審核 AD 權限
  • 限制特權群組成員
  • 監控敏感群組變更
  • 使用分層管理模型(Tier Model)

參考資料

comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy