国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于Janus漏洞的持續(xù)隱蔽攻擊方法

2020-11-26 08:46劉春玲井靖戚旭衍
電子技術(shù)與軟件工程 2020年19期
關(guān)鍵詞:后門木馬漏洞

劉春玲 井靖 戚旭衍

(信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 河南省鄭州市 450000)

1 引言

近年來,Android 應(yīng)用安全漏洞頻發(fā)[4],存在暴露用戶敏感信息、銀行財(cái)產(chǎn)信息、監(jiān)聽、欺詐用戶輸入等威脅。Janus 漏洞是Android平臺爆出的核彈級漏洞,惡意攻擊者利用該漏洞,可以任意地修改APK 中的代碼,卻不需要對APK 進(jìn)行重新簽名。目前有大量的Android 漏洞原理及修復(fù)的研究[1-3],但鮮有還原入侵過程及惡意入侵對用戶信息竊取情況展示,本文提出一種在Android 系統(tǒng)上利用漏洞實(shí)現(xiàn)隱蔽入侵并進(jìn)行數(shù)據(jù)回傳的方法,從Android 簽名機(jī)制上入手,實(shí)現(xiàn)在不修改原裝APK 驗(yàn)證簽名的情況下,對APK 進(jìn)行修改并植入可持續(xù)存活的后門。通過隱蔽的傳播方式,偽裝成正版升級程序,保持原有功能不變,隱蔽繼承原APK 已經(jīng)擁有的權(quán)限,甚至替換原裝應(yīng)用,實(shí)現(xiàn)后門的不可刪除性。最終實(shí)現(xiàn)在目標(biāo)不知情下,實(shí)現(xiàn)錄音、拍照、讀取文件等數(shù)據(jù)回傳和隱秘竊聽的功能。

2 Janus漏洞原理分析

2.1 Janus漏洞原因

Android 系統(tǒng)具有自己一套獨(dú)特的簽名機(jī)制。開發(fā)者在發(fā)行應(yīng)用的時(shí)候,需要先使用自己獨(dú)特的私鑰對應(yīng)用簽名,如果試圖對這個(gè)應(yīng)用的某一個(gè)文件進(jìn)行修改,就會破壞APK 原來的簽名,這時(shí)就必須重新給APK 簽名,否則無法通過Android 的安裝檢測。安卓在4.4 中引入了新的執(zhí)行虛擬機(jī)ART,可以直接運(yùn)行優(yōu)化后的dex 文件。當(dāng)art 虛擬機(jī)解析一個(gè)APK 文件時(shí),先解析頭部的magic 字節(jié)來判斷文件類型,如果是代表dex 文件的字節(jié)頭,就會將該文件加載成dex。如果不是,就會將該文件以包含dex 文件的Zip 文件來解析。ZIP 文件的讀取方式是通過在文件末尾定位central directory,然后通過里面的索引定位到各個(gè)Zip entry,每個(gè)entry 解壓之后都對應(yīng)一個(gè)文件。Janus 漏洞構(gòu)造一個(gè)APK,從其頭部看是一個(gè)Dex 文件,從其尾部看,是一個(gè)APK 文件,Android V1 簽名使用的是傳統(tǒng)JAR 簽名方式,建立在對Zip 文件內(nèi)的所有entry 進(jìn)行校驗(yàn),防止APK 內(nèi)部的entry 被篡改,但是無法校驗(yàn)整個(gè)Zip 文件是否被篡改。因此可以突破Android 簽名的防篡改作用,實(shí)施攻擊。

2.2 Janus漏洞利用過程

本文具體的漏洞利用分為3 步:

(1)從設(shè)備上提取目標(biāo)應(yīng)用的APK 文件,并在該提取出來的APK 文件中,添加后門。從修改后的APK 文件中提取出dex 文件。將惡意攻擊DEX 文件放在前,原始APK 文件放在后,直接拼接成新的APK 文件。

(2)修復(fù)新的APK 的ZIP 格式部分和DEX 格式部分中的偏移值和文件長度字段。安卓系統(tǒng)在安裝時(shí)用ZIP 的讀取機(jī)制從末尾開始進(jìn)行文件的讀取,讀取到了原始的APK 內(nèi)容,并且以V1 的方式進(jìn)行校驗(yàn),認(rèn)為這個(gè)文件是正常的,沒有篡改,APK 安裝成功。

(3)修復(fù)后重新修改為APK 文件。為了更加隱蔽的進(jìn)行攻擊,先在原有APK 上添加后門,然后打包編譯后,將其中的classes.dex文件提取出來,再拼接上原始的APK。在運(yùn)行時(shí),Android 的ART虛擬機(jī)從文件頭開始讀取,發(fā)現(xiàn)是一個(gè)DEX 文件,直接執(zhí)行,這樣就可以在原始APK 簽名的情況下,同時(shí)滿足原始APK 所具有的功能,隱蔽地附帶執(zhí)行我們所添加地后門程序,在用戶不知情地情況下,執(zhí)行攻擊文件進(jìn)行入侵。

3 基于Janus的連續(xù)隱蔽攻擊方法

本文通過手工注入的持續(xù)連接攻擊、利用快傳軟件隱蔽攻擊、基于中間人攻擊的隱蔽攻擊三種方式實(shí)施基于Janus 的連續(xù)隱蔽攻擊。

3.1 基于手工注入的持續(xù)連接攻擊方法

為實(shí)現(xiàn)隱蔽的在目標(biāo)設(shè)備中植入木馬,本文通過手工分析注入的方式在目標(biāo)APK 中注入后門,在保持原來應(yīng)用功能不變的情況下實(shí)現(xiàn)在后臺隱秘運(yùn)行木馬程序

本文通過修改修改metasploit 框架下的payload 源碼,添加保持持久化連接的功能。主要通過以下兩部分實(shí)現(xiàn):

(1)在Service 銷毀時(shí)自動(dòng)重啟。

(2)添加AlarmManager 使Payload.start( )定時(shí)執(zhí)行。

在ondestory 方法中添加服務(wù)銷毀重啟的指令,可以實(shí)現(xiàn)在用戶將APP 關(guān)閉,導(dǎo)致連接斷開、服務(wù)關(guān)閉時(shí),馬上重新啟動(dòng)服務(wù)并重新建立會話連接。缺陷是服務(wù)不會重新運(yùn)行,會話無法重新連接。解決思路是通過定時(shí)提醒的方法來重復(fù)執(zhí)行service,從而在重啟service 的過程中不斷建立新的會話從而保持連接持續(xù)。

實(shí)驗(yàn)驗(yàn)證無論APP 是否開啟,只要用戶開機(jī)并保持網(wǎng)絡(luò)連接就可以實(shí)現(xiàn)通信會話始終連接。

具體流程先通過Metasploit 框架生成使用tcp 通訊方式的木馬APK,其次使用反編譯工具APKtool 對目標(biāo)文件以及payload.APK文件進(jìn)行反編譯提取木馬APK 中核心的代碼文件,并組合到目標(biāo)APK 中,然后將木馬APK 中核心代碼文件結(jié)合到目標(biāo)APK 反編譯后的smali 源碼文件中。最后在目標(biāo)APK 的啟動(dòng)源碼中注入hook并增加調(diào)動(dòng)木馬相關(guān)服務(wù)的smali 指令,通過AndroidManifest.xml找到相關(guān)的啟動(dòng)指令位置,并同時(shí)在其中增加應(yīng)用程序權(quán)限。最后對反編譯后的APK 源碼文件進(jìn)行重新編譯。即可生成帶后門的APK 文件。

3.2 基于快傳軟件的隱蔽傳輸

Android 系統(tǒng)會備份安裝在本機(jī)的APK 文件,其中系統(tǒng)APK安裝在/system/APP 目錄下,用戶APP 安裝在/data/APP 目錄下。而快牙之類的快傳軟件正是將這部分備份后的APK 提取出來,然后通過網(wǎng)絡(luò)進(jìn)行傳輸。當(dāng)一臺手機(jī)上已經(jīng)安裝有修改后的APK 時(shí),系統(tǒng)也會將此修改后的APK 完整備份在系統(tǒng)中,當(dāng)使用快牙軟件進(jìn)行手機(jī)間互傳時(shí),就會將修改后帶有后門的APK 傳輸至對方手機(jī)。

3.3 基于中間人攻擊的隱蔽攻擊方法

中間人攻擊指在內(nèi)網(wǎng)范圍內(nèi),攻擊主機(jī)通過ARP 欺騙的方式,欺騙局域網(wǎng)內(nèi)其余主機(jī),冒充網(wǎng)關(guān),截獲局域網(wǎng)內(nèi)的數(shù)據(jù),從而將其余用戶訪問的下載鏈接地址重定向?yàn)楣糁鳈C(jī)的http 服務(wù)器地址。如果在攻擊主機(jī)的http 服務(wù)器上放置下載APK 的鏈接,當(dāng)用戶訪問指定網(wǎng)頁時(shí)就重定向到用戶的APK 上,從而實(shí)現(xiàn)APK 劫持下載。

用戶下載軟件分成直接下載和間接下載兩種方式,針對兩種不同的下載方式,可以采用不同的劫持手段。通常在手機(jī)端下載APK 時(shí),網(wǎng)站出于安全考慮并不會直接給出直接下載地址,而是采用間接下載的方式,針對這種下載的方式,我們可以通過替換302 Moved Temporarily 數(shù)據(jù)包中的Location 屬性的下載程序地址,從而完成下載劫持。而采用直接下載方式的網(wǎng)站,需要先將200 ok 的響應(yīng)數(shù)據(jù)包,修改成302 Moved Temporarily 數(shù)據(jù)包,并添加location 屬性,同時(shí)定向到目標(biāo)地址,從而實(shí)現(xiàn)劫持。

4 測試與驗(yàn)證

4.1 測試環(huán)境及步驟

本文采用v1 簽名機(jī)制的Android 5 和Android 6 為目標(biāo)Android系統(tǒng)測試用例,實(shí)現(xiàn)在不改變v1 簽名的情況下對Android 目標(biāo)手機(jī)的惡意軟件傳播,實(shí)現(xiàn)獲取系統(tǒng)信息、隱蔽拍照、隱蔽錄像、隱蔽錄音、系統(tǒng)截圖、獲取手機(jī)聯(lián)系人、獲取手機(jī)通訊錄、獲取手機(jī)短信、發(fā)送短信等數(shù)據(jù)回傳等隱蔽攻擊。

4.1.1 制作惡意軟件

選用受眾較多的uc 瀏覽器APK 為測試用例,將正版的uc 瀏覽器手動(dòng)注入后門后,使用自動(dòng)化腳本進(jìn)行注入,注入成功后生成目標(biāo)為uc1 的APK。通過getmorepackinfo.jar 分析這兩個(gè)包簽名,可以發(fā)現(xiàn)這兩個(gè)包文件的簽名仍然相同,成功實(shí)現(xiàn)在不修改文件簽名的情況下修改APK。

4.1.2 惡意軟件隱蔽傳播測試

使用小米note 和Oppo R7 測試惡意軟件的快牙傳播(操作系統(tǒng)分別為Android6.0 和Android5.1.1),在小米上安裝原版uc APP,oppo 手機(jī)上安裝注入后門的uc1 APP,然后把oppo 手機(jī)中的uc1 瀏覽器安裝包傳送給小米,小米收到后進(jìn)行升級安裝并顯示安裝成功。

4.1.3 中間人攻擊測試

將APK 放置在https 服務(wù)器上地址即為本機(jī)IP 地址,訪問IP地址時(shí)即可下載APK,修改etter.dns 文件將www.baidu.com 的映射替換成本機(jī)地址,這樣目標(biāo)主機(jī)訪問百度時(shí)就會變成訪問本機(jī)地址,從而能夠彈出下載APK 的提示,然后使用ettercap 軟件進(jìn)行dns 欺騙,設(shè)置目標(biāo)主機(jī)為目標(biāo)1,網(wǎng)關(guān)為目標(biāo)2,開啟dns_spoof 功能進(jìn)行欺騙。

4.1.4 惡意文件替換測試

(1)替換多權(quán)限軟件。大多數(shù)用戶常用的軟件,為了能夠?qū)崿F(xiàn)更多的功能,都會被用戶賦予大量敏感權(quán)限,針對這部分APP的攻擊,替換的APP 會繼承被替換的APP 所擁有的權(quán)限,隱蔽獲取用戶敏感權(quán)限。

(2)替換系統(tǒng)APP。系統(tǒng)APP 在常規(guī)情況下無法修改,但可以更新系統(tǒng)APP,利用Janus 漏洞制作帶后門的系統(tǒng)APP 就可以對系統(tǒng)APP 進(jìn)行更改,從而將后門植入系統(tǒng)APP 中,同時(shí)受到系統(tǒng)的保護(hù),具備無法刪除的特性。

4.2 測試結(jié)果與分析

植入用戶系統(tǒng)的APK,在保持原有功能的情況下,可以實(shí)現(xiàn)獲取系統(tǒng)信息、隱蔽拍照、隱蔽錄像、隱蔽錄音、系統(tǒng)截圖、獲取手機(jī)聯(lián)系人、獲取手機(jī)通訊錄、獲取手機(jī)短信、發(fā)送短信等數(shù)據(jù)回傳功能。以上構(gòu)成一整套完整的漏洞利用體系,可以實(shí)現(xiàn)在用戶升級應(yīng)用的時(shí),隱蔽地在目標(biāo)設(shè)備上植入木馬并實(shí)現(xiàn)信息竊取。

5 總結(jié)

針對安卓系統(tǒng)簽名驗(yàn)證機(jī)制和應(yīng)用編譯模式特性造成的Janus漏洞,本文提供了一整套的漏洞利用流程。

首先是針對Janus 漏洞的原理和構(gòu)成條件,將惡意dex 文件和目標(biāo)APK 進(jìn)行結(jié)合,從而在不修改簽名的情況下修改APK 程序。其次利用手工為APK 程序增添后門的方法,在保持原有APK 功能的情況下,注入具有數(shù)據(jù)回傳功能的payload。最后針對measploit框架木馬容易掉線的問題,提出了改善木馬的存活能力的辦法,在應(yīng)用關(guān)閉或服務(wù)關(guān)閉的情況下能夠迅速重啟建立連接。然后通過快傳軟件或者中間人攻擊的手段進(jìn)行傳播,并通過替換高權(quán)限APK,實(shí)現(xiàn)在用戶不知情的情況下繼承原APK 所擁有的敏感權(quán)限,或替換系統(tǒng)APK 享受系統(tǒng)軟件防用戶刪除的特性。最終植入用戶系統(tǒng)的APK,在保持原有功能的情況下,可以實(shí)現(xiàn)獲取系統(tǒng)信息、隱蔽拍照、隱蔽錄像、隱蔽錄音、系統(tǒng)截圖、獲取手機(jī)聯(lián)系人、獲取手機(jī)通訊錄、獲取手機(jī)短信、發(fā)送短信等數(shù)據(jù)回傳功能。以上構(gòu)成一整套完整的漏洞利用體系,可以實(shí)現(xiàn)在用戶升級應(yīng)用的時(shí),隱蔽地在目標(biāo)設(shè)備上植入木馬并實(shí)現(xiàn)信息竊取。

猜你喜歡
后門木馬漏洞
漏洞
小木馬
騎木馬
小木馬
工業(yè)物聯(lián)網(wǎng)后門隱私的泄露感知研究
旋轉(zhuǎn)木馬
三明:“兩票制”堵住加價(jià)漏洞
高鐵急救應(yīng)補(bǔ)齊三漏洞
這個(gè)班還不錯(cuò)
新途安1.4TSI車后門車窗玻璃不能正常升降
澄迈县| 杭锦后旗| 嘉祥县| 威海市| 宁波市| 同心县| 乐陵市| 乐山市| 玛纳斯县| 博爱县| 天全县| 瑞丽市| 南木林县| 曲沃县| 吴桥县| 香港 | 铁岭县| 太保市| 响水县| 松江区| 铜陵市| 西丰县| 海原县| 太康县| 句容市| 乌恰县| 确山县| 临漳县| 延津县| 白河县| 泌阳县| 曲水县| 顺义区| 名山县| 班玛县| 天气| 屯留县| 南投市| 曲水县| 大理市| 麻城市|