宏利用
unicode字符反转文本伪造后缀名
如下面这段字符串,开头其实酒有一个unicode控制字符RLO,用途是将后面的字符串从右到左显示,很多QQ名也是利用的unicode字符做出了特别的效果。
helloworld
我们可以很轻易的用这个字符构造一些伪装的文件,比如一个chm文件gpj.chm,在反转后就成了 gpj.chm
如果有人在不知道正确格式的情况下贸然打开了这个文件就中了我们的圈套。
可以和之后的很多姿势进行配合
自解压exe
在打包压缩文件时可以选择exe后缀将其打包为自解压文件,在运行并确定后就会将所有文件解压出来,同时可以选择解压后运行,在解压后直接就会运行我们的进程。
可以用于捆绑木马,网络上常见的一些exe文件下载打开直接安装全家桶,似乎就是用的这个。所以对于任何可执行文件都需要谨慎
lnk快捷方式
ink文件是windows的快捷方式后缀,除了可以用它作为文件的快捷方式,也可以执行命令。
如将目标设置为%SystemRoot%\system32\cmd.exe cmd /c calc.exe
则会用cmd打开计算器
同时lnk也可以指定图标,钓鱼场景中根据环境创建适合的图标能提高成功率
此外,在windows98后即使打开显示后缀,lnk后缀也不会显示,所以也可以改个譬如hello.jpg.lnk用于迷惑用户
lnk的payload似乎有260个字符的限制
chm文档
chm文档是微软的帮助文档,以html作为源文件进行编译,该文件能利用的点在于可以执行cmd指令
创建一个新文件夹,并创建一个html文件,键入以下代码
<!DOCTYPE html>
<html>
<head>
<title>click for windows help</title>
</head>
<body>
command exec
<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>
calc.exe的地方即是放需要执行的指令的地方,譬如用powershell下载后门
创建完成后用easy CHM进行编译,即可在路径下找到编译好的chm文件
双击打开就会弹出计算机,说明命令成功执行。
hta文件
HTA是HTML Application的缩写(HTML应用程序),是软件开发的新概念,直接将HTML保存成HTA的格式,就是一个独立的应用软件,与VB、C++等程序语言所设计的软件界面没什么差别。
简单来说就是直接写一个html文件,将后缀改为hta,就可以使用了。它会以应用的形式打开文件。
除此之外,用hta文件的原因是它具有桌面程序的所有权限(读写,修改注册表等),所以我们可以用js调用ActiveXObject或者VBScript来执行我们的命令(浏览器打开普通html并没有权限执行)
- VBScript
<html>
<title>VBScirpt</title>
<center>
<h1>test</h1>
</center>
<script language="VBScript">
Set a = CreateObject("Wscript.Shell")
a.Run "calc.exe",vbhide
</script>
</html>
vbhide可以隐藏弹窗
- ActiveXObject
<html>
<body>
<h1>test</h1>
<script type="text/javascript">
var cmd = new ActiveXObject("WScript.Shell");
var cmdStr = "calc.exe";
cmd.run(cmdStr);
cmd = null;
</script>
</body>
</html>
</html>
可以通过<HTA:Application>
修改hta窗口样式。具体百度都有
感觉这个可以伪装网页所以应该蛮好隐藏的
ole对象
在word文档中插入ole对象,可以将我们需要木马放入word文档中,点击即会打开木马。这个应该在office高版本或者是win10中无法用
如图所示,再怎么修改安全政策,也无法打开文件。
换了一台电脑用wps则可以打开
方法是在插入中选择对象,选择package,这里可以把图标修改为自己想要的,下一步后也可以把名字修改为自己想要的。
不过即使是没有问题的可执行文件,放在ole对象中启动也会被杀软提示可疑进程。这个用法见仁见智。
另外在win7中将docx文件另存为rtf文件,其中的ole对象会在rtf文件打开时被释放到临时目录下的同名文件中,并在关闭时删除留下一个tmp文件(好像并不是稳定留下tmp文件,该tmp文件中有释放的临时文件的路径和一些不知道是什么的东西..)
rtf文件释放内容参考本文
https://www.freebuf.com/articles/terminal/96863.html
宏利用
office宏利用,很经常利用的一个点了,office宏代码是用VBA编写。
用cs之类的工具可以直接生成需要的代码,我们也可以自己做一点尝试。
首先,对于文档,word文档和excel文档开启宏后还有点微妙的区别
- word:
- excel:
excel中的ThisWorkbook是可以自启动的(只要宏启用),所以我们用excel进行尝试。
去选项,信任中心,信任中心设置,宏设置中启用宏,并在自定义功能区中启用开发工具
完成后点击开发工具中的visual basic进行编程
大概了解了以下vba的语法,这是基本sub结构
sub xxx()
代码
代码
end sub
function xxx()
代码
代码
end function
Dim
定义sub中的局部变量
set
给变量赋值
Msgbox
弹出一个窗口等待用户点击
shell
执行指令
稍微了解一点就能写了,我们直接写到ThisWorkbook中,并保存为启用宏的excel文件(后缀是xlsm)
Private Sub Workbook_Open()
Dim retval
retval = Shell("calc.exe", 0)
End Sub
保存后再打开这个excel文档,就会弹出计算机了。
当然,由于office官方禁用了宏,这时候就需要诱导用户手动开启宏,譬如整一些引导类的提示,需要开启宏才能查看该文档之类的,亦或是提示需要开启宏才能查看和修改文档一些内容,像是这个常见的套路:
打开发现只有如下内容,说该文件是被保护的文档,只有点击“Enable Editing” (允许编辑) 和”enable content” (启用内容)后才能显示正真的内容。当点击后就启用宏了。
像是再高端一点的姿势,可以混淆vba代码,将代码藏在单元格中利用读取单元格去读取之类的,后续有精力会研究研究。
利用已有漏洞
譬如office本身的CVE2017-0262、CVE–2017–8759、CVE-2017-0199、CVE-2017-11882等等漏洞,根据目标机器情况选择对应payload。
内嵌链接
在文档中嵌入钓鱼链接引导使用者点击,也比较常规,不多介绍。