dnstwist是一款基于Python的工具,可以帮助您了解用户尝试键入域名时可能遇到的问题。它可以找到对手可以用来攻击你的类似外观的域名。它还可以检测域名仿冒,网络钓鱼攻击,欺诈和企业间谍活动。
它作为目标威胁情报的额外来源非常有用。
这个想法非常简单:dnstwist将您的域名作为种子,生成一个潜在的钓鱼域列表,然后检查它们是否被注册。此外,它还可以测试MX记录中的邮件服务器是否可用于拦截错误的公司电子邮件,并且可以生成网页的模糊散列,以查看它们是否为活钓鱼网站。
注意: 随着域的长度,算法生成的变体数量也大大增加,因此需要验证DNS查询的次数。例如,要检查google.com的所有变体,您必须发送超过30万个查询。对于域名facebook.com,该数字增加到超过500万。猜测它有多容易需要大量资源,最重要的是需要更多时间。对于更长的域来检查所有是不可能的。出于这个原因,这个工具生成和检查非常接近原始域。从理论上讲,这些是攻击者的观点中最有吸引力的领域。但是,请注意,侵略者的想象力是无限的。
特征:
广泛的高效域模糊算法
Unicode域名(IDN)
多线程工作分配
查询A,AAAA,NS和MX记录
使用模糊散列来评估网页相似性,以查找活钓鱼网站
测试MX主机(邮件服务器)是否可用于拦截错误的电子邮件
使用字典文件的其他域变体
GeoIP位置信息
抓取HTTP和SMTP服务横幅
WHOIS查找创建和修改日期
以CSV和JSON格式输出
要求:
Linux
Ubuntu Linux是主要的开发平台。如果运行Ubuntu 15.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
OSX
如果你在Mac上,你可以像这样通过Homebrew安装dnstwist:
$ brew install dnstwist
这将仅将dnstwist.py安装为dnstwist,以及上述所有要求。用法相同您可以省略文件扩展名,并将二进制文件添加到PATH中。
搬运工人
如果您使用Docker,则可以从Docker Hub中提取正式映像并运行它:
$ 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地址作为参数,则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 - 词典词典/ 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
下载地址:https://github.com/elceef/dnstwist/archive/master.zip