針對Alexa Top 100站點進行的一次釣魚攻擊分析

qq_27446553發表於2016-02-25

各位,今天我們將做一些特別的事。該文是由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在防禦釣魚攻擊方面所做出的努力,

致敬!

相關文章