我正在考虑配置我们的 Windows DNS 服务器以进行某种基于 DNS 的黑洞操作。理想情况下,我们可以使用来自 MalwareDomains.com 或类似网站的源。我很好奇如何设置和实施这样的设置。工作流程如下所示:
- 用于下拉并解析 feed 列表的脚本
- 将 feed 列表发布到 Windows DNS 的脚本
- 由于新的 DNS 条目,不良连接已停止
我遇到的挑战与步骤 2 有关。我不确定如何将大量 DNS 条目发布到 Windows DNS 服务器。理想情况下,这适用于 Server 2008 或更新版本。
答案1
要攻击 #2,“将源列表发布到 Windows DNS 的脚本”,您最有可能使用dnscmd
在某种程度上。您需要使用一些 PowerShell cmdlet(例如get-content
和write-host
作为可能的示例)将 feed 列表拆分为与在您自己的 DNS 服务器中创建A
或CNAME
记录相关的信息位。然后将相关信息粘贴到变量中以dnscmd
供使用。
要攻击 #3,你会创建误导人们的记录。因此,要么A
记录指向你控制的 IP 地址(可能是你控制的 Web 服务器,上面写着“你已被屏蔽!请等待人力资源部门的电话,哈哈!1”)或者直接将人们发送到 0.0.0.0。另一个选择是将域名 CNAME 到您控制的 Web 服务器。
您不必亲自构建这一切,可以考虑依靠已经为您完成大部分工作的人:Windows DNS 服务器 Sinkhole 域工具。这是 SANS Institute 支持的 PowerShell 脚本,用于管理 Windows DNS 服务器上的 DNS 黑名单。有一个姊妹项目叫做Windows HOSTS 文件脚本用于阻止恶意域名可以预见的是,它会使用本地机器上的 hosts 文件,这听起来很恶心,但也许可以使用 GPO 将其推送到你的 Windows 客户端(只要用户权限不允许任何 hosts 文件篡改,并且假设你的 Active Directory 控制你想要使用黑名单的所有 PC)。
至于报告阻塞情况,这有点困难,因为据我所知,Windows DNS 实际上没有每个域的响应报告。对您有利的可能是对列入黑名单的域进行 CNAME,然后使用将列入黑名单的域 CNAME 到的 Web 服务器的功能来检查谁在做什么。理论上,您可以根据引用域和源 IP 地址解构传入的 HTTP 请求,并生成相当多的漂亮报告。AWStats 甚至可能提供一些开箱即用的帮助。
答案2
不久前我发布了一个 PowerShell 模块,DnsBlockList
可在GitHub和PowerShell 库。
它将本地提取来自 SANS、ZeusTracker 和恶意软件域的列表,并具有添加列表、创建自己的列表等功能。诀窍在于解析这些列表,因为该过程可能需要额外的逻辑,具体取决于列表的格式。然而,也有空间!
为每个要阻止的域创建查询解析策略。这避免了为环回地址创建 DNS 记录。
还有更多功能记录在自述。我鼓励你去看看。
由于它已发布到 PowerShell 库,因此安装模块很容易:
Install-Module DnsBlockList
答案3
您提到的网站上有关于此问题的说明:http://www.malwaredomains.com/?page_id=6#MS以及该指令的特殊文件格式:http://mirror1.malwaredomains.com/files/BOOT