dnstwist是一款针对域名安全的多功能检测工具,该工具可以帮助广大研究人员检测同形异义词网络钓鱼攻击、拼写错误抢注和品牌冒充的域名排列引擎。
除此之外,该工具还可以帮助网络安全管理人员识别针对自己域名的威胁行为,并检测域名抢注者、网络钓鱼攻击、欺诈和品牌冒充行为。值得一提的是,该工具所提供的数据可以作有针对性的威胁情报的额外来源。
1、多种高效的域模糊测试算法;
2、Unicode 域名 (IDN);
3、来自字典文件的附加域排列;
4、高效的多线程任务分配;
5、实时钓鱼网页检测;
6、使用模糊哈希的 HTML 相似度(ssdeep/tlsh);
7、使用感知哈希 (pHash) 实现屏幕截图视觉相似度;
8、恶意 MX 主机检测(拦截错误发送的电子邮件);
9、GeoIP 位置;
10、导出为 CSV 和 JSON;
#GeoIP>=1.3.2
geoip2>=4.0.0
dnspython>=1.16.0
#ssdeep>=3.1
ppdeep>=20200505
py-tlsh>=4.5.0
tld>=0.9.1
idna>=2.8
#Pillow>=7.0.0
#selenium>=4.0.0
由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。
源码安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/elceef/dnstwist.git
然后切换到项目目录中,使用pip命令安装:
cd dnstwist
pip install .
Debian/Ubuntu/Kali Linux
调用以下命令来安装该工具及其所有附加包:
$ sudo apt install dnstwist
Fedora Linux
$ sudo dnf install dnstwist
Arch Linux
yay -S dnstwist
macOS
dnstwist将与所有依赖项一起安装,并且二进制文件将被添加到$PATH。
brew install dnstwist
Docker
从 Docker Hub 拉取并运行官方镜像:
docker run -it elceef/dnstwist
或者,你可以构建本地图像:
docker build -t dnstwist .
$ docker build -t dnstwist:phash --build-arg phash=1 .
该工具将通过其模糊测试算法运行提供的域名,并生成潜在网络钓鱼域列表以及 DNS 记录。
通常会生成数千个域排列 - 尤其是对于较长的输入域。在这种情况下,仅显示已注册的域排列可能比较实用:
dnstwist --registered domain.name
确保您的 DNS 服务器可以在短时间内处理数千个请求。否则,您可以使用--nameservers参数指定外部 DNS 或 DNS-over-HTTPS 服务器。
如果模糊测试算法生成的域排列不够,请提供dnstwist字典文件。其中包含一些字典样本,其中列出了网络钓鱼活动中最常用的单词。
dnstwist --dictionary dictionaries/english.dict domain.name
如果您需要检查是否存在具有不同 TLD 的域,只需提供包含 TLD 列表的字典文件。
dnstwist --tld dictionaries/common_tlds.dict domain.name
另一方面,如果只需要使用选定的算法,--fuzzers 则可以提供参数,它采用逗号分隔的列表。
"homoglyph,hyphenation" domain.name dnstwist --fuzzers
除了丰富多彩的终端输出外,该工具还允许将结果导出为 CSV 和 JSON:
dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jq
如果您只需要裸排列而不进行任何 DNS 查找,请使用 --format list参数:
dnstwist --format list domain.name
该工具可以执行实时查找以返回 IPv4 地址的地理位置(近似于国家/地区)。
dnstwist --geoip domain.name
本项目的开发与发布遵循Apache-2.0开源许可协议。
dnstwist:
https://github.com/elceef/dnstwist
https://dnstwist.it/