前言
主要对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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)