一流的营销型网站建设如何做好企业网站
-
域控机器账户:WIN-0V0GAORDC17
-
域控 ip:192.168.72.163
-
域内攻击者机器 ip:192.168.72.158,host:WIN10-01
-
攻击者 kali 机器 ip:192.168.72.162
横向或拿下域控的时候,要精确定位当前某些用户在哪台机器登录。
注册表查询
使用普通与用户枚举域内服务器当前登录的用户。
原理:
当用户登陆了某台主机,在该主机的 HKEY_USERS 注册表中会有该用户的文件夹,我们通过远程连接此主机,查看这台主机的注册表,就能得到此主机正在登陆的用户。
使用 adfind 查询此 SID 的用户:
AdFind.exe -f "objectSid=" -dn
查询此主机的注册表可以使用 api 来实现,但要注意以下三点:
-
默认 PC 机器是没有开启注册表远程连接的,因此 PC 机器无法查询当前登录的用户。
-
默认服务器开启了注册表远程连接,因此服务器可以查询当前登录的用户。
-
域内任何用户,即使配置了不能本地 RDP 登录域内机器 A,但是只要域内机器 A 开启了远程注册表连接,我们就可以通过 API 查询机器 A 的注册表,查询正在登陆的用户。
工具:
-
Psloggedon.exe
-
PVEFindADUser.exe
Psloggedon.exe(能查询出目标主机通过资源共享远程登录的用户)
查询本地登录的用户:
PsLoggedon.exe /accepteula \\
查询指定主机登录的用户:
在域中,仅需要一个普通域用户权限,就可枚举出域内所有服务器(包括域控)当前的登录用户,但是 PC 机器没开启远程注册表连接,而服务器开启了,所以默认情况下,只能对服务器进行当前登录用户的查询,查询命令如下: # 查询域控当前登录的用户 PsLoggedon.exe /accepteula \\WIN-0V0GAORDC17
当查询服务器时,可能还会查询出目标主机通过资源共享远程登录的用户,因为这个接口是通过NetSessionEnum API 来枚举网络会话的,需要先登录才能枚举该网络会话。
PVEFindADUser
通过检查注册表 HKEY_USERS 项的 Key 值来确定目标主机当前登录的用户(此工具运行不需要域管理员权限,只需要普通域用户即可)。
查询所有主机当前登录用户:
查询结果将被输出到 report.csv 文件中 # 查询域中所有机器当前登录的用户 PVEFindADUser.exe -current # 查询域中所有机器当前登录的用户,不通过 ping 检测目标机器是否开启 PVEFindADUser.exe -current -noping # 查询域中所有机器当前登录的用户,不通过 ping 检测目标机器是否开启,并且将主机的操作系统写入 report.csv 文件 PVEFindADUser.exe -current -noping -os
查询指定主机当前的登录用户:
# 查询目标主机当前登录的用户 PVEFindADUser.exe -current -target 192.168.72.163
查询指定用户当前登录的主机:
# 查询 HACKER\deandean 用户当前登录的主机 PVEFindADUser.exe -current HACKER\deandean -noping # 查询 HACKER\deandean 用户当前登录的主机,找到了一个即停止寻找 PVEFindADUser.exe -current HACKER\deandean -noping -stopfound
域控日志查询
获取到域控权限的时候,想要定位特定用户登录的主机,此时可以从域控制器上导出登录日志来进行查询,域内用户登录域内主机的时候,要经过域控制器的认证,因此在域控制器上会有相应的登录日志。该登录日志的事件ID 为 4624,登录类型为 3
-
wevtutil
wevtutil 来过滤事件 ID 为 4624,登录类型为 3 的日志:
wevtutil epl Security C:\Users\Administrator\Desktop\1.evtx /q:"*[System[(EventID=4624)] and EventData[Data[@Name='LogonType']='3']]执行完该命令后会生成 1.evtx 文件
-
LogParser.exe
LogParser.exe 工具执行如下命令来解析 1.evtx 日志文件内容
LogParser.exe -i:EVT -o:CSV "SELECT TO_UPPERCASE(EXTRACT_TOKEN(Strings,5,'|')) as USERNAME,TO_UPPERCASE(EXTRACT_TOKEN(Strings,18,'|')) as SOURCE_IP FROM 1.evtx" >log.csv# USERNAME, SOURCE_IP
-
Bash命令
#查询 administrator 用户登录过的主机 cat log.csv | grep ADMINISTRATOR | sort | uniq#查询 deandean 用户登录过的主机 cat log.csv | grep DEANDEAN | sort | uniq
SharpADUserIP
这是一款使用 C#语言写的用于从域控制器上提取出登录日志的工具,然后对结果进行过滤去重。该工具支持查询域控上 1-365 天内的登录日志,使用时直接指定天数即可。如下,在域控上运行该工具查询 7 天内域内的登录日志信息
SharpADUserIP.exe 7