内网基础-定位域管理员

admin 2021年3月18日02:17:20评论267 views字数 3246阅读10分49秒阅读模式

点击蓝字关注我哦


前言

在域渗透中,需要对有目的性的渗透,快速控制一个域最快的办法(不包括直接利用提升为域管的漏洞)就是拿到域管理员的hash,然后对域控进行dcsync,拿到域内所有成员的hash,那么我们如何定位域管理员在哪台机器上登录过?


当然窃取凭据域管理员进程也是一个不错的选择!

    1.通过net group "domain admins" /domain 列出域管理员组成员

    2.通过tasklist /v 列出本地进程的所有者

    3.进行交叉处理,找到域管理进程


通过域搭建的原理来看,在机器加入域之后,域管理员组成员会自动加入到本地的管理员组。

定位域管理员的常规渠道:

    1.日志(本地管理员日志)

    2.会话(域内每台机器的登陆回话)



常用工具


psloggedon.exe 


这是微软的自带的pstool工具包的一个非常实用的工具,其原理为检查注册表HKey_USER项的key来查询,会调用NetSession api,所以有些功能需要管理员权限。

命令:

psloggedon 要列出登陆信息的机器名或者用户名#如果没有填 则默认为本地如果指定用户名,则会搜索次用户登陆过哪些机器
描述

显示支持的选项和用于输出值的度量单位 
-l 仅显示本地登录,而不显示本地和网络资源登录
-x 不显示登录时间
computername 指定要为其列出登录信息的计算机的名称
username 指定用户名,在网络中搜索该用户登陆的计算机 

配合net localgroup administrators 找到域管登陆过的机器


PVEFindaduser.exe

用于查找AD用户的登录位置、枚举域用户,以及查找在特定计算机上登陆的用户,包括本地用户、通过RDP登陆的用户、用于运行服务和计划任务的用户。
命令:
PVEFindADUser.exe -current#将获取域内所有计算机上当前登陆的所有用户结果保存到report.csv文件


参数 描述
-last 将获取目标计算机的最后一个登陆用户
-target 指定要查询的计算机
-current ["username"] -current参数显示每台PC上当前登录的用户在域中。如果指定用户名(在引号之间),则仅将显示该特定用户登录的PC
-noping 阻止尝试枚举用户登录名之前对目标计算机执行ping命令


netview.exe


netview.exe是一个枚举工具,使用WinAPI枚举系统,利用NetSessionEnum找寻登录会话,利用NetShareEnum找寻共享,利用NetWkstaUserEnum枚举登录的用户,netview.exe还可以查询共享入口和有价值的用户。
netview.exe <参数>

  

-h 显示帮助信息
-f filename.txt:指定要提取主机列表的文件
-e
filename.txt:指定要排除的主机名的文件
-o filename.txt:将所有输出重定向到指定的文件
-d filename.txt:指定要提取主机列表的域。如果没有指定,则从当前域中提取主机列表
-g group:指定搜索的组名。如果没有指定,则在Domain Admins组中搜索
-c 对已找到的共享目录/文件的访问权限进行检查


nmap 脚本

可以使用nmap的smb-enum-sessions.nse引擎获取远程主机的登陆会话(不需要管理员权限)


其他域渗透脚本:

1.smb-enum-domains.nse:对域控制器进行信息收集,可以获取主机信息、用户、可使用密码策略的用户等

2.smb-enum-users.nse:在进行域渗透时,如获取了域内某台主机权限,但权限有限,无法获取更多的域用户信息,可借助此脚本对域控制器进行扫描

3.smb-enum-shares.nse:遍历远程主机的共享目录

4.smb-enum-processes.nse:对主机的系统进程进行遍历,通过此信息,可知道目标主机运行着哪些软件

5.smb-enum-sessions.nse:获取域内主机的用户登陆会话,查看当前是否有用户登陆

6.smb-enum-discovery.nse:收集目标主机的操作系统、计算机名、域名、域林名称、NetBIOS机器名、NetBIOS域名、工作组、系统时间等信息



Powerview脚本


主要涉及到定位关键用户的功能如下两个模块:

 Invoke-StealthUserHunter:只需要进行一次查询,就可以获取域里面的所有用户,使用方法为,从user.HomeDirectories中提取所有用户,并对没太服务器进行Get-NetSession获取。因不需要使用Invoke-UserHunter对没太机器进行操作,所以这个方法的隐蔽性相对较高(但涉及的机器不一定全面)。PowerView默认使用Invoke-StealthUserHunter如果找不到需要的信息,就使用Invoke-UserHunter
Invoke-UserHunter:找到域内特定的用户群,接受用户名、用户了表和域组查询,接收一个主机列表或查询可用的主机域名。可以使用Get-NetSession和Get-NetLoggedon(调用NetSessionEnum和NetWkstaUserEnumAPI)扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,在使用时不需要管理员权限,在本地执行该脚本

Empire 模块


Empire 模块中也有功能和invoke-userhunter一样的模块,user_hunter,Empire我平时也不咋用,可能是我太菜了,还得反弹shell到Empire属实有点麻烦,了解了解就行。


实际的域里面,大规模的枚举是会惊动ids等防护设备的

介绍完工具再来说说手动:


手工配合Netsess筛选数据


首先收集域控列表:

net group “Domain Controllers” /domainNslookup –type=SRV _ldap._tcp。。。。。。。。

收集域管列表

net group “Domain Admins” /domain


通过Netsess.exe查询每个域控制器,收集所有活动域会话的列表

Netsess.exe -help #获取帮助

  • -full Full session info (requires admin) 

  • -h servername Alternate method to specify server 

  • -u username Username to filter for 

  • -c client name Alternate method to specify client name

cmd联合命令:

FOR /F %i in (dc.txt) do @echo [+] Querying DC %i && @netsess -h %i 2>nul > sessions.txt && FOR /F %a in (domain_admins.txt) DO @type sessions.txt | @findstr /I %a


Dc.txt为收集的域控制器列表,domain_admins.txt为收集的域管列表


Get-NetLocalGroupMember 枚举远程计算机本地组


安装Recon模块

Set-ExecutionPolicy -ExecutionPolicy Bypassimport-module .Recon.psd1

指定远程计算机,指定枚举管理员组

Get-NetLocalGroupMember -ComputerName 主机名 -GroupName administrators



内网基础-定位域管理员

END

内网基础-定位域管理员


内网基础-定位域管理员


看完记得点赞,关注哟,爱您!


请严格遵守网络安全法相关条例!此分享主要用于学习,切勿走上违法犯罪的不归路,一切后果自付!



关注此公众号,回复"Gamma"关键字免费领取一套网络安全视频以及相关书籍,公众号内还有收集的常用工具!

在看你就赞赞我!
内网基础-定位域管理员

内网基础-定位域管理员
内网基础-定位域管理员
内网基础-定位域管理员
扫码关注我们
内网基础-定位域管理员


扫码领hacker资料,常用工具,以及各种福利


内网基础-定位域管理员

转载是一种动力 分享是一种美德

   

本文始发于微信公众号(Gamma实验室):内网基础-定位域管理员

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年3月18日02:17:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内网基础-定位域管理员http://cn-sec.com/archives/294334.html

发表评论

匿名网友 填写信息