跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技巧——获取Windows系统远程桌面连接历史


风尘剑心

推荐的帖子

0x00 前言

在渗透测试中,远程桌面连接的历史是不可忽略的,根据历史往往可以定位到关键服务器。

前几天有一篇关于如何清除记录的文章,所以这篇文章将介绍如何导出历史记录。

记录的文章地址如下:

http://woshub.com/how-to-clear-rdp-connections-history/#h2_3

最初的假设是可以通过枚举注册表来实现。但是深入研究发现,如果想要获取所有用户的历史记录,就需要获取用户的NTUSER。DAT文件,通过注册表加载hive,导入用户配置信息,然后枚举。

0x01 简介

本文将介绍以下内容:

关于获取史料的思考

导出已登录用户的历史记录。

导出所有用户的历史记录

两种方法的实现思路和脚本编写细节。

0x02 获得远程桌面连接历史记录的思路

1、获得当前用户的历史记录:

枚举注册表项hkcu:\ software \ Microsoft \ terminal server client \ servers

每个注册表项存储连接的服务器地址,键值UsernameHint对应于登录用户名。

如下图

2-1.png

2、获得已登录用户的历史记录:

登录用户的注册表信息会同步保存在HKEY _用户\SID下,SID要对应每个用户的SID。

目前,系统以两个子项目登录两个用户,如下图所示。

2-2.png

注:

HKEY _用户只包含默认用户设置和已登录用户的信息,用户未登录时用户设置不可用。

也就是说,如果当前有两个用户登录,那么这两个用户的注册表信息都将保存在HKEY _用户\SID下。如果第三个用户没有登录,则无法直接获取该用户的注册表信息,也无法导出该用户的远程桌面连接历史。

因此,通过枚举注册表项HKEY _用户\ SID \软件\微软\终端服务器客户端\服务器,可以获得已登录用户的远程桌面连接历史。

3、获得所有用户的历史记录:

对于未注册的用户,无法直接获取注册表配置信息,可以通过加载hive来解决。

选择HKEY _用户,文件加载配置单元,如下图所示

2-3.png

打开用户的NTUSER。路径为C:\ Documents and Settings \ username \ \ ntuser . DAT的DAT文件。

然后在key用户下指定一个键名来读取该用户的注册表配置信息,如下图所示。

2-4.png

注:

删除此项需要通过卸载配置单元来清除。

因此,如果您想要获得所有用户的远程桌面连接的历史,您需要首先枚举注册表项HKEY _用户\SID。对于未登录的用户,需要加载相应的NTUSER。DAT文件,再次枚举以获取完整的记录,最后卸载相应的注册表项。

补充:

通过命令行加载配置单元的实例:

reg load HKEY _用户\ S-1-5-21-1170783345-3748964848-1387080272-1003 C:\文档和设置\ c \用户。数据;数字录音带

通过命令行卸载配置单元实例:

注册卸载HKEY _用户\ S-1-5-21-1170783345-3748964848-1387080272-1003

0x03 powershell实现细节

1、获得当前用户的历史记录

位置:HKEY当前用户软件微软终端服务器客户端服务器

在注册表项下指定子项:

dir 'Registry:HKEY当前用户\软件\微软\终端服务器客户端\服务器'-Name

指定查询注册表项的注册表项值:

(Get-item property-Path ' Registry:HKEY _当前_用户\软件\微软\终端服务器客户端\服务器\192.168.62.137 ')。用户名提示

加入foreach循环实现枚举:

$RegPath='Registry:HKEY当前用户\软件\ Microsoft \终端服务器客户端\服务器'

$QueryPath=dir $RegPath -Name

foreach($Name in $QueryPath)

{

(Get-item property-Path $ RegPath $ Name)。用户名提示

}

捕捉异常,不输出错误信息,如果找不到注册表项,就无法得到返回。

完整脚本:

$RegPath='Registry:HKEY当前用户\软件\ Microsoft \终端服务器客户端\服务器'

$QueryPath=dir $RegPath -Name

foreach($Name in $QueryPath)

{

尝试

{

$ User=(Get-item property-Path $ RegPath $ Name-error action Stop)。用户名提示

“写主机”服务器:“$Name

“写主机”用户:“$ User”` n”

}

捕捉

{

写主机"没有RDP连接历史"

}

}

2、获得已登录用户的历史记录

位置:HKEY _用户\ SID \软件\微软\终端服务器客户端\服务器

注:

(同突发球形扰动)电离层的突然骚扰对应每个用户的(同突发球形扰动)电离层的突然骚扰

首先需要枚举所有用户(同突发球形扰动)电离层的突然骚扰

powershell:

get-wmio object-Class Win32 _ user帐户

wmi:

wmic/NAMESPACE:"\ \ root \ CIM v2 "路径Win32 _用户帐户GET/all/FORMAT:list

枚举用户名及其对应的希德:

$ all user=Get-wmio object-Class Win32 _ user帐户

foreach($User in $AllUser)

{

写主机$用户.名称':' $用户。(同突发球形扰动)电离层的突然骚扰

}

将以上脚本结合,先枚举用户的希德,查询对应HKEY _用户下的注册表项,再次枚举注册表键值项,获得完整结果:

(需要管理员权限)

$ all user=Get-wmio object-Class Win32 _ user帐户

foreach($User in $AllUser)

{

$RegPath='Registry:HKEY用户$用户.希德\软件\微软\终端服务器客户端\服务器'

"写主机"用户:" $User " .名字

写主机的SID:“$用户”.(同突发球形扰动)电离层的突然骚扰

"写入主机"状态:" $User " .状态

尝试

{

$ query path=dir $ RegPath-Name-error操作停止

}

捕捉

{

写主机"没有RDP连接历史"

写主机'-'

继续

}

foreach($Name in $QueryPath)

{

尝试

{

$ User=(Get-item property-Path $ RegPath $ Name-error action Stop).用户名提示

"写主机"服务器:" $Name

"写主机"用户:" $用户

}

捕捉

{

写主机"没有RDP连接历史"

}

}

写主机'-'

}

注:

$用户。状态表示帐户状态,通过get-wmio object-Class Win32 _ user帐户无法直接查询到,可通过wmi命令获取:

wmic/NAMESPACE:"\ \ root \ CIM v2 "路径Win32 _用户帐户GET/all/FORMAT:list

3、获得所有用户的历史记录

加载配置单元的文件位置:

丙:\文档和设置\用户名\ n用户。"日期"

实现思路:

获得每个用户对应的希德,拼接对应的注册表键值"注册表* HKEY用户的$用户.SID " \软件\微软\终端服务器客户端\服务器"

如果读取失败,代表此用户未登录,接着尝试加载配置单元

拼接配置单元文件位置" C:\Documents and Settings' $User .名称" \用户. DAT "

配置单元对应的注册表项以该用户的(同突发球形扰动)电离层的突然骚扰命名

枚举注册表获得历史记录

卸载注册表项

注:

需要新启动一个进程来卸载配置单元,否则提示失败

为了避免使用多个试着接住捕获异常,代码结构作了改变,使用否则作判断,完整实现代码可参考:

https://github.com/3gstudent/List-RDP-Connections-History

测试结果如下图

3-1.png

0x04 小结

本文介绍了如何通过powershell获得Windows操作系统操作系统系统的远程桌面连接历史记录,需要注意的是无法直接获得未登录用户的注册表配置信息(可以加载配置单元解决)。根据远程桌面连接历史记录,往往能定位出关键的服务器。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...