先上一个AI的回答:
dnstwist是一种钓鱼网站域名识别工具,可帮助用户识别和检测可能被恶意使用的域名。它通过生成类似的域名变体来模拟攻击者可能使用的钓鱼域名,并提供了一系列有用的功能和信息。
dnstwist能够生成一组类似的域名变体,包括字符替换、字符插入、字符删除、字符重复等,以此来模拟可能被攻击者注册的钓鱼域名。它还可以通过使用WHOIS和DNS查询等功能来获取域名的详细信息,如注册商、注册日期、IP地址等。此外,dnstwist还支持将生成的域名与Alexa排名、VirusTotal扫描结果等进行比较,以帮助用户更好地了解潜在的威胁。
dnstwist的使用非常简单,用户只需提供一个目标域名,该工具会自动分析并生成相应的域名变体。用户可以通过命令行界面或脚本来进行使用,并根据需要选择不同的选项和功能。
总之,dnstwist是一款非常实用的钓鱼网站域名识别工具,可以帮助用户发现和防范潜在的钓鱼攻击。它的功能强大而全面,能够快速生成域名变体并提供详细的信息和比较分析,使用户能够更好地保护自己的网络安全。
github链接https://github.com/elceef/dnstwist
在线网站 dnstwist | phishing domain scanner
首先打开主代码文件,开始分析:
首先看到的应该是一个提取顶级域名(Tld)的函数:
查询whois的函数,whois.iana.org是根服务器网站:
置换函数:
这是一个fuzz函数,可以看出这里fuzz的是顶级域名,对相似的字符进行了替换:
bitsquatting位翻转仿冒:
masks里边的数字都是只有1位为1,其余都是0,^是按位异或运算符,当二者不同时为1。
cyrillic西里尔字母:
找到 latin_to_cyrillic:
可以看出英文字母和西里尔字母很像。
homoglyph同形异意攻击:
用很多相近的字符进行了替换:
hyphenation 连字符:
其实就是在域名里加了一个“-”。
insertion 插入字符:
从self.keywords里选的:
omission遗漏:
随机丢弃了第i个字母。
repetition重复:
重复第i个字母。
replacement替换:
把第i个字母替换掉了。
subdomain变成子域名:
加了一个点。
transposition换位置:
i和i+1互换位置。
vowel_swap:
元音字母aeiou替换
plurali变成复数:
如果domain[i]是sxz中的一个,就添加es,否则添加s
addition增加:
包含了数字0-9
的ASCII码范围(48-57)和小写字母的ASCII码范围(97-122)。
从字典里生成域名: