欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

使用osquery进行远程取证

来源:本站整理 作者:佚名 时间:2019-09-08 TAG: 我要投稿

Osquery是一个SQL驱动操作系统检测和分析工具,它由Facebook创建,支持像SQL语句一样查询系统的各项指标,可以用于OSX和Linux操作系统。另外,osquery是一个多平台软件,可以安装在Linux,Windows,MacOS和FreeBSD上。它允许我们使用基于SQL的查询来处理操作系统的配置文件、性能和安全检查等。
另外,系统管理员使用osquery可以对端口进行远程控制和日常监控,安全管理员也可以使用它来寻找系统上潜藏的攻击指标。现在,取证人员也开始注意到osquery了。虽然osquery 的核心服务非常适合远程查询各种系统级数据,但通过取证的方法将使其能够检查更深层的数据结构和元数据,而一般情况下,这些数据在本地系统中是无法被使用的。在本文中,我们会与Crypsis(一家安全咨询公司)合作,展示osquery在取证分析时的一些具体案例。
识别“Timestomping”攻击
与文件系统的每次交互都会留下痕迹,对于攻击者来说,要想让自己的攻击显得悄无痕迹,就应清除这些交互痕迹。如果不修改文件时间戳,则会提供大量关于攻击者的攻击时间轴和攻击行为的详细信息。而这些信息正是攻击者和分析人员都非常关注的内容。“Timestomping ” 策略是一种逃避取证的常用方法,攻击者可以利用该方法销毁攻击时所用文件的时间戳证据。具体来说,Timestomping是一种修改文件时间戳(修改、访问、创建和更改时间)的技术,通常用于模拟同一文件夹中的文件。 例如,通过修改文件,取证人员就不会发现攻击痕迹了。 Timestomping技术通常会与Masquerading技术一起使用,来隐藏恶意软件和工具。
在时间戳中掩盖证据时,NTFS会比其他文件系统稍微复杂一些。为了解答这个问题,我们必须深入探索NTFS的一些结构。
NTFS (New Technology File System),是 WindowsNT 环境的文件系统。NTFS 提供长文件名、数据保护和恢复,并通过目录和文件许可实现安全性,NTFS 支持大硬盘和在多个硬盘上存储文件(称为卷)。NTFS的核心元素是主文件表(MFT),它为系统上的每个文件存储一个目录。MFT中的每个目录都包含许多属性,这些属性存储描述文件的元数据。一个属性$STANDARD_INFORMATION ($SI)存储一组时间戳,另外,标准文件还有一个$FILE_NAME ($FN)属性,它包含自己的一组时间戳。$SI属性中的时间戳大致与文件内容的交互相关,$FN属性中的时间戳与文件的位置和名称的交互大致相关。最后,MFT中的目录目录具有索引属性,该属性存储该目录中所有文件的$ FN属性的副本(包括时间戳)。
示例1:如何在时间戳不一致的情况下取证
销毁时间戳攻击的最简单办法就是将文件创建日期更改为入侵之前的时间,不过,如果处理得不到位,$FN创建时间戳和$SI创建时间戳将不匹配。而且,这种不匹配可以很容易被发现。要使用osquery查找时间戳不匹配的目录中的文件,我们可以运行以下命令:
SELECT path,fn_btime,btime from ntfs_file_data where device=”\\.\PhysicalDrive0” and partition=3 and directory=”/Users/mmyers/Desktop/test_dir” and fn_btime != btime;

另外,我们还可以寻找其他时间戳不一致的表现形式。比如文件创建的时间比文件修改的时间要晚。你会相信一个MFT目录的修改时间早于其创建时间的文件吗? 要查找这种不匹配,就请运行以下命令:
SELECT filename, path from ntfs_file_data where device=”\\.\PhysicalDrive0” and partition=2 and path=”/Users/Garret/Downloads” and fn_btime > ctime OR btime > ctime;
示例2:缺少完整精度的时间戳
攻击者有时会很懒,为了方便,他们会使用内置的系统实用程序来编辑文件的时间戳。这些实用程序编辑时间值的精度要低于操作系统自然使用的精度。分析人员可以通过检查时间戳的纳秒部分来发现这种伪造过程,除非它被篡改,否则纳秒部分不可能全为零。
如下所示,NTFS时间戳是一个64位的值,例如,考虑NTFS时间戳131683876627452045。如果你手边有一个Windows命令提示符,那就是2018年4月16日星期一晚上9:27:43分,具体来说,是晚上9:27:42分,然后再精确到0.7452045,虽然这个时间也是四舍五入的。但是很具体,这就是正常文件时间戳的样子。

然而,由系统实用程序设置的文件时间戳只具有秒级精度,这与大多数用户界面所显示的一样详细。131683876620000000也代表的是2018年4月16日星期一晚上9点27分42分,但它的纳秒部分全是0,因此这个时间戳是伪造的。

osquery以整数形式输出的NTFS时间戳看起来有些奇怪,这是有经验的分析人员很容易发现伪造的证据。
如何查找已删除文件的痕迹
对于钓鱼攻击的攻击者来说,当用户点击一个钓鱼链接或打开一个钓鱼电子邮件附件时,恶意软件就会开始工作。一般来说,恶意软件会下载几个有效载荷,部署它们,再将系统上的一些数据收集到一个文件中,向后台发送数据,最后从文件系统中删除自身以及所有下载的文件。此时,一切都干干净净,毫无攻击的痕迹,对吧?
虽然这些文件的内容不再可用,但NTFS是不会清理文件元数据的,特别是在目录索引的上下文中,NTFS更不会发挥作用了。对NTFS和目录索引管理的完整解释超出了本文的范围,感兴趣的读者可以阅读NTFS.com或Linux-NTFS项目的介绍文档。
与NTFS上的任何文件一样,每个目录在MFT中都有一个目录。这些目录具有不同的属性,这里的相关属性是index属性,该属性又包含以树型结构排列的目录子文件的$FN属性的副本。在目录中添加和删除文件时,index属性的内容将被更新。不过,索引中的目录不会被删除,它们只是被标记为非活动的状态,并且可能会在添加新目录时被覆盖。即使该文件被删除了,它的$FN属性的副本可能仍然会在父目录的索引中保留一段时间。不过,使用NTFS取证技术使得查找这些目录变得相对简单。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载