本篇文章給大家分享的是有關(guān)如何在Android APK中植入Meterpreter,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站10多年企業(yè)網(wǎng)站制作服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站制作及推廣,對宣傳片制作等多個行業(yè)擁有多年的網(wǎng)站運維經(jīng)驗的網(wǎng)站建設(shè)公司。
隨著移動設(shè)備的快速發(fā)展,我們?nèi)粘I钪械脑S多應(yīng)用程序正在遷移到云部署,從JavaScript瀏覽器框架到支持移動設(shè)備的前端,例如Apple iOS上的Objective-C,或基于Android的Java。這也促進了手機應(yīng)用的發(fā)展,與Apple不同,Android市場是一種開放的方式,允許任何人為商店做出貢獻,而且占據(jù)了移動市場份額的大部分。
此外,還有各種第三方網(wǎng)站可以直接下載Android應(yīng)用程序包文件(APK)。Metasploit允許測試人員使用meterpreter生成Android payload,并且可以安裝到Android設(shè)備上。Android應(yīng)用程序是用Java編寫的,它編譯成稱為DEX的Dalvik可執(zhí)行格式。應(yīng)用程序的編譯版本是DEX字節(jié)碼文件的ZIP文件。
Android上的Dalvik虛擬機最近被Android RunTime(ART)取代,后者增加了優(yōu)化并將DEX字節(jié)碼編譯為本地匯編代碼。Dalvik VM主要執(zhí)行大部分字節(jié)碼的即時(JIT)解釋。ART比Dalvik虛擬機具有更高的性能,Dalvik虛擬機僅優(yōu)化應(yīng)用程序的頻繁執(zhí)行部分的字節(jié)碼部分。
Smali/baksmali是Android DEX字節(jié)碼的匯編程序/反匯編程序。另一個名為“apktool” 的Android工具可以將壓縮的DEX(APK文件)反匯編成smali文件,并將smali文件重新組合回DEX,然后再其重新組合為APK格式。我們可以使用此工具來反匯編和修改現(xiàn)有的APK文件。
接下來的文章中,我們可以使用該工具進行反匯編,并在初始Android Activity的smali代碼中添加一個額外的靜態(tài)入口點,以啟動我們的Meterpreter??偟膩碚f,將Meterpreter嵌入一個APK文件的步驟如下:
1.在“apkmonk.com”或類似的鏡像站點上查找現(xiàn)有的有趣APK應(yīng)用程序。
2.生成Metasploit APK文件。
3.用“apktool”反匯編Metasploit APK文件,以及我們打算修改的APK文件。
4.將所有Meterpreter smali代碼復(fù)制到新的APK smali目錄。
5.通過查找具有以下行的intent-filter,在APK應(yīng)用程序的AndroidManifest.xml文件中找到代碼的入口點 :
包含此intent-filter的活動名稱將是您要搜索的入口點。
6.修改“.smali”
文件以包含啟動Meterpreter階段的代碼。
7.將Meterpreter AndroidManifest.xml
中的所有Meterpreter權(quán)限復(fù)制到修改后的APK的AndroidManifest.xml
中。
8.重新組裝成DEX壓縮格式。
9.使用“jarsigner”
為新創(chuàng)建的APK文件簽名,然后將其加載到目標(biāo)Android設(shè)備上。接下來我會用一個具體的例子來解釋下上述步驟,我從apkmonk.com下載了一個名為Cowboy Shooting Game的游戲的APK文件。
然后,我使用“msfvenom”命令生成Metasploit APK,如下所示。
然后使用“apktool” 對這兩個文件進行反匯編,如下所示:
一個簡單的方法是將目錄更改為Metasploit APK目錄,然后將“smali”目錄下的所有文件復(fù)制到“com.CowboyShootingGames_2018-09-22”目錄中。我從系統(tǒng)管理員那里學(xué)到的使用“tar”命令,你可以將tar的輸出傳輸?shù)降诙€命令,該命令改變目錄并“解壓縮”生成的文件。
下面我們可以看到輸入活動被列為“com.CowboyShootingGames.MainActivity”。我們知道這一點,因為XML中包含一個帶有“android.intent.action.MAIN”的intent-filter。
從上面可以看出,在這種情況下,文件將被命名為“MainActivity.smali”,并且完全限定類路徑中的“com/CowboyShootingGames” directory as per the periods (“.”)
目錄中。
在“MainActivity.smali”
文件中,我們正在尋找“onCreate()”
方法。
我們需要在“onCreate()”方法調(diào)用的正下方添加一行“smali”代碼來調(diào)用我們的Meterpreter。invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V
請注意,上面是一行代碼。使用與“payload”目錄中包含的所有“smali”文件中的所有路徑引用都必須修改,并更改目錄名稱本身。這可以手工完成,但容易出錯。繼續(xù)沒有任何混淆片刻,修改后的最終結(jié)果將像下面的截圖一樣。
下一步,使用“grep”搜索Metasploit“AndroidManfest.xml”文件中包含字符串“uses-permission”和“uses-feature”到修改后的APK的AndroidManiest.xml文件中.
您需要使用編輯器在新的“AndroidManifest.xml”文件中的適當(dāng)位置插入權(quán)限。搜索現(xiàn)有的“use-permission”行作為插入文本的位置的參考。
您最終可能會獲得一些重復(fù)的權(quán)限。您可以選擇刪除它們,它沒什么卵用。
現(xiàn)在 再次使用“apktool” 重新組合生成的APK包文件。最終結(jié)果將寫入APK目錄本身的“dist”目錄中。
對于重新簽名,一種簡單的方法是使用安裝Android studio時構(gòu)建的Android調(diào)試密鑰庫。調(diào)試密鑰庫位于UN * X系統(tǒng)上主目錄中的“.android”隱藏目錄中。
另一種方法是使用Java“keytool”生成您自己的自簽名密鑰庫,并使用“jarsigner”工具對其進行簽名,如下面的截圖所示。
此時,“final.apk”文件已準(zhǔn)備好了,可以使用“adb”安裝到Android系統(tǒng)上。
在演示中,我使用“GenyMotion”的虛擬機,這是一個基于x86的模擬器,它使用VirtualBox可以進行非常高性能的Android模擬。您可能會遇到的問題是x86仿真本身不支持ARM處理器。有一個解決方法,可以在線獲得一些ARM翻譯庫。您需要搜索“ Genymotion-ARM-Translation_v1.1.zip ”,然后將ZIP文件拖到正在運行的GenyMotion Android系統(tǒng)上。這不是100%可靠,并且仍可能導(dǎo)致一些應(yīng)用程序崩潰。我發(fā)現(xiàn)Nexus 6系列設(shè)備非常適合,因為“rooting”套件相當(dāng)可靠,并且通過USB電纜連接進行測試并不是太麻煩。
最后一步當(dāng)然是嘗試我們新感染的游戲。我們很快發(fā)現(xiàn),在我們安裝完游戲的那一刻,我們在KALI系統(tǒng)上獲得了一個Meterpreter shell。
那么問題來了,在執(zhí)行了上述所有必要步驟后。我發(fā)現(xiàn)出錯的可能性非常高。所以我決定使用Python腳本來自動執(zhí)行此過程。我稱它為“android_embedit.py”,無需花費太多精力,就可以完成工作。
“android_embedit.py”的原理是,只要您提供Metasploit生成的APK文件,和要修改的原始APK和密鑰庫,它將以自動方式執(zhí)行所有步驟并為您生成結(jié)果。以下是運行該工具的示例。所有臨時文件和輸出都將存儲在“?/ .ae”目錄中。
該工具還將刪除“metasploit”目錄名稱,并自動使用隨機字符串目錄名稱對其進行模糊處理。您可以在下面的截圖中看到此結(jié)果,其中列出了APK“smali / com”目錄的內(nèi)容。名為“ dbarpubw ”的目錄實際上包含Metasploitstager代碼。
以上就是如何在Android APK中植入Meterpreter,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。