Metasploit framework(二)——MSF基础构架及控制台命令详解


大叔要减肥
大叔要减肥 2022-09-26 14:30:00 47399
分类专栏: 资讯

Metasploit是一款开源的安全漏洞检测工具,可以帮助安全和IT专业人士识别安全性问题,验证漏洞的缓解措施,并管理专家驱动的安全性进行评估,提供真正的安全风险情报。这些功能包括智能开发,代码审计,Web应用程序扫描,社会工程。团队合作,在Metasploit和综合报告提出了他们的发现。

Metasploit Framework:

下载地址:https://www.rapid7.com/products/metasploit/download/

——————————————————————

metasploit版本介绍:

metasploit在官网上显示的共有两个版本:

1、Metasploit Framework

2、Metasploit Pro

Framework版本是一款开源的免费版本,操作界面为:Command-line,并且提供社区支持,是被大众广泛使用的一款版本,同时也是因为大神HD More并没有说将metasploit给了Rapid 7就放弃了对framework的技术支持。

Pro版本就是Rapid 7公司推出的另一款付费的商业版本,首次下载可以使用14天,现在好像使用一年的价格大概在20多万到30万左右,既然是付费的那么功能肯定是很齐全的包括整个服务:License授权、Web APP测试、AV免杀、操作界面web/cmd/adv cmd、IDS/IPS绕过等等功能支持,具体的可以参考Pro的文档或者要是大佬有钱也可以单独去买一个玩儿玩儿。

同时还有两个版本:

1、Metasploit Community

2、Metasploit Express

这两个版本都是基于web的版本,但是如果说有些奇葩的操作,web界面是很受限制的,第一个是免费的,第二个就是收费的大概在3W人民币左右,既然是收费的那么也会提供相关的服务,比如Rapid 7企业的技术支持。

metasploit framework的安装:
MSF默认集成于kali linux之中,并且metasploit framework可以在windows、macOS、linux等操作系统中安装。

windows系统安装的步骤就很死板大概在700多MB左右(现在最新版本的Windows版的环境变量会自动配置,同时在Windows中是有概率出现db_connect失败的,具体的连接需要指定framework下对应文件的*.yml文件,当然你也可以自己选择其他数据库去指定)

linux系统只需要执行:sudo apt install metasploit-framework即可。(现在的msf不像过去的一样需要自启动sql,在启动msf的同时,sql也会一并启动并且连接/usr/share/metasploit-framework/config目录下的database.yml文件)

注:使用postgresql数据库存储数据默认开启5432端口
 

MSF构架介绍:

metasploit可以说是更新特别快的,几乎是一周一更新,但是涉及到它的构架组成还是是稳定的,毕竟metasploit是一个框架式的工具,既然是框架模式,那么就如同房子的地基一样,只要铸成那就是不会变的,除非推了重来。

构架图如下:

简单介绍其具体构成主要部分:

Rex:
1、基本功能库,用于完成日常基本任务,无需人工手动编码实现
2、处理socket连接访问、协议应答(http/SSL/SMB等)
3、编码转换(XOR、Base64、Unicode)
MSF::Core:
主要提供Msf的核心基本API,是框架的核心能力实现库
Msf::Base:
主要提供友好的API接口,便于模块调用的库
注:对于Plugin插件我个人认为主要是主:漏洞扫描,虽然自己有扫描模块,但是有更优秀的,那么就连接和调用外部扩展功能和系统

功能模块介绍:

Exploits:利用系统漏洞进行攻击的动作,此模块对应每个具体漏洞的攻击方法为主动和被动,主要是调用shellcode进入到漏洞利用中;即:大致为一个模糊测试的过程。(漏洞:没有对传输内容做个很好的过滤;从而利用payload执行一个目标程序,达成控制服务器。)利用的过程完全是由我们发送的内容可以覆盖到寄存器中,到指定模块,对特定的那个点向其插入payload,再进行跳转,跳转到某一个地方。

注意:exploit这是一个流程(流程是不变的),不是payload达成效果的体现。

Payload:这是成功exploit之后,真正在目标系统执行的代码或指令。(Shellcode:只有当利用payload成功得到目标系统的shell,才能叫shellcode。Shellcode是payload的一种,由于其建立正向/反向shell而得名。不要搞混了)

三种Payload:目录所在/usr/share/metasploit-framework/modules/payloads/
1、Single:all-in-one(一体化,不需要依赖包或者库)相对来说是体积大的存在
2、Stager:目标计算机内存有限时,先传输一个较小的payload用于建立连接。相对来说是体积小的存在
(在真正的渗透测试中是完全可以考虑先传比较小的payload建立连接,再从建立的连接中给目标下载后续的payload)
3、Stages:利用stager建立的连接下载的后续payload

Auxiliary:执行信息收集、枚举、指纹探测、扫描等功能的辅助模块(没有payload的exploit模块)它不利用exploit,只做辅佐。注:存在的DoS模块主要是通过溢出让目标运行流程崩溃。
Encoders:对payload进行加密。躲避AV检查的模块;诸如:免杀。
Nops:提高payload稳定性及维持大小。
 

 

MSF控制台命令:

一:基本使用

使用前先命令升级:apt update; apt install metasploit-framework

在msf中是存在多个接口的,诸如:Msfcli使用接口、Msfconsole使用接口。而更多使用的都是Msfconsole接口,在这个接口下几乎可以使用全部MSF功能,同时控制台命令支持TAB自动补齐,支持外部命令的执行(系统命令等),启动方式两种:鼠标点击或者shell下使用msfconsole命令。

使用msfconsole启动是可以有参数设置的,比如不想要banner信息,如下:

其他需要的选项可以自己去参考。

注:在这里说明一个-r参数

msfconsole -r resource.rc

参数的作用是,直接执行一个rc文件,rc文件里面包含所有配置参数,即:整个流程将使用的命令,如:

 

只要msfconsole命令一执行,那么就可以得到目标session一个。

二:控制台命令

Banner(banner内容)


Color(模块是否显示颜色)

connect(类似为msf下的nc)

show(命令) auxiliary / exploits / payloads / encoders(manual手动、excellent极好用的模块等分类) / nops 
search(命令) usermap_script / help search 

如:search name:mysql / path:scada / platform:aix / type:aux /author:aaron / cve:2011  /    可多条件同时搜索
use(命令) dos/windows/smb/ms09_001_write (使用这个模块,然后去设置)

info(查看模块信息)


edit(编辑脚本文件)

show(命令) options(操作) / payloads(显示适合这个exploit利用的payload)/ targets(目标) / advanced(高级选项)/ evasion (查看这个exploit的相关信息)/missing(查看没有设置参数的选项)

Check(检查命令,检查是否存在这个漏洞。大部分exploit模块是没有这个check,要看exploit是否支持)

back(命令)

下面介绍sql相关:


db_status(查看状态)

db_rebuild_cache(将所有模块信息缓存到数据库里,通过数据库去检索)
db_nmap(扫描主机的信息,调用nmap)
(1)、Hosts(主机信息)  /  host 1.1.1.1  /  hosts -u / hosts -c address,os_flavor -S Linux 
(2)、services(端口信息) -p 80  /  services -c info,name -p 1-1000 
(3)、vulns :查看目标系统漏洞信息
(4)、creds :查看相关证书文件
(5)、loot :存储得到的hashdump
db_disconnect(断开连接)  
db_connect(连接指定数据库) 如: /usr/share/metasploit-framework/config/database.yml 
导入导出信息文件:
db_import 如:– db_import /root/nmap.xml 
db_export 如:– db_export -f xml /root/bak.xml

下面介绍在设置流程中会必要的命令:

set :设置模块的参数
unset:清除设置
setg:全局设置,即只要有那个名称变量,都会被设置成一样的)
unsetg :清除全局设置
save:保存设置的值,即保存之后退出仍然会存在
Run / exploit :相同的作用,都用于执行
jobs:进行的工作
load:调用加载其他插件
unload:取消调用加载其他插件
loadpath :当有个人开发的模块,调用指定目录存放的模块
Session:可以看到回话,即已经建立的连接
– session -l / -i 可以进入响应的shell(Shell 、Meterpreter session、VNC等不同的回话)
route通过指定session添加路由流量,即当开防火墙端口有漏洞,已经控制了,攻击者路由指定session通向建立的连接路由到被攻击者的机器。原理即是:流量转发的过程
irb:内置的编程开发模块
Resource :前面已经介绍过了,即指定资源文件,存的就是配置信息(将各种命令存入文件当中)
注:在msf里面:直接resource *.rc————就有了session
       在msf外面:msfconsole -r a.rc——————就有了session


使用设置的大致流程为:use exploit——set 参数——set target——set payload +name——set 参数——exploit

注:还有没提及到的基本命令还有一些,但是最重要的已经列出来了,其他的都可以自己去查,这里就不一一介绍了。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10415
赞同 0
评论 0 条
大叔要减肥L0
粉丝 0 发表 3 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2944
【软件正版化】软件正版化工作要点  2864
统信UOS试玩黑神话:悟空  2823
信刻光盘安全隔离与信息交换系统  2718
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1251
grub引导程序无法找到指定设备和分区  1217
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  164
点击报名 | 京东2025校招进校行程预告  163
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  161
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  157
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
信创开放社区邀请他人注册的具体步骤如下 15
如何玩转信创开放社区—从小白进阶到专家 15
方德桌面操作系统 14
我有15积分有什么用? 13
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!