dnstwist-用于检测网络钓鱼和企业间谍活动的域名置换引擎

黑客部落 2018-10-30 17:51:31

对于安全研究人员来说,必须懂得时下互联网新兴的工具以及使用原理,才能为更好的保护我们自己的隐私以及企业安全作出必要的举措。今天我们来介绍一款工具,在这里首先声明,我们的教程只为了安全研究,切勿用于非法途径。

dnstwist是一个基于Python的工具,可以帮助您了解用户在尝试输入您的域名时可以遇到的问题。它可以找到类似的域,攻击者可以使用它来攻击你。它还可以检测域名仿冒者,网络钓鱼攻击,欺诈和企业间谍活动。

作为目标威胁情报的另一个来源非常有用

这个想法非常简单:dnstwist将您的域名作为种子接收,生成潜在网络钓鱼域名列表,然后检查它们是否已注册。此外,它还可以测试来自MX记录的邮件服务器是否可用于拦截误导的企业电子邮件,并且它可以生成网页的模糊哈希,以查看它们是否是实时网络钓鱼站点。注意:随着域的长度,算法生成的变体数量显着增加,因此验证它们所需的DNS查询数量也会增加。例如,要检查google.com的所有变体,您必须发送超过300k的查询。域名facebook.com的数量增加到500多万。猜测它需要多少资源,最重要的是需要花费更多时间。对于较长的域,检查所有内容根本不可能。因此,此工具生成并检查非常接近原始域的域。从理论上讲,从攻击者的角度来看,这些是最具吸引力的领域。但是,请注意攻击者的想象力是无限的。

软件特征:

·广泛的高效域模糊算法

·Unicode域名(IDN)

·多线程作业分发

·查询A,AAAA,NS和MX记录

·使用模糊散列评估网页相似性以查找实时网络钓鱼站点

·测试MX主机(邮件服务器)是否可用于拦截误导的电子邮件

·使用字典文件的其他域变体

·GeoIP位置信息

·抓取HTTP和SMTP服务横幅

·WHOIS查找创建和修改日期

·以CSV和JSON格式输出

软件要求:

·Linux的操作系统

Ubuntu Linux是主要的开发平台。如果运行Ubuntu15.04或更高版本,您可以安装如下依赖项:

$ sudo apt-get install python-dnspython python-geoip python-whois \

python-requests python-ssdeep python-cffi

或者,您可以使用Python工具。这可以在虚拟环境中完成,以避免与其他安装冲突。但是,您仍然需要在系统级别安装几个库。

$ sudo apt-get install libgeoip-dev libffi-dev

$ BUILD_LIB = 1 pip install -r requirements.txt

·Mac OSX

如果您使用的是Mac,可以通过Homebrew安装dnstwist,如下所示:

$ brew install dnstwist

这将仅安装dnstwist.py作为dnstwist,以及上面提到的所有要求。用法相同,您可以省略文件扩展名,二进制文件将添加到PATH中。

·Docker

如果您使用Docker,您可以从DockerHub中提取官方图像并运行它:

$ docker pull elceef / dnstwist

$ docker run elceef / dnstwist example.com

如何使用dnstwist

首先,最好只输入域名作为参数。该工具将通过其模糊算法运行它,并生成具有以下DNS记录的潜在网络钓鱼域列表:A,AAAA,NS和MX。

$ dnstwist.py example.com

通常生成的域列表有超过一百行 - 特别是对于更长的域名。在这种情况下,使用--registered参数仅显示已注册(可解析)的实例可能是切实可行的。

$ dnstwist.py  - 注册example.com

在服务网络钓鱼站点方面手动检查每个域名可能非常耗时。为了解决这个问题,dnstwist使用了所谓的模糊哈希(上下文触发的分段哈希)。模糊散列是一种概念,它涉及比较两个输入(在这种情况下是HTML代码)并确定基本相似度的能力。可以使用--ssdeep参数启用dnstwist的这一独特功能。对于每个生成的域,dnstwist将从响应的HTTP服务器获取内容(遵循可能的重定向)并将其模糊散列与原始(初始)域的模糊散列进行比较。相似程度将表示为百分比。请记住,动态生成的网页不太可能100%匹配,但无论百分比水平如何,都应仔细检查每个通知。

$ dnstwist.py --ssdeep example.com

在某些情况下,网络钓鱼站点是从特定URL提供的。如果您提供完整或部分URL地址作为参数,dnstwist将解析它并申请每个生成的域名变体。这种能力显然只与模糊散列特征结合使用。

$ dnstwist.py --ssdeep https://example.com/owa/

$ dnstwist.py --ssdeep example.com/crm/login

攻击者经常在网络钓鱼域上设置电子邮件蜜罐,并等待错误的电子邮件到达。在这种情况下,攻击者会将其服务器配置为清空发往该域的所有电子邮件,无论用户是向哪个用户发送的。另一个dnstwist功能允许在每个邮件服务器上执行一个简单的测试(通过DNS MX记录公布),以便检查哪一个可以用于这种恶意的意图。可疑服务器将标有SPYING-MX字符串。请注意可能的误报。有些邮件服务器只是假装接受错误处理的电子邮件,但随后丢弃这些邮件。此技术用于防止目录收集攻击。

$ dnstwist.py --mxcheck example.com

并非总是由模糊算法生成的域名就足够了。要生成更多域名变体,请向dnstwist提供字典文件。包括一些字典样本,其中包含目标网络钓鱼活动中使用的最常用单词列表。随意根据您的需求进行调整。

$ dnstwist.py --dictionary dictionaries / english.dict example.com

除了默认的漂亮和彩色文本终端输出外,该工具还提供了两种众所周知且易于解析的输出格式:CSV和JSON。用它来进行数据交换。

$ dnstwist.py --csv example.com> out.csv

$ dnstwist.py --json example.com> out.json

该工具附带内置GeoIP数据库。使用--geoip参数显示每个IPv4地址的地理位置(国家/地区名称)。

$ dnstwist.py --geoip example.com

当然,dnstwist提供的所有功能以及简短的描述你都可以看

$ dnstwist.py  -  help

如果需要文中软件可以留言

感谢关注

0 阅读:0

黑客部落

简介:计算机安全技术分享,网络安全攻防技术分享