花指令安全实验室
主攻AD域安全与免杀的红队公众号
大家好,这里是 花指令安全实验室 的第 10 篇文章,本公众号主攻AD域渗透与各种免杀姿势的研究,不定时更新!请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关!
如何应对面试官最喜欢问的域管与域控定位问题?今天给大家做个总结,无论是实战还是面试都能给各位有所帮助。
我们在内网渗透中,拿下一台跳板机后要对域内展开工作,不管它在不在域内,对域管与域控的精确定位重要性不言而喻,今天介绍通过命令行定位,借助工具定位,借助ldap协议定位,端口定位以及不再域内定位的各种思路。
net group "Domain Admins" /domain //查询域管理员
powerview集成在powersploit工具包中,是一个收集域信息很好用的脚本。
注意:通常情况下需要过滤,因为真实的域环境中会有大量结果。
// 更多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.exe -exec bypass -Command "& {Import-Module C:Userswin7DesktoptoolPowerView.ps1; Invoke-UserEvenHunter}"
还可以导入后过滤出域管:
Get-DomainUser|?{$_.memberof -like "*Domain Admins*"}
下载地址:
https://docs.microsoft.com/en-us/sysinternals/downloads/psloggedon
该工具通过检验注册表里HKEY_USERS的key值来查询谁登陆过机器,并且调用了NetSessionEnum API。
PS:该工具有些功能需要管理员权限。
PsLoggedon.exe Administrator (指定用户)
如图,枚举出了Administrator用户在那些机器登陆过
PsLoggedon.exe \AD-server (指定机器名)
如图,枚举出了正在AD-server这台机器上登录的用户。
它是用于查找Active Directory用户的登录位置、枚举域用户,以及查找在 特定计算机上登陆的用户,包括本地用户、通过RDP登陆的用户、用于运行服务和计划任务的用户。
下载地址:
https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
直接运行pvefinaduser.exe -current命令,即可显示域中所有计算机上当前登陆的所有用户
这个著名的域信息收集工具,不止用来查域管域控,他对整个域的拓扑都能以图形化的方式呈现。(使用方式自行百度)
如下图,通过该命令找到contoso.com域的两个域管
smb-enum-domains.nse对域控制器进行信息收集扫描,可以获取主机信息,用户,密码策略可以用的用户等
smb-enum-users.nse在进行域渗透的时候,有了域内某台主机的权限,但是权限有限,不能获取更多的域用户信息的时候,可以借助这个脚本对域控制器进行扫描
smb-enum-shares.nse遍历远程主机的共享目录
smb-enum-processes.nse通过smb对主机的系统进程进行遍历,通过这些信息,可以知道目标主机上运行软件信息,选择合适的漏洞或者规避防火墙以及杀毒软件。
smb-enum-sessions.nse通过smb获取域内主机的用户登录session,查看当前是否有用户登录,对于我们抓取用户hash以及避免同时登陆被用户发现。
smb-os-discovery.nse通过smb协议来收集目标主机的操作系统,计算机名,域名,全称域名,域林名称,NetBIOS机器名,NetBIOS域名,工作组,系统时间。
net group "Domain controllers" /Domain //查看域控制器
net time /domain
查询域时间设置(多半域控作为时间服务器)
该条命令是显示域控制器时间
nltest
使用一些系统工具,如 nltest
来获取域控制器,但你需要有一个用户。
nltest /dclist:tubai.local
PS C:UsersAnakin> nltest /dclist:tubai.local
Get list of DCs in domain 'tubai.local' from '\dc01.tubai.local'.
dc01.ADserver.local [PDC] [DS] Site: Default-First-Site-Name
dc02.ADserver.local [DS] Site: Default-First-Site-Name
The command completed successfully
若当前主机的dns为域内dns,可通过查询dns解析记录定位域控。
nslookup是一个命令行工具,它显示的信息可以用来诊断域名系统(DNS)的基础结构。
我们键入nslookup,然后Enter
键入set type=all,然后按Enter
键入_ldap._tcp.dc._msdcs.Domain_Name,其中Domain_Name为域名
nslookup -type=all ldap.tcp.dc._msdcs.tubai.com
03
域控制器兼顾整个域的认证服务,所以会开启很多认证端口。
如果你对一台机器进行了端口扫描,有一下端口开放情况的一定是个域控制器,这也是一种不在域内来定位域控的好方式。
$ nmap 192.168.100.2 -Pn -sV -p-
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times will be slower.
Starting Nmap 7.91 ( https://nmap.org ) at 2021-05-04 11:17 CEST
Nmap scan report for 192.168.100.2
Host is up (0.00068s latency).
Not shown: 65509 filtered ports
PORT STATE SERVICE VERSION
42/tcp open tcpwrapped
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2021-05-04 09:19:44Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: contoso.local0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
扫描出的53端口,为DNS服务端口,主要用于域名解析,通过DNS服务器可以实现域名与ip地址之间转换,一般在域控上,但也不一定,要看域控和DNS是不是在同服务器,不过一般都是。
389默认是LDAP协议端口,636端口与88端口他们都是域控机器开放的端口。
04
由于SPN本身就是正常的kerberos请求,所以扫描隐蔽,它不同于TCP与UDP常规端口扫描。大部分windows已经自带setspn.exe,且此操作无需管理权限。
在域内机器执行:
setspn -T tubai.com -Q /
在扫描出的结果中就可以根据
CN=AD-SERVER,OU=Domain Controllers,DC=tubai,DC=com
来进行域控的定位。此时已经查询出域控机器。
此外,还可以利用nbtscan来定位域控,他与端口探测都是机器不在域内定位的好方式,它使用netbios协议扫描本地或远程 TCP/IP 网络上的开放 NetBIOS 名称服务器
C:Usersdaniel10>nbtscan.exe 192.168.7.0/24
192.168.7.1 DP
192.168.7.7 tubaiDC SHARING DC
192.168.7.107 tubaikeke SHARING
*timeout (normal end of scan)
总结:
域控域控定位方式有很多,这也是内网横向信息收集的重要一环,本篇文章为大家总结了多种定位方式,无论是实战中应用,还是面试都能给各位带来帮助。巨多的面试官都喜欢问定位域管域控问题,收藏此文可以bypass面试官。
【往期推荐】
【超详细 | Python】CS免杀-Shellcode Loader原理(python)
【超详细 | 钟馗之眼】ZoomEye-python命令行的使用
【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现
【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现
【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现
【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞
【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现
【奇淫巧技】如何成为一个合格的“FOFA”工程师
【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】
走过路过的大佬们留个关注再走呗
往期文章有彩蛋哦
一如既往的学习,一如既往的整理,一如即往的分享。
“如侵权请私聊公众号删文”
本文始发于微信公众号(渗透Xiao白帽):【内网渗透】域管与域控定位思路合集
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论