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