9
今年端午節(jié)特意動用帶薪年假,在家本著遠(yuǎn)離黑客,遠(yuǎn)離江湖,舒舒服服和家人享受幾天假期,誰知卻早已深陷江湖。
6月11日中午叔叔找上門,說自己的銀行卡莫名被盜刷了8萬1千元,錢被打到了平安付科技服務(wù)有限公司客戶備付金,以及同樣摘要為平安的廣州銀聯(lián)網(wǎng)絡(luò)支付有限公司客戶備付金,如下圖:
于是上網(wǎng)搜了一下平安付科技這家公司得到如下信息:
平安付科技本身是一個(gè)第三方的支付平臺接口,錢轉(zhuǎn)到平安付科技賬上后可以用來投資、理財(cái)?shù)?,趕緊給平安付科技客服去了個(gè)電話,客服那邊問了相關(guān)信息后卻讓等3天才能給結(jié)果,這服務(wù)態(tài)度~(此時(shí)叔叔已經(jīng)在當(dāng)?shù)匦叹?duì)報(bào)案)。
我仔細(xì)推敲了這個(gè)事情,錢是被打到平安付的旺財(cái)上,對方需要綁定銀行卡,需要用到的信息有:銀行卡、身份賬號、銀行預(yù)留的手機(jī)號碼、短信驗(yàn)證碼。前面的信息都容易掌握(目前網(wǎng)絡(luò)上有大量的泄露的銀行卡號、身份證號、手機(jī)號等信息)況且叔叔每次和客戶打款時(shí)也會把自己的銀行卡號、身份證號發(fā)給對方,所以這些信息默認(rèn)早就泄露了,這里的關(guān)鍵是如何得到的短信驗(yàn)證碼,且通過圖1可以看出,犯罪分子利用平安付轉(zhuǎn)走了4比錢,且最后一筆1000元都沒有放過,說明對方掌握了此張銀行卡的余額信息。
到這里總結(jié)出了兩點(diǎn):
對方掌握了1、手機(jī)號碼實(shí)時(shí)短信驗(yàn)證碼;2、銀行卡的余額信息。
想到這里最先想到的是短信木馬了。于是拿出他的手機(jī),查看短信權(quán)限時(shí)赫然看到了短信權(quán)限處存在一個(gè)叫做“校訊通”的應(yīng)用,安裝日期正是6月10日。由于叔叔的孩子還在上中學(xué)所以經(jīng)常會收到相關(guān)校訊通的短信,他10日當(dāng)天正好收到了一條提示安裝校訊通的短信,也沒有多想就直接安裝上了。
到這里事情的起因已經(jīng)很接近了,很可能是這是一個(gè)木馬程序竊取了他的短信內(nèi)容,叔叔滿臉質(zhì)疑,絲毫不相信這樣的事情也會發(fā)生他自己身上。
于是我繼續(xù)訪問這個(gè)IP地址,瀏覽器直接彈出提示下載校訊通.apk
拿到此APK后當(dāng)立即開始分析(職業(yè)病又犯了,哎,我好好的端午節(jié)假期),這里發(fā)現(xiàn)這個(gè)版本的校訊通安卓木馬程序已經(jīng)進(jìn)行了升級,與以往的此類程序多了很多新功能:增加了遠(yuǎn)程更改配置功能和呼叫轉(zhuǎn)移功能,可以更改收信手機(jī)號碼或發(fā)信帳號的密碼,并能夠呼叫轉(zhuǎn)移聯(lián)通和移動用戶電話。
本次分析的樣本特征值:
用來接收受害人短信的郵箱賬號密碼:
進(jìn)入郵箱看了一眼,滿眼都是淚,進(jìn)去的時(shí)候此郵箱還在不停的接收著來自各地受害人的短信的郵件:
木馬程序發(fā)送的受害人手機(jī)上所有的短信內(nèi)容:
受害人手機(jī)上的通訊錄,此木馬提取被害人通訊錄后會利用偽造的號碼繼續(xù)向通訊錄好友發(fā)送偽裝成校訊通的木馬安裝短信,從而繼續(xù)擴(kuò)大安裝范圍:
受害人手機(jī)第一次感染運(yùn)行后發(fā)來的上線信息:
搜索了一下平安關(guān)鍵詞,果然找到了綁定平安付等第三方支付的短信內(nèi)容:
當(dāng)然除了平安付平臺外還有支付寶等:
這里要特別給支付寶的企業(yè)責(zé)任精神點(diǎn)個(gè)贊,我第一時(shí)間聯(lián)系了這位受害人,受害人被盜走的錢中通過支付寶劃走的這一份部分已經(jīng)得到全額賠付,而平安付的這筆仍然還在等待中。
asw6eih.vby.MainActivity
1、申請系統(tǒng)管理員權(quán)限
2、設(shè)置完畢之后檢查是否有了相應(yīng)的權(quán)限,即是否被用戶接受。
3、設(shè)置默認(rèn)處理軟件為當(dāng)前App軟件
之后檢查是否被設(shè)置為默認(rèn)處理軟件。
我們注意到了下面這一行代碼,這里的作用就是被設(shè)置為默認(rèn)短信處理應(yīng)用后就有權(quán)限攔截短信了:
而且在短信處理的Service中也確實(shí)發(fā)現(xiàn)了攔截的代碼(SmsReciver):
通過BroadCast方式進(jìn)行短信攔截僅在安卓4.4之前的版本有效,此時(shí)我們發(fā)現(xiàn)了針對安卓4.4版本,木馬作者寫了一個(gè)特殊的服務(wù)類:SmsReceiver4_4專門針對安卓4.4的版本。
4、 設(shè)置短信監(jiān)聽
asw6eih.vby.MainService
在用戶啟動應(yīng)用的時(shí)候,不僅僅啟動了一個(gè)Activity讓用戶做出一些響應(yīng),還啟動了一個(gè)服務(wù)。
此時(shí)看郵箱里有不少中招的內(nèi)容,如下所示,均來自該自動啟動的服務(wù):
在用戶第一次啟動時(shí),注冊自動啟動組件,BootReceiver
AndroidManifest.xml中注冊的事件
從下圖可以看到BootReceiver繼承自BroadcastReceiver
自動啟動組件啟動后,會根據(jù)安卓版本啟動對應(yīng)的MainService
所以發(fā)生以上的事件均會被觸發(fā)啟動:短信接收、系統(tǒng)啟動、用戶進(jìn)入home界面、kill應(yīng)用等
指令:sssxxx#1002#password (xxx可為任意內(nèi)容,也可無)
來看asw6eih.vby.xxttth5.c這個(gè)類
從配置文件中取出v0,然后賦值給v5
其中有這樣的一段
可以看到MailFrom_Passa是郵箱密碼,接受v1的參數(shù),其中參數(shù)v7是固定的值2,而參數(shù)asw6eih.vby.xxttth5.a.d是初始化的值,也就是最開始的時(shí)候看到的郵箱:
所以這一段作用是修改了當(dāng)前郵箱的密碼,并重新寫入了配置文件。觸發(fā)這一過程,指令是定義了特定的格式的,具體如下:
需要被執(zhí)行l(wèi)abel_129這個(gè)過程,而且v1的長度必須是v9的大小,v9是固定值3。
所以v1的格式應(yīng)該為xxx#xxx#password
接下來就是switch case的過程(吐槽下這個(gè)程序效率……還好可以選擇的不多):
可以看到case 1002的時(shí)候,而v0_1是v1的下標(biāo)為1的值,現(xiàn)在的格式可以推定為(這里反編譯軟件給出的跳轉(zhuǎn)存在問題):
xxx#1002#password
這個(gè)時(shí)候還差第一段的內(nèi)容,我們繼續(xù)看這個(gè)類,發(fā)現(xiàn)v1跟asw6eih.vby.xxttth5.a.b做了對比,如下圖所示:
而asw6eih.vby.xxttth5.a.b的值實(shí)際上也做了定義,如下所示:
之后v1跟上面的值做了比較,其實(shí)也就是sss,如下所示:
截取了v1的前幾位跟預(yù)定義字符串sss做比較(這里截取了3位)
之后定義了v3的值,其實(shí)是手機(jī)號。
控制字符串的大致格式為sssxxx#指令id#內(nèi)容,由于流程內(nèi)容太多,不一一描述。xxx可為任意。這里修改郵箱密碼的指令應(yīng)該為sssxxx#1002#password
指令:sssxxx#1011#13333333333 (xxx可為任意內(nèi)容,也可無)
在下面一個(gè)字符串引起了我們的注意:
label_177,其中“轉(zhuǎn)移號碼設(shè)置成功”,進(jìn)一步分析:
label_177來自1011指令,所以指令為sss#1011#command
c.a校驗(yàn)了手機(jī)號的格式,只能是13,14,15,17,18開頭的手機(jī),而且都是數(shù)字的,總共11位,可以說真是“經(jīng)驗(yàn)豐富懂安全”的“開發(fā)人員”。
之后回復(fù)了:轉(zhuǎn)移號碼設(shè)置成功
并將該值放到了v5里面,也就是配置文件里面。
label_40是保存配置等,這里不多分析了。
所以,修改手機(jī)號碼的格式為sssxxx#1011#13333333333,發(fā)送這樣的信息就可以修改接收手機(jī)為1333333333了,注意手機(jī)號碼一定得是合法的11位手機(jī)。
短信攔截功能
電話轉(zhuǎn)接功能
我猜這個(gè)木馬的設(shè)計(jì)者一定是個(gè)處女座,問題考慮的非常細(xì)致,這里竟然還設(shè)置了呼叫轉(zhuǎn)移功能,在受騙者電話忙音的時(shí)候幫受害者接電話?
該類繼承了BroadcastReceiver
當(dāng)被觸發(fā)時(shí),會將電話轉(zhuǎn)移到控制端。我們知道**67*手機(jī)號碼#這是遇忙呼叫轉(zhuǎn)移(聯(lián)通/移動可用), 被轉(zhuǎn)移到的號碼其實(shí)就是控制端的手機(jī)號碼。
木馬有效期
我們發(fā)現(xiàn)一個(gè)奇怪的現(xiàn)象,在向系統(tǒng)注冊這些組件的時(shí)候,木馬做了一個(gè)判讀,會判斷c.b(),然后決策是否注冊這些組件,如下所示:
上面的截圖來自MainActivity也就是程序啟動的主界面。
跟進(jìn)這個(gè)方法發(fā)現(xiàn)是對時(shí)間的檢查:
發(fā)現(xiàn)如果當(dāng)前時(shí)間超過了設(shè)定的時(shí)間2016-10-01 14:01:00,會返回false,不再向系統(tǒng)注冊該組件,否則返回true。也就是這個(gè)時(shí)間以后再有新用戶安裝就已經(jīng)無效了。
1.安裝手機(jī)殺毒軟件定期查殺手機(jī)木馬病毒。
2.定期檢查手機(jī)的授權(quán)管理,如小米手機(jī)的安全中心-授權(quán)管理-應(yīng)用權(quán)限管理-權(quán)限管理-短信與彩信相關(guān)權(quán)限,檢查此類敏感功能處權(quán)限授予對象是否合法。
3.不要root手機(jī)(黑客除外)。
4.不要安裝來路不明的應(yīng)用,對于小白建議只安裝手機(jī)品牌商店中的應(yīng)用(起碼安全性要高一些)。
5.購買銀行卡盜刷理賠保險(xiǎn),任何時(shí)候多一道保險(xiǎn)才多一份放心。
最后一句話也是最重要的:鑒于地下黑產(chǎn)牛的強(qiáng)大,我只能找個(gè)馬甲來發(fā)表此文了。
雷鋒網(wǎng)注: 本文作者豆芽菜,轉(zhuǎn)載請注明來自FreeBuf黑客與極客(FreeBuf.COM)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。