前言
主要对metasploit渗透测试框架进行简单介绍与使用。希望能够帮到大家。废话不多说,开整。
一、metasploit介绍
1.产生原因
渗透测试者的困扰就是需要掌握数百个工具软件,上千个命令参数,实在记不住。新出现的漏洞POC/EXP有不同的运行环境要求,准备工作繁琐。大部分时间都在学习不同工具的使用习惯,如果能统一就好了,进而Metasploit就产生了。POC
,全称为"ProofofConcept”,中文是“概念验证”,常指一段漏洞证明的代码。 EXP
,全称”Exploit”,中文“利用”,指利用系统漏洞进行攻击的动作。
Metasploit框架是可以添加漏洞代码片段,就好比一个军火库,它里面有各种武器供大家使用,当然也有新的武器被研发出来,放到武器库里面后,都可以使用,这就是框架的好处,新的攻击代码可以比较容易的加入MSF框架供大家使用。
2.metasploit框架介绍
Metasploit 架构介绍
1.REX
:基础功能库,用于完成日常基本任务,无需人工手动编码实现,处理socket连接访问,协议应答(http/SSL/SMB等),编码转换(XORBase64Unicode)
2.技术模块
:5.0之后就增加了个evasion模块,现在一共是7个技术模块。
3.插件
:插件可以调用外部一些渗透测试工具,例如:loadnessus就可以调用nessus扫描软件。
4.接口
:有msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面和 msfapi远程调用接口。
5.功能程序
:metasploit还开发了一些可以直接运行的命令,比如msfpayload、msfencode以及msfvenom。
3.发展与壮大
Metasploit 是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当 H.D. Moore 在 2003 年发布Metasploit 时,计算机安全状况也被永久性地改变了。
仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补工了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有 Metasploit用户。"MSF
目前是最流行,最强大,最具扩展性的渗透测试平台软件,2003年H.DMoore 发布第一版2007年用ruby
语言重写了。说句题外话, shodan黑暗搜索引擎H.D.Moore也参与开发了。
二、使用metaspliot
1.模块介绍
注意文件位置,位于/usr/share文件夹下,这个主要是共享文件夹
解释一下这七类技术作用
auxiliary
:辅助模块,负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等辅助模块。
encoders
:对payload进行加密,躲避AntiVirus检查的模块。
evasion
:创建木马文件,功能上比较算是msfvenom的一个子功能的存在。
exploits
: 利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动或被动)
nops
:提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令,这样当触发渗透攻击后跳转执行Shellcode时,有一个较大的安全着陆区,从而避免受到内存,地址随机化,返回地址计算偏差等原因造成的Shellcode执行失败,提高渗透攻击的可靠性。
payloads
: 成功exploit后,真正的目标系统执行的代码或指令。
分为3类payload,分别是single、stages和stagers。shellcode主要是特殊的payload。用于返回shell。
single:all in one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接。
stages:利用stagers建立的连接下载后续的payload。
post
:后期渗透模块。取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作。
2.模块命令基本使用
1.启动MSF
启动 Metasploit框架需要运行Postgresql数据库,现在只要运行Metasploit时都会自动启动 Postgresql数据库。如果数据库没启动的话,可以手动开启,下面时管理数据库的一些命令。 Postgresql监听5432端口。查看一下端口状态
//两种方式查看端口是否监听
lsof -i :5432
//或者
netstat -pantu |grep 5432
很明显,没监听端口。
//启动服务
systemctl start postgresql.service
🆗!打开了。
//开机自启
systemctl enable postgresql.service
2.管理数据库
这里就不做演示了,感兴趣的可以在自己做一下。
//启动并初始化数据库
msfdb init
//删除并重新初始化数据库
msfdb reinit
//删除数据库并停止使用它
msfdb delete
//启动数据库
msfdb start
//停止数据库
msfdb stop
//检查服务状态
msfdb status
//启动数据库并运行msfconsole
msfdb run
3.Msfconsole接口
1.最流行的用户接口,几乎可以使用全部MSF功能,控制台命令支持TAB自动补全
2.支持外部命令的执行(系统命令等)
//-q:安静开启 -v:版本信息 其他命令可以用-h查看,就不介绍了这里。
msfconsole -q /-v 参数
4.基本使用与控制命令
启动msfconsole,命令:msfconsole
感觉形状抽的可以直接输入banner
换个图形
输入help
查看命令信息,内容过多,大家可以自己去查看
输入connect
然后回车,会展示命令选项用法
show
命令比较强大,但是也比较慢,因为显示东西多。
还有search
也是很强大的功能,大家可以自行查看
这里进行简单使用查找并使用模块use
命令
解释一下这个东西含义
exploit/windows/smb/ms08_067_netapi
exploit:代表攻击模块windows:代表平台 smb:代表应用协议
用use使用一个模块后,可以使用 show options查看我们需要配置的选项,
使用showtaraets选择目标主机系统、
使用showpayloads选择 payload、
使用showadvanced查看高级参数、
使用 showevasion查看用来做混淆、逃避的模块。
set/setg:设置参数,比如要渗透的主机IP、payload等。我们可以用showmissing查看没有设置的参数;setg是设置全局变量,避免每个模块都要输入相同的参数。
unset/unsetg:取消设置参数。unsetg是取消设置的全局变量
save:设置的参数在下一次启动的时候不会生效,可以用save保存我们使用过程的设置。/root/msf4/config cat到文件进行查看
check:检查目标是否真的存在这个漏洞,大部分模块没有check功能
run/exploit:攻击.
jobs/kill:杀死进程
session:建立会话
演示一波
还有很多选项可以自行调配,端口及IP均可修改,由目标实际情况而定。
使用show targets
显示能攻击的目标系统。这些都是能攻击的目标主机系统。太长,没截全,各位自行查看。
获得目标系统类型后,找出目标,将相同系统序列号设为目标系统
攻击完成之后要去获得对方shell
去执行payload
还是使用search
去找,规则类似。(这个图设置看不清,看下一张大图,csdn这水印太大了)
然后选择想要的shell
然后exploit
,这张没成功的原因是系统类型不对,无法针对
附上成功的图,成功会创建一个shell
,这个是反弹shell
,不是交互式shell
,大家去可以了解一下。
还有很多命令,输入?
查看,这边就是一个对命令简单的使用介绍,并不代表只有这些命令
命令分为内核命令,模块命令,数据库后端命令等等,这边就展示一下常用的模块相关命令
刚刚使用的命令就是这里的。
还有超多内容,使用原理都大体相同,大家可以自行探索!文章来源:https://www.toymoban.com/news/detail-422890.html
总结
今天主要是对msf的简单使用分享,希望能够对你有所帮助!再会!文章来源地址https://www.toymoban.com/news/detail-422890.html
到了这里,关于metasploit使用介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!