跟我们一起
玩转路由器

浅谈MSF渗透测试

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

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

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

信息收集

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

  • 用于扫描存活的445端口主机
  • 用于端口扫描
  • 用于telnet服务扫描
  • 用于远程桌面服务扫描
  • 用于ssh主机扫描

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

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

。如果扫描整个网段,还需要设置线程数:。

执行

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

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

  • //设置目标主机地址
  • //设置扫描线程
  • //执行扫描命令

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

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

漏洞探测

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

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

  • //使用永恒之蓝探测模块
  • 查看需要添加的信息
  • //设置扫描目标主机IP地址
  • //设置扫描线程
  • //开启扫描

漏洞利用

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

  • //使用永恒之蓝攻击模块
  • //设置一个Payload,使攻击机接受来自目标主机的session
  • //设置目标主机地址
  • //设置接受payload的地址,这里设置MSF的地址
  • // 设置接受的端口,这个自己自定义,只要不与其它端口冲突就可以
  • //执行攻击命令

权限提升

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

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

  1. 什么是UAC?

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

  2. UAC如何运行?

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

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

最直接的提权命令是

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

方法一:

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

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

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

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

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

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

方法四:通过Eventvwr注册表项

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

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《浅谈MSF渗透测试》
文章链接:https://www.lu-you.com/settings/25511.html
本站资源来源于互联网整理,若有图片影像侵权,联系邮箱429682998@qq.com删除,谢谢。

评论 抢沙发

登录

找回密码

注册