域管理員定位概述
在一個域中,當計算機加入域后,會默認給域管理員賦予本地系統管理員權限。因此,域管理員均可以訪問本地計算機,且具備完全控制權限。
定位域內管理員的兩種渠道:日志和會話。
日志是指本地機器的管理員日志,可以使用腳本或Wevtutil工具導出並查看。
會話是指域內每台機器的登陸會話,可以使用netsess.exe或PowerView等工具查詢(可以匿名查詢,不需要權限)。
psloggedon.exe
通過檢驗注冊表里HKEY_USERS的key值來查詢誰登陸過機器,同樣也調用到了NetSessionEnum API。
PS:該工具的某些功能需要管理員權限
下載地址:https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
參數 | 描述 |
---|---|
- | 顯示支持的選項和用於輸出值的度量單位 |
-l | 僅顯示本地登錄,而不顯示本地和網絡資源登錄 |
-x | 不顯示登錄時間 |
\computername | 指定要為其列出登錄信息的計算機的名稱 |
username | 指定用戶名,在網絡中搜索該用戶登陸的計算機 |
C:\Users\Riy\Desktop\PSTools>PsLoggedon.exe
PsLoggedon v1.35 - See who's logged on
Copyright (C) 2000-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Users logged on locally:
2020/4/20 0:15:48 WIN-9H5Q3M1HLEH\Riy
No one is logged on via resource shares.
PVEFindADUser.exe
用於查找Active Directory用戶的登錄位置、枚舉域用戶,以及查找在特定計算機上登陸的用戶,包括本地用戶、通過RDP登陸的用戶、用於運行服務和計划任務的用戶。
運行該工具需要配置 .NET Framework 2.0 環境,並且需要具有管理員權限。
下載地址:https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
參數 | 描述 |
---|---|
-h | 顯示幫助信息 |
-u | 檢測程序是否有新版本 |
-current ["username"] | -current參數顯示每台PC上當前登錄的用戶在域中。如果指定用戶名(在引號之間),則僅將顯示該特定用戶登錄的PC |
-noping | 阻止嘗試枚舉用戶登錄名之前對目標計算機執行ping命令 |
-target | 此可選參數允許您指定要查詢的主機。如果未指定此-target參數,則將查詢當前域中的所有主機。如果決定指定-target,然后指定以逗號分隔的主機名。查詢結果將被輸出到report.csv文件中 |
C:\Users\Riy\Desktop>PVEFindADUser.exe -current
-----------------------------------------
PVE Find AD Users
Peter Van Eeckhoutte
(c) 2009 - http://www.corelan.be:8800
Version : 1.0.0.12
-----------------------------------------
[+] Finding currently logged on users ? true
[+] Finding last logged on users ? false
[+] Enumerating all computers...
[!] Error connecting to AD and enumerating computers
Error : 指定的域不存在,或無法聯系。
netview.exe
Netview是枚舉工具,使用WinAPI枚舉系統,利用NetSessionEnum找尋登陸會話,利用NetShareEnum找尋共享,利用NetWkstaUserEnum枚舉登陸用戶。同時,netview.exe能夠查詢共享入口和有價值的用戶。netview.exe的絕大多數功能不需要管理員權限。
下載地址:https://github.com/mubix/netview
參數 | 描述 |
---|---|
-h | 顯示幫助菜單 |
-f filename.txt | 指定一個文件從中提取主機列表 |
-e filename.txt | 指定要排除的主機名文件 |
-o filename.txt | 將所有輸出重定向到指定文件 |
-d domain | 指定要提取主機列表的域,如果未指定,則使用當前域 |
-g group | 指定用於用戶搜尋的組名,如果未指定,則使用“域管理員” |
-c | 檢查找到的共享目錄/文件,以進行讀取訪問 |
-i interval | 設置枚舉主機之間等待的秒數 |
-j jitter | 應用於間隔的抖動百分比(0 -1.0) |
C:\Users\Riy\Desktop>netview.exe
Netviewer Help
--------------------------------------------------------------------
-d domain : Specifies a domain to pull a list of hosts from
uses current domain if none specifed
-f filename.txt : Speficies a file to pull a list of hosts from
-o filename.txt : Out to file instead of STDOUT
Nmap的NSE腳本
如果存在域賬戶或者本地賬戶,就可以使用Nmap的smb-enum-sessions.nse引擎獲取遠程機器的登陸會話(不需要管理員權限)。
下載地址:https://nmap.org/nsedoc/scripts/smb-enum-sessions.html
腳本 | 描述 |
---|---|
smb-enum-domains | 嘗試枚舉系統上的域及其策略 |
smb-enum-users | 枚舉遠程Windows系統上的用戶,並提供盡可能多的信息 |
smb-enum-shares | 便利遠程主機共享目錄 |
smb-enum-processes | 通過SMB從遠程服務器提取進程列表,可以知道目標主機運行哪些軟件。需要管理員權限 |
smb-enum-sessions | 枚舉在本地或通過SMB共享登錄到系統的用戶 |
smb-os-discovery | 嘗試通過SMB協議(端口445或139)確定操作系統,計算機名稱,域,工作組和當前時間。 |
C:\Users\Riy\Desktop>nmap --script=smb-enum-sessions 192.168.1.1
Starting Nmap 7.70 ( https://nmap.org ) at 2020-04-20 11:12 ?D1ú±ê×?ê±??
Nmap scan report for 192.168.1.110
Host is up (0.0031s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49156/tcp open unknown
49159/tcp open unknown
MAC Address: 00:0C:29:58:33:FA (VMware)
Nmap done: 1 IP address (1 host up) scanned in 4.67 seconds
PowerView腳本
powerView.ps1是一款依賴powershell和wmi對內網進行查詢的常用滲透測試腳本,集成在powersploit工具包中,是一個收集域信息很好用的腳本。
下載地址:https://github.com/PowerShellEmpire/PowerTools/tree/master/PowerView
// Import-Module為powershell導入腳本命令,這里假設我們下載的powerview.ps1腳本在C:\PowerView.ps1
命令格式:powershell.exe -exec bypass -Command "& {Import-Module C:\PowerView.ps1; powerview的命令參數}"
// 定位域管理員
powershell.exe -exec bypass -Command "& {Import-Module C:\PowerView.ps1; Invoke-UserHunter}"
// 更多PowerView命令參數
Get-NetDomain: 獲取當前用戶所在域的名稱
Get-NetUser: 獲取所有用戶的詳細信息
Get-NetDomainController: 獲取所有域控制器的信息
Get-NetComputer: 獲取域內所有機器的詳細信息
Get-NetOU: 獲取域中的OU信息
Get-NetGroup: 獲取所有域內組和組成員信息
Get-NetFileServer: 根據SPN獲取當前域使用的文件服務器信息
Get-NetShare: 獲取當前域內所有網絡共享信息
Get-NetSession: 獲取指定服務器的會話
Get-NetRDPSession: 獲取指定服務器的遠程連接
Get-NetProcess: 獲取遠程主機的進程
Get-UserEvent: 獲取指定用戶的日志
Get-ADObiect: 獲取活動目錄的對象
Get-NetGPO: 獲取域內所有的組策略對象
Get-DomainPolicy: 獲取域默認策略或域控制器策略
Invoke-UserHunter: 獲取域用戶登錄的計算機信息及該用戶是否有本地管理員權限
Invoke-ProcessHunter: 通過查詢域內所有的機器進程找到特定用戶
Invoke-UserEvenHunter: 根據用戶日志查詢某域用戶登錄過哪些域機器。
Powershell的基礎介紹和使用可查看:https://www.cnblogs.com/riyir/p/12585928.html
Empire的user_hunter模塊
注意:該項目不再受支持
下載地址:https://github.com/EmpireProject/Empire
// Empire安裝使用
wget https://raw.githubusercontent.com/backlion/demo/master/Empire-master.zip
unzip Empire-master.zip
cd Empire-master
cd setup/
./install.sh
cd Empire-master
./empire
筆者在安裝Empire時一直報錯,后期解決再回來補坑......