针对Alexa Top 100站点进行的一次钓鱼攻击分析

来源:互联网 发布:企业无线覆盖 知乎 编辑:程序博客网 时间:2024/06/13 08:37

各位,今天我们将做一些特别的事。该文是由Ethan Dodge (@__eth0)以及Brian Warehime联合撰写,我们将会探讨Alexa Top 100域名中网络钓鱼防御手法,同时也会揭露一些针对这些域名做钓鱼攻击的案例。

我们结合一款新的DNS探测工具DNStwist以及一些自己写的Python脚本来收集并分析我们发现的所有信息,当然你可以跟着我们的思路一起来探究。

综述

我们将抓取Alexa排名前100的域名,通过一个脚本收集DNStwist修改版本获取到的变动域(permutated domain)及排列类型(bitsquatting,插入,缺省,替换等),凭借这份清单中的域名我们进行主机查询,获取域名主机的IP地址。最后我们将进行WHOIS查询以及对IP进行反向DNS查询,比较其注册/指向记录信息。

进行完数据比较后,我们可以得出到底哪种类型的排列覆盖攻击范围最广(即原域名注册的变动域可能防止网络钓鱼)以及哪种类型的排列覆盖范围最小。

抓取数据

首先我们得获取Alexa前百万站点数据

wget http://s3.amazonaws.com/alexa-static/top-1m.csv.zip

接着将范围缩小到前100

cat top-1m.csv | awk -F ',' {'print $2'} | head -n 100 > alexatop100.txt

获取排列的域名

起先,我们会从DNStwist获取一份排列清单,我们继续修改原始脚本将多余的输出信息阉割掉。我们只需要排列类型,以及排列类型所生成的域名。

下面截图显示了使用google.com作为示例生成的排列结果

现在我们拥有了属于我们自己的域名清单,接着使用下面的一行bash命令来遍历所有的域名。然后通过运行经过修改的dnstwist将结果输出到一个新的文件中

while read domain; do python dnstwist.py $domain > ~/Desktop/alexatop100/$domain; done < ~/Desktop/alexatop100.txt

运行上面的命令大概需要5秒钟,最后我们获取到的目录大概是这样

主机查找

在我们的计划中,接下来就是对生成的域名清单进行主机查找工作了,我们想要得到一个包含变动域,变动类型以及IP地址的文本文档。

以下bash命令可用来浏览每个域名的所有排列方式并运行主机查询,将其添加到一个新文件以供我们进行下一步分析。

for file in *; do python hostlookup.py $file; done

运行上面命令大约30分钟后,我们得到这样一个目录

你应该也注意到了,这个目录增加了100个附加\_hostlookup的文件。在每一个文件中我们可以看到每一个变动域的IP地址以及其他判定信息

反向DNS查询

起初我们是想进行反向DNS查询,看IP的指向记录。然而,我们认为进行WHOIS查询可以获取更完整的信息。无论如何,这个步骤还是应该进行下去。

接下来我们写了一个Python脚本从每一个返回的排列中获取其指向记录。其包括域名,IP,排列类型,指向记录以及基于我们抓取的主机名进行判断其是真假。

运行下面的bash命令,我们获得了前缀为_rdns的100个文件

for file in *; do python rdnslookup.py $file; done

在每一个文件中我们都能看到指向记录和真假判断结果

WHOIS查询

在进行WHOIS查询之前,我们需要用到主机查询时获取到的数据。

在这一部分,我们想要抓取WHOIS信息中的描述字段。经过WHOIS和DNS反向查询,我们就完全有能力去匹配变动域中的IP地址。

最后,我们得出2个数据结果一个来源于WHOIS查询,一个来源于DNS方向查询。使用这些数据我们进行一些统计来回答文章前面提出的问题,在此之前我们需要将数据导入Splunk。

Splunk Setup

为了让Splunk能够识别这些字段,我们需要对位于/opt/splunk/etc/system/local/目录下的props.conf进行配置

[phishing]REPORT-phishing = REPORT-phishing[whois]REPORT-whois = REPORT-whois

接着编辑位于/opt/splunk/etc/system/local/的transforms.conf文件

[REPORT-phishing]DELIMS = " "  FIELDS = "domain","ip","perm_type","hostname","is_match"[REPORT-whois]DELIMS = " "  FIELDS = "domain","ip","perm_type","owner","is_match"

如此这般都是为了进行更好的分析

WHOIS分析

进入正题,我们将从WHOIS数据入手进行分析

下面的清单是最常用的变动类型

sourcetype=whois | top perm_type

好吧,那么有多少是由原域名所有者自己注册的潜在域名?

sourcetype=whois is_match=true | stats count

在所有的域名中,经过我们不完全统计有460个域名是由原域名所有者自己注册的。

现在我们就来看看原域名所有者钟爱的变动类型排名

插入类型域名十分受欢迎啊

sourcetype=whois is_match=true perm_type="Insertion" | rex field=source "\/tmp\/(?<original_domain>[^_]+)"| top original_domain

现在我们忽略排列类型来看看

这么看起来Amazon似乎是最在意保护用户的啊

反向DNS分析

好了,接下来进行反向DNS分析,看看最常见的变动类型

sourcetype=phishing | top perm_type

那么有多少是由原域名所有者自己注册的潜在域名?

sourcetype=phishing is_match=true | stats count

在所有的域名中,经过我们不完全统计有381个域名是由原域名所有者自己注册的。

现在我们就来看看原域名所有者钟爱的变动类型排名

两个数据来源都得出插入类型域名十分受欢迎

sourcetype=phishing is_match=true perm_type="Insertion" | rex field=source "\/tmp\/(?<original_domain>[^_]+)" | top original_domain

继续忽略排列类型看看

sourcetype=phishing is_match=true | rex field=source "\/tmp\/(?<original_domain>[^_]+)" | top original_domain

与使用WHOIS数据得出的结论相同,Amazon在网络钓鱼入口防御这方面下的功夫很大啊。

DDoS防御站点

当然,我们知道这个统计结果不完全是正确的。因为就我们已知的例如wikipedia.com域名就是Wikimedia所拥有的,但是我们还是将其记录为虚假站点。

其中我们还发现有大量的域名记录指向prolexic.com,这是一个DDoS防御站点。我们怀疑钓鱼域名会去使用这个DDoS防御,是因为大流量所带来的费用不是一般人能承担的。基于这个现实,我们将指向prolexic.com的站点计入真实站点。

让我们重新运行一些最初的搜索

首先,有多少域名有变动域名进行保护?

sourcetype=phishing | eval ddos=if(searchmatch("hostname=*prolexic*"),"True","False") | search ddos="True" OR is_match="True" | stats count

我们看到结果为808而不是之前的381,大改变啊

变动类型排名

最后,哪个域名最有良心

总结

最后的最后,最有趣的研究结果出来了。

最常见的域名变动类型为替换和插入(netflox.com 与 netfliix.com),同时我们还发现大多数公司使用DDoS防御站点转向到他们的变动域名(这只是一个有趣点,还谈不上惊喜),最后我们看到amazon.com, booking.com 以及 yahoo.com对于用户来说十分有良心啊,就怕用户输入URL时出错。

对于像amazon.com, booking.com 以及 yahoo.com在防御钓鱼攻击方面所做出的努力,

致敬!

0 0
原创粉丝点击