跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

渗透技巧——Windows下windows操作系统文件系统(NT文件系统)文件的美国海军杂志


轩辕三官

推荐的帖子

0x00 前言

在上篇文章《渗透技巧——Windows下NTFS文件的时间属性》 介绍了修改windows操作系统文件系统(NT文件系统)文件时间属性的方法和细节,以及取证上的建议。

本文将要继续研究windows操作系统文件系统(NT文件系统)文件另一处记录文件修改时间的位置——美国海军杂志,同样是分析利用思路,给出取证上的建议。

0x01 简介

本文将要介绍以下内容:

基本概念

读取美国海军杂志的方法

利用思路

取证建议

0x02 USN Journal的基本概念

官方文档:

https://份文件。微软。com/en-us/previous-versions/windows/it-pro/windows-2000-server/bb 742450(v=TechNet。10)

美国海军日志(更新序列号日志),也称作更改日志,用来记录Windows NT文件系统(NT File System)卷中文件修改的信息,能够提高搜索文件的效率

每个Windows NT文件系统(NT File System)卷对应一个美国海军杂志,存储在Windows NT文件系统(NT File System)图元文件的$Extend\$UsnJrnl中,也就是说,不同的Windows NT文件系统(NT File System)卷对应的美国海军杂志不同

美国海军杂志会记录文件和目录的创建、删除、修改、重命名和加解密操作,每条记录的格式如下:

typedef结构{

DWORD记录长度;

WORD主要版本

WORD MinorVersion

DWORDLONG FileReferenceNumber

dword long parent filereferencennumber;

美国海军美国海军

大整数时间戳;

DWORD原因;

DWORD SourceInfo

DWORD SecurityId

DWORD文件属性

单词文件名长度;

单词文件名偏移量;

WCHAR文件名[1];

} USN_RECORD_V2,* PUSN _ RECORD _ V2;

官方资料:

https://份文件。微软。com/en-us/windows/desktop/API/winioctl/ns-winioctl-usn _ record _ v2

在Windows NT文件系统(NT File System)图元文件的$Extend\$UsnJrnl\$Max保存美国海军杂志文件的总大小,如果美国海军杂志的记录长度超出总大小,会从最初始的记录开始覆盖

0x03 读取USN Journal的方法

1、使用命令fsutil usn

官方文档:

https://份文件。微软。com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc 788042(v=ws。10)

(1)查看C盘的USN Journal信息

fsutil usn查询日志丙:

包括以下信息:

美元日志身份证明

第一个美元

下一个美元

最低有效美元

最大美元

最大尺寸

分配增量

(2)查看C盘所有的USN Journal

fsutil usn枚举数据1 0 1摄氏度:

包括以下信息:

文件参考号

父文件参考号

美元

SecurityId

理由

名字

输出结果不够详细

2、使用开源工具

(1)导出USN Journal

下载地址:

https://github.com/jschicht/ExtractUsnJrnl

参数如下:

ExtractUsnJrnl/设备路径:c:/输出路径:c:\ test/输出名称:UsnJrnl _ vol 1。箱子

(2)将USN Journal转为CSV格式输出

下载地址:

https://github.com/jschicht/UsnJrnl2Csv

参数如下:

UsnJrnl 2 CSV/UsnJrnlFile:c:\ test \ UsnJrnl _ vol 1。bin/输出路径:c:\ test

包括以下信息:

抵消

文件名

美国海军

时间戳

理由

MFT参考

MFTReferenceSeqNo

MFTParentReference

MFTParentReferenceSeqNo

文件属性

主要版本

MinorVersion

SourceInfo

SecurityId

输出结果很完整

3、c++实现

我这里写了一个简单的示例代码,下载地址:

https://github。com/3g student/home-of-C-Language/blob/master/enumusnjurnal。卡片打印处理机(Card Print Processor的缩写)

代码实现了枚举C盘的美国海军杂志,仅输出文件名

0x04 利用思路

1、清除所有USN Journal

(1)使用fsutil

fsutil usn删除日志/d c:

注:

我在测试环境下没有删除成功

(2)API

https://份文件。微软。com/en-us/windows/desktop/API/winioctl/ns-winioctl-delete _ usn _ journal _ data

注:

我在测试环境下没有删除成功

2、清除单条USN Journal

我还没有找到可用的应用程序接口接口

唯一的方法是直接修改windows操作系统文件系统(NT文件系统)文件,但是自nt6.x开始,Windows禁止加载未经签名的驱动文件

这里可以尝试使用付费版的WinHex对windows操作系统文件系统(NT文件系统)文件进行操作,修改$Extend\$UsnJrnl中的内容

也可以尝试绕过驱动保护

$UsnJrnl的内容可参考:

http://forensicinsight。org/WP-content/uploads/2013/07/F-INSIGHT-Advanced-UsnJrnl-Forensics-English。可移植文档格式文件的扩展名(portable document format的缩写)

按照格式读取美国海军杂志,删除指定美国海军杂志,再写入磁盘

3、暴力覆盖

首先查看磁盘美国海军杂志文件的总长度

然后通过新建、删除、修改、重命名等操作生成USN Journal的记录。当超过总长度时,初始记录将被覆盖,直到所有USN日志被覆盖。

0x05 取证建议

1、读取USN Journal,列出所有记录,查找是否存在可疑记录

这种方法并不完全可信,攻击者只要能绕过驱动保护,就可以修改USN Journal。

2、尝试其他方法

比如从记忆中读出$MFT的记录

https://github.com/jschicht/HexDump

https://github.com/jschicht/MftCarver

Joakim Schicht的github有很多取证工具可以参考:

https://github.com/jschicht/

0x06 小结

本文介绍了利用NTFS文件的USN Journal的思想,并给出了一些取证的建议。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...