用普通权限的域帐户获得域环境中所有DNS解析记录

22.png

DNS区域传送对安全研究人员来说是一种非常经典的攻击角度。这意味着区域网络内有可能存在一个配置不安全的DNS服务器,任意匿名用户都可给它发送指令,获得区域网络内所有域名数据。但是,相信没有多少人知道如果内网网络使用了活动目录所集成的DNS,任何内网用户都有权限查询所有的DNS记录。

本文章将介绍基于上述情况的手动查询DNS记录的方法,以及一种可以自动执行该操作的工具。

背景

就个人而言,每当我要开始一个新的渗透任务时,通常会先了解整体网络布局、网络中涉及的软件、敏感数据的位置。但是,如果网络中的服务器名称不含功能描述,只是单纯的00001,00002,00003,那么我就很难理出头绪,不知从哪开始着手。

假设使用EyeWitness之类的工具进行扫描,你就会在返回中看到大量默认的Apache/IIS页面,因为大多数站点都配置为监听DNS名称而不是IP地址。此时你如果知道DNS记录,可能就会发现SRV00001.company.localgitlab.company.local指向同一个IP,这个IP上可能存放着大量源码。

综上所述,我认为活动目录中DNS记录是具有很高的价值的。为此我还编写了一个可以转储这些DNS记录的小工具。你既可以直接在网络中的主机运行它,也可以通过SOCKS隧道利用。

开端

我之所以研究域环境中的DNS记录,主要是受到Kevin Robertson关于ADIDNS研究的启发。当我使用ADSI Edit时,试图找出活动目录如何在LDAP中的区域(zone)存储DNS记录时,突然看到了域中有关DNS记录的概述。此时我感到非常惊讶,但Kevin向我指出,mubix早在2013年就写过这方面的文章了。因此,早在2013年,就有PowerShell脚本可以提取DNS记录,但它并没有完全符合我的要求,所以我决定编写一个Python脚本,再加入一些功能。

@3xocyte也用Python编写了一个类似的脚本。

“隐藏的”DNS记录

在LDAP中查询DNS记录的主要方法是选择dnsNode类的所有对象执行查询操作,你会看到DNS区域中的所有实体。当我使用过滤器执行查询时(objectClass=dnsNode),只会返回非常有限的结果。要知道,即使我手动浏览DNS区域,都可以看到更多记录:

33.png

很多对象的objectClass都不可见,这是因为计算机DNS记录的默认权限(我认为其他记录也不是通过活动目录DNS页面创建的)不会允许所有用户查看其内容。再加上IP地址实际作为这些对象的属性来存储,因此无法查看这些记录中的IP地址。

但是,在默认情况下,任何用户都可以创建新的DNS记录,任何用户也可以列出DNS区域的子对象。总而言之,我们知道哪里有记录,只是无法使用LDAP查询它。

44.png

不过,一旦我们通过枚举LDAP知道了一条记录,就可以直接使用DNS查询它(因为执行常规DNS查询不需要特权)。这样我们就可以解析区域中的所有记录。

adidnsdump

要使用adidnsdump,你可以从我的GitHub获取,它能枚举DNS区域中的所有记录。首先,使用参数--print-zones显示当前域中的所有区域。注意,并非所有的区域都很意义,例如转发,缓存等区域不会包含域的所有记录。如果找到这种区域,最好查询一下它们实际所属的域。下面的命令显示我搭建的测试域中只有默认区域:

user@localhost:~/adidnsdump$ adidnsdump -u icorp\\testuser --print-zones icorp-dc.internal.corp
Password: 
[-] Connecting to host...
[-] Binding to host
[+] Bind OK
[-] Found 2 domain DNS zones:
    internal.corp
    RootDNSServers
[-] Found 2 forest DNS zones:
    ..TrustAnchors
    _msdcs.internal.corp

如果我们为工具指定区域,我们将获得所有记录。其中会显示哪些可以列出来,但不能读取的记录(即上述所谓的“隐藏”DNS记录),会表示为问号。这些记录会全部被保存到名为records.csv的文件中。

55.png

要解析这些未知记录,可使用参数-r,该标志将对所有未知记录执行A查询。此时你会发现,之前的?突然有了记录:

66.png

如果你是通过代理连接操作,你可以使用参数--dns-tcp,通过TCP执行DNS查询。

防御措施

为了安全起见,你可以提高记录的查询权限,删除普通人的“List content”权限,但这可能会产生负面影响,所以我不建议那样做。通过某些软件监控DNS查询动作或启用DNS区域审计可能是解决这类问题的最好方法。

工具

adidnsdump可以通过GitHub和PyPI(pip install adidnsdump)安装使用。最后的结果会转储到CSV文件,你可以自己把文件转换为其他格式。

本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场:https://nosec.org/home/detail/2527.html
来源:https://dirkjanm.io/getting-in-the-zone-dumping-active-directory-dns-with-adidnsdump/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 目录: 一些基本概念主机名DNS名称解析DNS 解析的后端存储名称解析总结 大规模域名解析的体系架构DNS 解析需...
    C86guli阅读 12,490评论 3 34
  • 1. 概述 在网络环境中一般用户只需要在浏览器中输入url如www.sunny.com就可以到对应服务器获取相应的...
    ghbsunny阅读 2,880评论 0 7
  • 为什么需要DNS解析域名为IP地址? 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算...
    後来的後来hugh阅读 837评论 1 1
  • 1、前言 在当下互联网时代,我们日常生活和工作基本都离开不域名和 DNS ,如通过一个网址打开一个网站进行购物、使...
    cinder_lv阅读 3,549评论 1 27
  • 晨读打卡材料如何拥有创意,成为一个不可替代的人 我们时常抱怨,抱怨路太窄,上下班高峰期更是堵得不行;抱怨医院人太多...
    彩虹小仙女阅读 513评论 0 2