文件寄生——寄生虫自体繁衍的道路

Hi,又跟你们见面了,相信你们看了上一篇文章《文件寄生——寻找宿主的不归路(NTFS文件流实际应用)》后,都有看到局限性的一面。html

没看过上一篇文章的建议先去看完,而后再来看这篇文章,这样相对能够更加的理解。
传送门:https://bbs.ichunqiu.com/thre...
本文做者:i春秋签约做家—gh0stkeywindows

首先来解答一下不少人问得问题:安全

这个NTFS数据流文件,也叫Alternate data streams,简称ADS,是NTFS文件系统的一个特性之一,容许单独的数据流文件存在,同时也容许一个文件附着多个数据流,即除了主文件流以外还容许许多非主文件流寄生在主文件流之中,它使用资源派生的方式来维持与文件相关信息,而且这些寄生的数据流文件咱们使用资源管理器是看不到的。服务器

二、为何NTFS有数据流这个特性?
原意是为了和Macintosh的HFS文件系统兼容而设计的,使用这种技术能够在一个文件资源里写入相关数据(并非写入文件中),并且写进去的数据可使用很简单的方法把它提取出来做为一个独立文件读取,甚至执行。 运维

三、为何资源管理器里面看不到文件所带的数据流文件呢?
咱们之因此没法在系统中看到NTFS数据流文件,是由于Windows中的不少工具对数据流文件的支持并非很好,就像“资源管理器”,咱们没法在“资源管理器”中看到有关数据流文件的变化。 工具

不过这个缘由很奇怪,一样是MS本身作的东西,"资源管理器都支持很差,还有啥工具能支持好呢?" ,后来再想,也多是这样一个缘由:在当时写有关NTFS文件系统的数据流存储的时候不少WINDOWS工具没有相应的更新,同时呢NTFS流的显示与普通的文件不同,须要使用其余的枚举方式来完成,再有NTFS对广大普通用户桌面用户来讲没有必要去看到,更多的是被专业软件所使用,即便显示出来也没意义。测试

OK,进入正题,那么咱们今天来分析下NTFS文件流这个寄生虫的一些“缺点”:url

1.宿主需求,寄生虫须要宿主才能够繁衍:spa

图片描述

2.共存状态。宿主死亡,寄生虫随之死亡。设计

局限点突破:
1.宿主需求
2.共存状态

我们一次性把这两个问题解决,首先咱们来测试下:

测试1:
一开始我是这样测试的,输入命令:echo mstsec>>hiurlife.txt
图片描述
由于我的感受无后缀名的会被windows自动隐藏起来,因此就这样了,而其实是本身想的有点多了~

测试2:
后来想了下,Windows资源管理器是能够隐藏文件的,而默认的服务器隐藏文件是看不见的,也就是说,宿主是能够隐藏的:

命令:attrib +s +h hi
解释:attrib命令的意思,+s是为文件添加系统文件属性,+h是添加隐藏属性的意思。
图片描述
反之使用命令attrib -s -h hi 便可显示文件:
图片描述
这边即便改变了也不会形成寄生虫的死去:
图片描述
此方法可行,在必定的程度上保护了我们的寄生虫。

可是我这我的吧,有一个毛病,强迫症,就感受不舒服,因而就开始了更隐蔽的测试。

测试3:
我从新理了一下思路,既然是无宿主,那么就顺着这个路线开始慢慢的推动,那就试试无宿主自体繁衍:

正常宿主寄生命令:echo gh0stkey>>www:hiourlife.txt
www是宿主文件,无宿主就删掉www呗~
修改后的命令:echo gh0stkey>>:hiourlife.txt
图片描述
能够看见,无宿主寄生,彻底是能够的。测试3成功。

可是却没法应用到实际的操做中,因此这里转换了下思路,让寄生虫寄生到文件夹上便可:
echo gh0stkey>>/:hiourlife.txt

实际测试:
图片描述

能够应用于权限维持、BypassWAF等等(功能的靠大家本身的思惟分散了)。除非是专杀方面的工具,否则没办法检测的出来文件流。并且据我了解通常的WindowsServer的运维是不怎么了解这方面的,却是取证那一块有这一方面的介绍,因此相对是安全隐蔽的。

图片描述

相关文章
相关标签/搜索