最近,Xshell遠程終端工具發(fā)現(xiàn)被加入了惡意代碼,目前官方就此事也做出了回應(yīng),要求使用者盡快下載最新版本。在此次事件中,一種作惡手法引起了安全分析人員的注意,那就是通過DNS協(xié)議傳遞受害者電腦信息,并接收服務(wù)器指令。這種繞開傳統(tǒng)的數(shù)據(jù)連接,將通信數(shù)據(jù)封裝在DNS協(xié)議中的技術(shù),被稱為DNS Tunneling。此木馬的作者為什么要采取這樣的方式,DNSTunneling又為什么能夠達到木馬作者的目的呢?
l DNS簡介
DNS,全名為Domain Name System,是互聯(lián)網(wǎng)最關(guān)鍵的基礎(chǔ)服務(wù)之一。它將人能夠識別的域名名稱(例如domain.com)和計算機能夠識別的IP地址(例如1.2.3.4)之間建立起關(guān)聯(lián),當(dāng)用戶需要訪問具體的域名時,即可通過DNS協(xié)議(默認是53端口)快速查詢到對應(yīng)的目標IP,然后再使用其它協(xié)議向目標IP發(fā)送數(shù)據(jù)。
l DNS特點
眾所周知,現(xiàn)存的域名數(shù)量眾多,且變化迅速,難以使用少量的服務(wù)器支撐這樣量級的查詢請求。因此,目前的DNS體系使用分布式的方式,將數(shù)據(jù)分散保存在不同的服務(wù)器上,它具有如下的特點:
一、客戶端通常會配置1到2個DNS服務(wù)器,從這些服務(wù)器中獲取所有的DNS解析結(jié)果,而無需與其它DNS服務(wù)器進行交互。這樣的DNS服務(wù)器被稱為DNS解析器(DNS resolver),它們會嘗試從本地緩存和其它DNS服務(wù)器上獲取DNS數(shù)據(jù),直至得到最終結(jié)果或者嘗試失敗,然后返回給客戶端。

經(jīng)常用到的DNS解析器包括谷歌的8.8.8.8、8.8.4.4等,這些服務(wù)器地址也被內(nèi)置到此次木馬的代碼邏輯中。國內(nèi)也有廠商提供類似的服務(wù)。
二、DNS服務(wù)器在查詢數(shù)據(jù)時,通常采用迭代的查詢方式,從13組“根域名服務(wù)器”開始,從最末位開始依次往前進行查詢。例如,查詢test.domain.com時,
首先會查詢.com域的權(quán)威域名服務(wù)器地址(NS記錄)。
找到后,會繼續(xù)向該NS記錄對應(yīng)的域名服務(wù)器查詢domain.com的域名服務(wù)器。
再向該域名服務(wù)器查詢,發(fā)現(xiàn)test.domain.com擁有A記錄,從此記錄中可以獲取到域名對應(yīng)的真實IP地址,向客戶端返回。
通常網(wǎng)站主在注冊域名后,會指定該域名對應(yīng)的NS服務(wù)器,例如此次木馬作者注冊的某域名對應(yīng)的服務(wù)器地址目前被設(shè)置為如下值:

需要注意的是QHoster.net是一個網(wǎng)絡(luò)服務(wù)提供商,并非木馬作者所有。如果木馬作者設(shè)置了自己的服務(wù)器作為域名服務(wù)器,則可以獲取到所有子域名的DNS請求。而木馬上傳的受害者電腦信息經(jīng)過編碼后隱藏在子域名的字符中,木馬作者可以對DNS請求中的子域名部分進行篩選。

三、DNS協(xié)議格式中,除了上面提到的NS記錄(指定域名服務(wù)器)、A記錄(指定域名對應(yīng)的服務(wù)器的IPv4地址)外,還包括:
AAAA記錄:指定域名對應(yīng)的服務(wù)器的IPv6地址;
CNAME記錄:將此記錄指向另外一個域名;
MX記錄:指定域名下的郵件服務(wù)器;
TXT記錄:存放管理員指定的任意信息。一個常見的用法是,需要驗證某人是否具有域名的管理權(quán)限時,就可以要求修改TXT記錄,然后通過DNS查詢該記錄及內(nèi)容是否與特定的值匹配。

此次木馬作者用到的也是TXT記錄可以任意存放信息的特點,通過域名服務(wù)器對DNS請求進行篩選后,可以向感興趣的請求返回特定的TXT記錄內(nèi)容,這些內(nèi)容可以用于解碼木馬中的惡意模塊,對受害者進行進一步的控制。
l DNS數(shù)據(jù)傳遞優(yōu)勢
通過以上分析可以看出,木馬作者使用DNS Tunneling技術(shù)進行數(shù)據(jù)傳遞,有如下優(yōu)勢:
1.可以獲取到全球各處的受害者發(fā)送的DNS請求。
2.可以向感興趣的受害者發(fā)送特定的結(jié)果,不用向所有請求返回信息。
3.受害者電腦只會與指定的DNS服務(wù)器發(fā)生數(shù)據(jù)交換,并且使用的是常用的DNS協(xié)議,不易被發(fā)覺,也很難通過判斷數(shù)據(jù)包的目的IP地址或協(xié)議內(nèi)容進行阻斷。
4.只需要設(shè)置域名服務(wù)器,無需額外的服務(wù)器對該域名的其它請求進行響應(yīng),進一步隱藏了自己。
l 建議
騰訊安全反病毒實驗室建議:
1.盡快根據(jù)官方公告,排查用到的Xshell、Xftp等版本是否存在風(fēng)險,并將軟件升級到最新版本。
2.使用騰訊安全反病毒實驗室提供的Xshell后門查殺工具進行掃描和清除(https://habo.qq.com/tool/detail/xshellghostkiller)。
3.對于不規(guī)則、意義不明或疑似DGA(Domain Generation Algorithm)生成的域名,需要提高警惕。
4.當(dāng)DNS請求中TXT類型的請求比例異常時,需要排查是否有木馬通過DNS Tunneling技術(shù)進行數(shù)據(jù)傳輸。
|