在以往对Windows日志认知中,我们都认为Windows系统是不支持删除指定某条日志的情况,如果要抹除入侵痕迹只能清空全部日志,这样做的话,其实被入侵、攻击用户很容易发现问题,但是如果能做到只删除某几条日志的话,就能做到神不知鬼不觉。
其实Windows的日志系统并不是不支持删除某几条日志,只是Windows日志文件有严格的校验机制,单纯删除或者修改日志内容,会导致无法通过系统校验,导致文件无法正常浏览。接下来我们就以Windows7中evtx格式的日志文件给大家介绍其文件结构。
Windows事件日志一直保持着清晰、可识别性的二进制结构,每个日志文件由文件头、数据块、结尾空值组成。整个日志文件大体结构如下:
文件头结构
文件头由4096字节大小组成,具体的内容如下:
偏移 | 长度 | 值 | 描述 |
0 |
8 |
ElfFile |
签名头 |
8 |
8 |
第一个数据块 |
|
16 |
8 |
最后一个数据块 |
|
24 |
8 |
下一个记录标识符即下一个日记记录号 |
|
32 |
4 |
128 |
头大小 |
36 |
2 |
1 |
次版本号 |
38 |
2 | 3 |
主版本号 |
40 |
2 |
4096 |
数据块偏移量,固定值 |
42 |
2 |
数据块的数量 |
|
44 | 76 |
空值 |
|
120 |
4 |
文件标志 |
|
124 |
4 |
检验和 |
|
128 | 3968 |
空值 |
数据块结构
每个数据块的大小为65536字节,每个数据块大小为65536字节,数据块的头部标签名为45 6C 66 43 68 6E 6B 00(ElfChnkx00),数据块由数据块头部,事件记录,闲置空间,数据块文件头由512字节大小组成。
偏移 |
长度 | 值 | 描述 |
0 |
8 |
ElfChnk | 签名 |
8 |
8 | 第一个事件记录编号 | |
16 |
8 |
最后一个事件记录编号 |
|
24 |
8 |
第一个事件记录标识符 |
|
32 |
8 |
最后一个事件记录标识符 |
|
40 |
4 |
128 |
指针数据偏移量 |
44 | 4 |
最后一个事件记录数据偏移量 |
|
48 | 4 |
自由空间偏移 |
|
52 |
4 |
所有日志记录内容的校验和 |
|
56 | 64 |
空值 |
|
124 |
4 |
检验 |
事件记录结构
数据块包含多个事件记录,一个事件记录对应一条日志信息。事件记录的的大小及组成如下表:
偏移 |
长度 | 值 | 描述 |
0 |
4 |
** |
签名 |
4 | 4 | 事件记录块的大小,该日志记录的大小 | |
8 |
8 |
事件记录标识符 | |
16 | 8 | 事件记录写入时间 | |
24 | ... |
事件记录内容,日志内容 | |
... | 4 |
事件记录块的大小(备份) |
以上就是今天给大家介绍的关于Windows日志的文件结构,了解完它的文件结构,后续我们就可以神不知鬼不觉的将某些有可能被发现的敏感操作的日志记录进行修改或者是删除。
来源:取证知道
本文始发于微信公众号(电子物证):【Windows日志】结构解析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论