網路¶
這些是什麼¶
Windows 會記住系統曾加入的網路,以及其網路的設定方式。
SOFTWARE:- 網路設定檔(
NetworkList\Profiles):系統每連線過一個網路就有一個設定檔, 包含其名稱(Wi-Fi 網路的 SSID)、類別(公用、私人、網域)、連線類型 (有線、無線、VPN、行動寬頻),以及系統第一次與最後一次連線到該網路的時間。 - 簽章(
NetworkList\Signatures):用來識別每個網路的資訊,例如 閘道的 MAC 位址與 DNS 尾碼。 - 網路卡(
NetworkCards):介面卡。 SYSTEM(每個控制集):- TCP/IP 介面: 位址、DHCP 伺服器與租約、DNS 伺服器、網域。
- 系統所提供的共用(
LanmanServer\Shares)。 - 連接埠 Proxy(
PortProxy):由netsh interface portproxy建立的通道, 攻擊者會利用它進行跳板,以及透過其他連接埠存取 RDP。 - 持續性路由。
- 時區,用來將設定檔的當地時間轉換為 UTC。
最佳結論:系統曾連線到具有此名稱與閘道的網路, 第一次與最後一次連線分別在這些時間。它曾從此 DHCP 伺服器取得此位址, 並在登錄區儲存時提供這些共用與通道。僅憑網路名稱無法識別其所在位置: 許多網路都叫做「Network」,或使用相同的 SSID。
位置¶
C:\Windows\System32\config\SOFTWARE
Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}
ProfileName, Description, Category, NameType, Managed, DateCreated, DateLastConnected
Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Managed|Unmanaged\<signature>
ProfileGuid, DefaultGatewayMac, DnsSuffix, FirstNetwork
Microsoft\Windows NT\CurrentVersion\NetworkCards\<n> ServiceName, Description
C:\Windows\System32\config\SYSTEM (ControlSet00N\…)
Services\Tcpip\Parameters\Interfaces\{GUID} IP, DHCP, DNS, lease times
Services\LanmanServer\Shares one value per share
Services\PortProxy\v4tov4|v4tov6|v6tov4|v6tov6\tcp listen = connect
Services\Tcpip\Parameters\PersistentRoutes destination,mask,gateway,metric
Control\TimeZoneInformation
請將兩個登錄區連同其交易記錄一併收集。將設定檔時間轉換為 UTC 時需要 SYSTEM 登錄區。
分析注意事項¶
- 設定檔時間為當地時間。
DateCreated與DateLastConnected是以系統的 當地時間寫入。 FirstConnectedLocal與LastConnectedLocal保留其原始值。FirstConnectedUTC與LastConnectedUTC則以系統 SYSTEM 登錄區的時區(TimeZone) 及其日光節約時間規則進行轉換。- 時區變更之前的時間,或日光節約時間規則不同之年份的時間 (2007 年之前的美國日期),可能會有相應的誤差。
- 若沒有可讀取的 SYSTEM 登錄區與有效的目前控制集,則只會提供當地時間。日光節約時間的跳空時段與重複出現的模稜兩可時段,並沒有單一可證實的 UTC 時間戳記:此時 UTC 會保留空白,並由
Problems說明此限制。無效的時差或日期同樣不會被轉換。 - 只有第一次與最後一次。 每個設定檔只有一次第一次連線與一次最後一次連線,而非每一次 連線。設定檔機碼的最後寫入時間通常與最後一次連線相符。
- 名稱會重複。 Windows 會將未受管理的有線網路命名為「Network」、「Network 2」等。
Wi-Fi SSID 並非唯一。請使用
GatewayMac與DnsSuffix區分網路,並與 DHCP 記錄 及資產清冊交叉比對。閘道 MAC 不一定是 Wi-Fi 存取點的 BSSID,單憑它也無法確立實體位置。 - 共用、Proxy 與路由屬於設定:共用或連接埠 Proxy 可能被設定後 從未使用。每個值本身都沒有時間;機碼的最後寫入時間是其中任何一個值 變更的時間。
- 介面: GUID 之下沒有位址的介面機碼,是尚未設定的介面卡。 使用 DHCP 時,位址為最後一次租約的位址。在改用 DHCP 之前留下的靜態位址 不會顯示為使用中。
- 控制集: 預設會讀取 Windows 最後使用的控制集。
--all-control-sets會讀取所有控制集,可能會顯示已從目前控制集中移除的共用或 Proxy。
使用 Juntei 剖析¶
Usage: juntei parse-registry networks <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SOFTWARE and SYSTEM hives
-f, --file <FILE> Parse one hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--all-control-sets Every control set, not only the one in use
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry networks -d evidence/ -o networks.csv
juntei parse-registry networks -d evidence/ -t jsonl \
| jq 'select(.Source == "port_proxy" or .Source == "share")'
摘要會列出最後連線的網路(由新到舊),以及所有共用、連接埠 Proxy 與 持續性路由。
輸出欄位¶
| 欄位 | 判讀 |
|---|---|
Host, SourcePath |
主機與登錄區。 |
ControlSet, IsCurrentControlSet |
針對 SYSTEM 記錄:控制集,以及它是否為 Windows 最後使用的控制集。 |
Source |
network_profile、network_signature(沒有任何設定檔對應的簽章)、network_card、interface、share、port_proxy、route。 |
ProfileName |
設定檔的名稱(Wi-Fi 網路的 SSID);簽章則為其描述。 |
Category, ConnectionType |
public、private、domain;wired、wireless、vpn、mobile_broadband(否則為數值)。 |
FirstConnectedUTC, LastConnectedUTC |
以 TimeZone 轉換為 UTC 的 DateCreated 與 DateLastConnected。 |
FirstConnectedLocal, LastConnectedLocal |
同上,但為原始值(當地時間,精確到毫秒)。 |
TimeZone |
轉換時所使用的時區。 |
GatewayMAC, DNS-Suffix |
設定檔簽章中的閘道 MAC 位址與 DNS 尾碼(多個時以 | 分隔)。 |
InterfaceGUID |
介面的 GUID;網路卡則為其 ServiceName。 |
IP-Address, DhcpServer, LeaseObtainedUTC, LeaseExpiresUTC |
介面使用中的位址、DHCP 伺服器與租約。 |
ShareName, SharePath |
共用及其所提供的資料夾。 |
ListenAddress, ListenPort, ConnectAddress, ConnectPort |
連接埠 Proxy:它在何處接聽以及轉送至何處。 |
Route |
依儲存格式表示的持續性路由:destination,netmask,gateway,metric。 |
Details |
其他值,以 Name=Value; …(CSV)或物件(JSON)表示:設定檔的描述、Managed、首次名稱與簽章機碼;介面的介面卡(來自 NetworkCards)、遮罩、閘道、DNS 伺服器與網域;共用的類型、備註與其他欄位;Proxy 的種類;路由的各個部分。 |
KeyPath, ValueName, KeyLastWrittenUTC |
機碼、共用/Proxy/路由所對應的值,以及機碼的最後寫入時間。 |
DataRaw |
無法解碼的位元組:不是有效 SYSTEMTIME 的時間、不是字串清單的共用。 |
TransactionLogStatus, LogsApplied |
登錄檔復原的脈絡。 |
Problems |
類型或大小錯誤的值、不可能的日期,以及不符合其格式的名稱。 |
調查策略¶
- 依
LastConnectedUTC排序設定檔,並檢查事件前後的網路:未知的 Wi-Fi 網路、行動熱點、VPN。 - 使用
GatewayMac與DnsSuffix區分同名的網路,並在 不同主機之間比對同一個網路。 - 檢查每一個連接埠 Proxy 與共用。指向內部主機 3389 或 445 的連接埠 Proxy,或
分享暫存資料夾(
C:\ProgramData、C:\Users\Public)的共用,都是調查線索。請與事件 記錄(netsh程序建立、5142/5144 共用事件)以及機碼時間交叉比對。 - 使用介面的位址與租約時間確認主機在網路上的位置,並與 防火牆、DHCP 及 Proxy 記錄比對。
- 使用
--all-control-sets與parse-registry read --recover-deleted找出已移除的共用、 Proxy 與設定檔。