針對Android設備的開源手機銀行木馬BankBot / Mazain分析

在最近幾年,我們開始對那些針對土耳其銀行以及其他各種類型的金融機構應用的惡意軟體產生了興趣。據我們觀察,在過去兩年這種針對銀行業務的惡意軟體行為愈演愈烈,特別是在手機銀行方面,許多的新型惡意軟體已經開始通過網路釣魚以及列印等方式來進行傳播了。

以下是一些例子:

hxxp://nora.biz/index.php?Пишем-android-бота-с-нуля.1425/

hxxps://forum.exploit.in/index.

hxxp://a0007517.xsph.ru/thread

在C&C伺服器中使用了這些軟體含有一小部分的PHP代碼,C&C入口通過命令管理Android木馬,而它正在竊取簡訊以獲取OTP。

這種C&C伺服器基本上都被加入了木馬程序,來使其能夠從android手機中捕捉簡訊,而在未知的角落裡有很多這樣的C&C伺服器在活躍著。

我們可以看到,幾乎所有的C&C伺服器都是由域名.gdn TLD .gdn - Wikipedia提供服務的,其中一些伺服器在域名上是由.pw TLD 提供服務的。

觀察後發現這些域名包括:

ifc3yb3rs3cur1tych0.pwn1nj3ct10n.gdnnr0n4ld4.gdnnt4l1sc4.gdnntrolitrader.pwnbigbustown.pwnch4pr6.gdnnn0309.gdnntr4f0.pwnt1lk1.gdnnb46.gdnn

該列表今後還會繼續更新。

很明顯擁有這些域名的人以前曾使用了這些不同的域名來作為網路釣魚站點以及C&C伺服器。

hxxp://e-trafikcezasiodemesi.net

hxxp://guvenliktrafikcezasiodemeyeri.com

hxxp://jethgsyukle.com

以前是這樣子的:

而當你使用移動設備訪問以下土耳其網站時,這些網站就會幫助傳播前文所提到的Android木馬。

hxxp://ircforumlari.netnhxxp://filmindirsene.netn

而如果你使用移動設備或瀏覽器訪問了上述網站,並且將用戶代理字元串設置為Android瀏覽器之一,則網站會提供通過縮短鏈接來安裝Android應用程序。

提供URL縮短服務的hxxp://dogrulama.link網站正在託管虛擬Flash播放器應用程序。

FlashPlayer.apk及其變體的SHA256散列如下:

62ca7b73563f946df01d65447694874c45d432583f265fad11b8645903b6b099n3bf02ae481375452b34a6bd1cdc9777cabe28a5e7979e3c0bdaab5026dd8231dn6b93f837286da072f1ec7d5f5e049491d76d4d6ecc1784e1fadc1b29f4853a13nd8b28dbcc9b0856c1b7aa79efae7ad292071c4f459c591de38d695e5788264d1nbd194432a12c35ae6ae8a82fa18f9ecac3eb6e90c5ff8330d20d19e85a782958ne0da58da1884d22cc4f6dfdc2e1da6c6bfe2b90194b86f57f9fc01b411abe8den

我們還發現有些類的名字似乎是用土耳其語寫的。

還有一些俄羅斯語寫的(俄羅斯論壇上已經找到原文)。

安裝flashplayer.apk到手機上後,該惡意軟體就請求用戶首次提供設備管理員許可權:

該惡意軟體要使用的其他許可權還有:

除此之外,該惡意軟體還會有一些服務要運行。

木馬可以從C&C接收以下命令:

非結構化補充服務數據請求

請求管理員/root許可權

發簡訊

惡意軟體會掃描statham類中定義的所有運行進程。

在收到所有正在運行的進程列表後,我們和自己的手機銀行應用程序進程列表對比了一下:

據我們了解,幾乎所有的土耳其手機銀行和金融應用程序都受到了BankBot惡意軟體的影響:

<span stylex="font-size: 16px">com.ziraat.ziraatmobil<br>com.ziraat.ziraattablet<br>com.tmobtech.halkbank<br>com.vakifbank.mobile<br>com.pozitron.vakifbank<br>com.akbank.android.apps.akbank_direkt<br>com.akbank.softotp<br>com.akbank.android.apps.akbank_direkt_tablet<br>tr.com.sekerbilisim.mbank<br>com.teb<br>com.pozitron.iscep<br>com.softtech.isbankasi<br>com.ykb.android<br>com.ykb.androidtablet<br>com.tmob.denizbank<br>com.tmob.tabletdeniz<br>com.garanti.cepsubesi<br>biz.mobinex.android.apps.cep_sifrematik<br>com.htsu.hsbcpersonalbanking<br>com.ingbanktr.ingmobil<br>com.magiclick.odeabank<br>com.finansbank.mobile.cepsube<br>finansbank.enpara<br>com.pozitron.albarakaturk<br>com.kuveytturk.mobil</span>n

而且源代碼中的電話號碼也會被Bankbot阻止:

Toast.makeText((Context)context, (CharSequence)"Giden Aramalar Engellendi.", (int)0).show();n

這些電話號碼都是用於訪問相關銀行的電話銀行系統的。

this.b = arrayList.getStringExtra("incoming_number");n<span stylex="font-size: 16px">arrayList = new ArrayList();<br>arrayList.add( 「+ 9008502200000」);<br>arrayList.add( 「+ 908502200000」);<br>arrayList.add( 「+ 904440000」);<br>arrayList.add( 「+ 9008502220400」);<br>arrayList.add( 「+ 908502220400」);<br>arrayList.add( 「+ 904440400」);<br>arrayList.add( 「+ 9008502220724」);<br>arrayList.add( 「+ 908502220724」);<br>arrayList.add( 「+ 904440724」);<br>arrayList.add( 「+ 9008502222525」);<br>arrayList.add( 「+ 908502222525」);<br>arrayList.add( 「+ 904442525」);<br>arrayList.add( 「+ 9008502227878」);<br>arrayList.add( 「+ 908502227878」);<br>arrayList.add( 「+ 904447878」);<br>arrayList.add( 「+ 9008502000666」);<br>arrayList.add( 「+ 908502000666」);<br>arrayList.add( 「+ 904440832」);<br>arrayList.add( 「+ 9002166353535」);<br>arrayList.add( 「+ 902166353535」);<br>arrayList.add( 「+ 9008507240724」);<br>arrayList.add( 「+ 908507240724」);<br>arrayList.add( 「+ 904440202」);<br>arrayList.add( 「+ 9008502220444」);<br>arrayList.add( 「+ 908502220444」);<br>arrayList.add( 「+ 904440444」);<br>arrayList.add( 「+ 9008502220800」);<br>arrayList.add( 「+ 908502220800」);<br>arrayList.add( 「+ 904440800」);<br>arrayList.add( 「+ 9008502220333」);<br>arrayList.add( 「+ 908502220333」);<br>arrayList.add( 「+ 904440333」);<br>arrayList.add( 「+ 9008502110111」);<br>arrayList.add( 「+ 908502110111」);<br>arrayList.add( 「+ 9008502220600」);<br>arrayList.add( 「+ 908502220600」);<br>arrayList.add( 「+ 904448444」);<br>arrayList.add( 「+ 9002123048444」);<br>arrayList.add( 「+ 902123048444」);<br>arrayList.add( 「+ 9008502220900」);<br>arrayList.add( 「+ 908502220900」);<br>arrayList.add( 「+ 904440900」);<br>arrayList.add( 「+ 9008502223663」);<br>arrayList.add( 「+ 908502223663」);<br>arrayList.add( 「+ 9008502225666」);<br>arrayList.add( 「+ 908502225666」);<br>arrayList.add( 「+ 904445666」);<br>arrayList.add( 「+ 9002166660101」);<br>arrayList.add( 「+ 902166660101」);<br>arrayList.add( 「+ 9008502510123」);<br>arrayList.add( 「+ 908502510123」);<br>arrayList.add( 「+ 9002123541111」);<br>arrayList.add( 「+ 902123541111」);<br>arrayList.add( 「08502200000」);<br>arrayList.add( 「8502200000」);<br>arrayList.add( 「4440000」);<br>arrayList.add( 「08502220400」);<br>arrayList.add( 「8502220400」);<br>arrayList.add( 「4440400」);<br>arrayList.add( 「08502220724」);<br>arrayList.add( 「8502220724」);<br>arrayList.add( 「4440724」);<br>arrayList.add( 「08502222525」);<br>arrayList.add( 「8502222525」);<br>arrayList.add( 「4442525」);<br>arrayList.add( 「08502227878」);<br>arrayList.add( 「8502227878」);<br>arrayList.add( 「4447878」);<br>arrayList.add( 「08502000666」);<br>arrayList.add( 「8502000666」);<br>arrayList.add( 「4440832」);<br>arrayList.add( 「02166353535」);<br>arrayList.add( 「2166353535」);<br>arrayList.add( 「08507240724」);<br>arrayList.add( 「8507240724」);<br>arrayList.add( 「4440202」);<br>arrayList.add( 「08502220444」);<br>arrayList.add( 「8502220444」);<br>arrayList.add( 「4440444」);<br>arrayList.add( 「08502220800」);<br>arrayList.add( 「8502220800」);<br>arrayList.add( 「4440800」);<br>arrayList.add( 「08502220333」);<br>arrayList.add( 「8502220333」);<br>arrayList.add( 「4440333」);<br>arrayList.add( 「08502110111」);<br>arrayList.add( 「8502110111」);<br>arrayList.add( 「08502220600」);<br>arrayList.add( 「8502220600」);<br>arrayList.add( 「4448444」);<br>arrayList.add( 「02123048444」);<br>arrayList.add( 「2123048444」);<br>arrayList.add( 「08502220900」);<br>arrayList.add( 「8502220900」);<br>arrayList.add( 「4440900」);<br>arrayList.add( 「08502223663」);<br>arrayList.add( 「8502223663」);<br>arrayList.add( 「08502225666」);<br>arrayList.add( 「8502225666」);<br>arrayList.add( 「4445666」);<br>arrayList.add( 「02166660101」);<br>arrayList.add( 「2166660101」);<br>arrayList.add( 「08502510123」);<br>arrayList.add( 「8502510123」);<br>arrayList.add( 「02123541111」);<br>arrayList.add( 「2123541111」);</span>n

不過我們也發現開發惡意軟體的人可能會有點懶惰或在編程方面沒有什麼經驗,顯示用於攔截/阻止傳出呼叫的字元串和網上搜到的一模一樣。

C&C伺服器還有用於從用戶獲取憑據的特殊登錄頁面:

顯示釣魚窗口WebView,並從命令中指定的鏈接下載內容。

以上就是我們對他們的分析,我們有理由相信隨著手機銀行業務的普及,今年可能會面臨更多類似的情況。

本文翻譯自:bemre/bankbot-mazain ,如若轉載,請註明來源於嘶吼:t針對Android設備的開源手機銀行木馬BankBot / Mazain分析 更多內容請關注「嘶吼專業版」——Pro4hou

推薦閱讀:

乾貨 | 如何繞過微軟Decvice Guard執行任意代碼
如何利用sdclt.exe繞過UAC?
趨勢科技技術分析:詳解無文件勒索病毒Sorebrect

TAG:技术分析 | 移动安全 |