Anonymous 发布于2022年11月8日 分享 发布于2022年11月8日 0x00 前言 在渗透测试中,ADS(替代数据流)通常用于隐藏文件中的有效载荷。这种方法最大的优点是不影响文件大小,普通用户很难察觉。 为此,微软提供了‘dir/r’操作,可以用来查看文件的广告。同时,Win XP之后的系统禁止用户直接执行来自广告的程序,限制了广告的利用率。 但是通过一些特殊的用法和技巧,可以更好的隐藏广告,直接从广告中执行程序:) 说明: 写这篇文章的初衷是偶然看到lex inHR的一篇有趣的文章,地址如下: http://insert-script . blogspot . co . at/2012/11/hidden-alternative-data-streams . html 本文介绍了一些绕过广告检测工具的技术,并给出了通过wmi执行广告的方法。 本文将根据lex inHR的文章和我的研究经验,扩展使用广告的技巧,分享如何清除这些特殊的ADS,帮助你提高对广告的理解。 0x01 简介 本文将介绍以下内容: ADS常规利用方法 ADS常规测试工具 测试工具的ADS特殊旁路 消除特殊广告 辩护建议 0x02 常规利用 ADS: 对于NTFS文件系统,请参考以下文章了解基本知识: http://www.freebuf.com/articles/73270.html 创建ADS: 对于文件,命令行: echo test1 test.txt:ThisIsAnADS 成功创建后,test.txt文件的大小保持不变。 对于文件夹,命令行: echo test1 c:\ test \ ads \ 1:ThisIsAnADS 注: 需要绝对路径。 查看文件中的ADS: 命令行: 目录/r 画 可以获得文件夹和文件中包含的广告信息。 查看ADS内容: 命令行: 更多test.txt:ThisIsAnADS 如下图,获取广告的具体内容。 删除ADS: 命令行: 更多测试. txt测试副本. txt 使用more命令查看文件主数据流并输出,这样可以变相删除广告。 如下图,testcopy.txt不包含冗余广告。 注: 当more命令显示长数据时,它会截断并逐屏显示输出。里面有一个bug。如果文件太大,当需要在单独的屏幕上显示more命令时,数据显示将不完整,文件生成将失败。 0x03 ADS的执行 1、通过wmi 命令行: 键入putty.exe测试. txt:putty.exe wmic进程调用create c:\ test \ test . txt:putty . exe 画 程序执行后,进程名为test.txt:putty.exe 2、通过powershell 代码如下: $ps=新对象系统。诊断.过程 $ps。StartInfo . Filename=' c:\ test \ test . txt:putty . exe ' $ps。StartInfo . redirect standard output=$ True $ps。StartInfo . UseShellExecute=$ False $ps.start() 0x04 常规检测工具 1、ADSCheck.exe 下载地址: https://sourceforge.net/projects/adscheck/ 查看ADS: 您可以查看指定文件夹中的所有文件。 命令: ADSCheck.exe c:\ test \ ads 画 删除ADS: 您可以删除指定路径下的所有广告。 命令: ADSCheck.exe c:\ test \ ads/d 画 2、Streams.exe 下载地址: https://technet.microsoft.com/en-us/sysinternals/streams.aspx 查看ADS: 查看单个文件 命令: streams.exe c:\ test \ ads \ test . txt 画 删除ADS: 删除单个文件的广告 命令: streams.exe特区:\test\ads\test.txt 画 实例测试: 浏览器中下载的文件打开时会弹出框提示。 画 原因: AdsZone。标识符:默认情况下,数据被添加到下载的文件中。 验证: 检查广告: 更多putty_download.exe:Zone。标识符:$DATA 得到的内容如下: [区域转移] ZoneId=3 广告删除: 不能使用more命令,因为putty_download.exe太大,需要分屏显示,导致文件生成失败。 可以用Streams.exe。 删除广告后,不会提示您打开该文件。 0x05 特殊ADS 1、…文件 创建特殊文件… 该命令如下所示: putty.exe标牌.putty.exe wmic进程调用创建c:\test\ads\.putty.exe Putty.exe成功执行,进程名为.putty.exe。 特别的地方: (1)广告是隐藏的。 无法查询目录/r。 工具ADSCheck.exe和streams.exe表明广告不存在 画 (2)文件不能删除。 各种方法都试过了,就是删不掉,如图。 2、特殊COM文件 创建一个特殊的名称文件COM1 注: 经过测试,目前系统支持的文件名称为COM1到COM9。 必须有前缀\ \。否则系统会提示找不到指定的文件。 补充1: 专用名nul也有同样的效果,这个方法是用Evi1cg测试的。 补充2: 其他特殊文件格式也可以隐藏广告,包括以下后缀: 孔、奥克斯、PRN、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、LPT9 例如: 键入putty.exe \ \。\C:\test\ads\LPT4:putty.exe 注: 有关更多特殊文件名,请参考: https://docs . Microsoft . com/en-us/windows/desktop/FileIO/naming-a-file #命名约定 补充3: 也可以使用前缀\ \?\,有异曲同工之妙。 该命令如下所示: 键入putty.exe \ \。\C:\test\ads\COM1:putty.exe wmic进程调用创建\\。\C:\test\ads\COM1:putty.exe 注: 执行wmic进程调用create c:\ test \ ads \ com1:putty.exe不会执行程序。 putty.exe被成功执行,进程名为COM1:putty.exe 特别的地方: (1)广告是隐藏的。 无法查询目录/r。 工具ADSCheck.exe和streams.exe表明广告不存在 (2)不能直接删除。 3、磁盘根目录 管理员权限 键入putty.exe C:\:putty . exe wmic进程调用create C:\:putty.exe 这一过程在putty.exe成功实施,被称为putty.exe。 特别的地方: (1)广告是隐藏的。 找不到目录/r。 使用streams.exe查看。 (2)不能直接删除。 0x06 特殊ADS的清除 1、…文件 方法1: 删除此目录中的所有文件: 德尔*。* 但是不现实。 方法二: 使用短文件名 方向/x 画 找到的…文件对应的短文件名是A535~1。 命令行: 德尔A535~1 成功删除。 2、特殊COM文件 命令行: del \\。\C:\test\ads\COM1 3、磁盘根目录 用streams.exe。 管理员权限: streams.exe特区:\ 0x07 防御建议 对于用户来说,如果在系统中发现了一个特殊名称的文件,并且无法删除,就需要提高警惕,或许里面会包含有效载荷。 本文介绍的特殊文件和清洗方法如下: (1) … 用短文件名删除 (2) COM1-COM9 del \。\C:\test\ads\COM1 (3)磁盘根目录 用streams.exe查看和删除 0x08 小结 本文介绍了进一步隐藏广告的利用技巧,并结合攻击手段分享了具体的清理方法和防御建议,希望对大家有所帮助。 留下回复 链接帖子 意见的链接 分享到其他网站 更多分享选项…
推荐的帖子