域内资源探测

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

✅作者简介CSDN内容合伙人、信息安全专业在校大学生🏆
🔥系列专栏 内网安全
📃新人博主 欢迎点赞收藏关注会回访
💬舞台再大你不上台永远是个观众。平台再好你不参与永远是局外人。能力再大你不行动只能看别人成功没有人会关心你付出过多少努力撑得累不累摔得痛不痛他们只会看你最后站在什么位置然后羡慕或鄙夷。


文章目录

判断是否存在域环境

net config workstation
查看当前工作站的信息包括当前计算机名、用户名、系统版本、工作站、登录的域等信息。

一、收集域内基础信息

1.查询域

net view /domain

2.查询此域内所有计算机

net view /domain:XXX域名

3.查询域内所有用户组列表

net group /domain

4.查询所有域成员计算机列表

net group "``domain computers``" /domain

5.获取域密码信息

net accounts /domain

6.获取域信任信息

nltest /domain_trusts

二、查找域控制器

1.查看域内控制器的机器名

nltest /DCLIST:XXX

2.查看域控制器的主机名

Nslookup -type=SRV _ldap._tcp

3.查看当前时间

net time /domain

4.查看域控制器组

真实环境中一般存在两台或两台以上的域控制器其目的是一旦主域控制器发生故障备用的域控制器可以使域内服务验证正常进行。
net group "Domain Controllers" /domain
netdom query pdc

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

1.查询所有域用户列表

向域控制器进行查询

`net user /domain`

获取域内用户详细信息

`wmic useraccount get /all`

查看存在的用户

`dsquery user`

查询域内置本地管理员组用户

`net localgroup administrators /domain`

2.查询域管理员用户组

查询域管理员用户

`net group “domain admins” /domain`

查询管理员用户组
`
net group “Enterprise Admins” /domain`

四、定位域管理员

   内网渗透测试与常规的渗透测试是截然不同的。内网渗透测试的需求是拿到内网中特定用户或特定机器的权限进而获得特定资源完成内网渗透测试任务。在通常的网络环境里内网中部署了大量的网络安全设备如 IDS、IPS、日志审计、安全网关、反病毒软件等。所以在域网络攻击测试场景中如果渗透测试人员获取了域内的一个支点为了实现对域网络的整体控制渗透测试人员就需要获取域管理员权限。

常用域管理员定位工具

   psloggedon.exe 可以显示本地登录的用户和通过本地计算机或远程计算机的资源登录的用户。如果指定了用户名而不是计算机psloggedon.exe 会搜索网络邻居中的计算机并显示该用户当前是否已登录其原理是通过检 验注册表里HKEY_USERS 项的 key 值来查询谁登录过机器同样调用了 NetSessionEnumAPI某些功能需要拥有管理员权限才能使用。
psloggedon [-] [-l] [-x] [\\computername|username]
-显示支持的选项和用于输出值的单位。
-l仅显示本地登录不显示本地和网络资源登录。
-x不显示登录时间。
\\computername指定要列出登录信息的计算机的名称。
Username指定用户名在网络中搜索该用户登录的计算机。
   pveFindADUser.exe 可用于查找 Active Directory 用户登录的位置枚举域用户以及查找在特定计算机上登录的用户包括本地用户、通过 RDP 登录的用户、用于运行服务和计划任务的用户账户。[运行该工具的计算机需要具有.NET](http://xn--h6qa856gr9i7gt25f29hpp0avncmwhjva898axqx.NET) Framework 2.0并且需要具有管理员权限。
pveFindADUser.exe <参数>
-h显示帮助。
-u检查是否有更新版本的实用程序。
-current [''username'']如果仅指定了-current 参数将获取所有目标计算机上当前登录的所有用户。如果指定了用户名DOMAIN\Username则显示该用户登录的计算机。
-last [''username'']如果仅指定了-last 参数将获取目标计算机上的最后一个登录用户。如果指定了用户名DOMAIN\Username则显示具有此用户账户作为上次登录的计算机。根据网络的策略可能会隐藏最后一个登录用户名且该工具可能无法得到该用户名。
-noping阻止该工具在尝试获取用户登录信息之前对目标计算机执行 ping 命令。
-target可选参数用于指定要查询的主机。如果未指定此参数将查询当前域中的所有主机。如果指定此参数则后跟一个由逗号分隔的主机名列表。

netview.exe 是一个枚举工具使用 WinAPI 枚举系统利用 NetSessionEnum 找寻登录会话利用 NetShareEnum 找寻共享利用 NetWkstaUserEnum 枚举登录的用户。同时netview.exe 能够查询共享入口和有价值用户。netview.exe 的绝大部分功能不需要管理员权限即可执行

netview.exe <参数>
 -h显示帮助菜单。
 -f filename.txt指定从中提取主机列表的文件。
 -e filename.txt指定要排除的主机名文件。
 -o filename.txt将所有输出重定向到文件。
 -d domain指定从中提取主机列表的域。如果没有指定则使用当前域。
 -g group指定用户搜寻的组名。如果没有指定则使用 Domain Admins。
 -c检查对已找到共享的访问权限。

如果有域账户或者本地账户就可以使用 Nmap 的 smb-enum-sessions.nse 引擎来获取远程机器的登录会话并且不需要管理员权限

smb-enum-domains.nse对域控制器进行信息收集可以获取主机信息、用户、密码策略可以使用的用户等。
smb-enum-users.nse在进行域渗透测试的时候如果获取了域内某台主机的权限但是权限有限不能获取更多的域用户信息就可以借助这个脚本对域控制器进行扫描。
smb-enum-shares.nse遍历远程主机的共享目录。
smb-enum-processes.nse对主机的系统进程进行遍历。通过这些信息可以知道目标主机上运行软件信息选择合适的漏洞或者规避防火墙及杀毒软件。
smb-enum-sessions.nse获取域内主机的用户登录会话查看当前是否有用户登录。
smb-os-discovery.nse收集目标主机的操作系统、计算机名、域名、全称域名、域林名称、NetBIOS 机器名、NetBIOS 域名、工作组、系统时间。

PowerView 是一款 PowerShell 脚本里面有一些功能可以辅助找寻定位关键用户

Invoke-StealthUserHunter 只需要一次查询就可以获取域内的所有用户。从user.HomeDirectories 中提取所有用户并对每个服务器进行 Get-NetSessions 获取。因为不需要使用 Invoke-UserHunter 对每台机器进行操作所以这个方法的隐蔽性相对较高但涉及的机器面不一定完整。默认使用 Invoke-StealthUserHunter如果找不到需要的信息就接着使用 Invoke-UserHunter 方法。
Invoke-UserHunter找到域内特定的用户群。它接收用户名、用户列表或域组查询并接收一个主机列表或查询可用的主机域名。它会使用 Get-NetSessions 和 Get-NetLoggedon调用 NetSessionEnum 和 NetWkstaUserEnum API扫描每个服务器而且会比较结果筛选出目标用户集。使用这个工具是不需要管理员权限的。在本地绕过执行该脚本如图 2-72所示。

Empire 下的 user_hunter 模块;在 Empire 下也存在类似 Invoke-UserHunter 的模块——user_hunter这个模块就是用来查找域管理员登录的机器的。

使用 usemodule situational_awareness/network/powerview/user_hunter 模块可以清楚地看到哪个用户登录了哪台主机。

五、查找域管理进程

1.本机检查

1. 获取域管理员列表
   net group "Domain Admins" /domain
2.列出本机所有进程及进程用户
   Tasklist /v
3.寻找是否有进程所有者为域管理员的进程

2. 查询域控制器的域用户会话

查询域控制器的域用户会话其原理是在域控制器中查询域用户会话列表并将其与域管理员列表交叉引用从而找出域管理会话的系统列表。

1.查询域控制器列表
   net group "Domain Controllers" /domain
2.收集域管理员列表
   net group "Domain Admins" /domain
3.收集所有活动域会话列表
   Netsess.exe –h
4.交叉引用域管理员列表与活动会话列表
   将域控制器列表添加到 dcs.txt 中将域管理员列表添加到 admins.txt 中并和 netsess.exe 放在同一个目录下。运行如下脚本后会在当前目录下生成一个 sessions.txt 文本文件
   FOR /F %i in (dcs.txt) do @echo [+] Querying DC %i && @netsess -h %i 2>nul > sessions.txt && FOR /F %a in (admins.txt) DO @type sessions.txt | @findstr/I %a
5. 其他脚本下载
    [GDA](https://github.com/nullbind/Other-Projects/tree/master/GDA)

3. 扫描远程系统上运行的任务

如果渗透目标在域系统上使用共享本地管理员账户运行后可以用下列脚本来扫描系统中的域管理任务。

同样首先从“域管理员”组中收集域管理员的列表。
net group "Domain Admins" /domain
然后使用下列脚本其中 ips.txt 填入目标域系统的列表在 names.txt 填入收集来的域管理员的列表。
FOR /F %i in (ips.txt) DO @echo [+] %i && @tasklist /V /S %i /U user /P password 2>NUL > output.txt && FOR /F %n in (names.txt) DO @type output.txt | findstr %n > NUL && echo [!] %n was found running a process on %i && pause

4. 扫描远程系统上 NetBIOS 信息

在一些 Windows 系统中允许用户通过 NetBIOS 查询已登录用户。下面这个 Windows 命令行脚本将扫描远程系统活跃域管理会话。

同样先收集域管理员列表然后将目标域系统列表添加到 ips.txt 文件中将收集到的域管理员列表添加到 admins.txt 文件中并置于同一目录下.
for /F %i in (ips.txt) do @echo [+] Checking %i && nbtstat -A %i 2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i
这里也可以使用 nbtscan 工具。先收集域管理员列表然后将目标域系统列表添加到ips.txt 文件中将收集到的域管理员列表添加到 admins.txt 文件中和 nbtscan 工具置于同一目录下.
for /F %i in (ips.txt) do @echo [+] Checking %i && nbtscan -f %i 2>NUL >nbsessions.txt && FOR /F %n in (admins.txt) DO @type nbsessions.txt | findstr /I %n > NUL && echo [!] %n was found logged into %i

5. 利用PowerShell 收集域信息

PowerView 是一款依赖 PowerShell 和 WMI 对内网域情况进行查询的常用渗透脚本。PowerView 集成在 PowerSploit 工具包中。

通过以下命令收集域信息

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-ADObject获取活动目录的对象信息。
Get-NetGPO获取域所有组策略对象。
Get-DomainPolicy获取域默认或域控制器策略。
Invoke-UserHunter用于获取域用户登录计算机及该用户是否有本地管理权限。
Invoke-ProcessHunter查找域内所有机器进程用于找到某特定用户。
Invoke-UserEventHunter根据用户日志获取某域用户登录过哪些域机器。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6