Python数字取证 基于日志的人工制品的调查
到现在为止,我们已经看到了如何使用Python在Windows中获得工件。在这一章中,让我们学习一下使用Python调查基于日志的工件。
简介
基于日志的人工制品是信息的宝库,对数字取证专家来说非常有用。尽管我们有各种监控软件来收集信息,但从它们中解析出有用信息的主要问题是我们需要大量的数据。
各种基于日志的工件和在Python中进行调查
在本节中,让我们讨论各种基于日志的工件和它们在Python中的调查 —
时间戳
时间戳传达了日志中活动的数据和时间。它是任何日志文件的重要元素之一。请注意,这些数据和时间值可以有多种格式。
下面显示的Python脚本将把原始日期时间作为输入,并提供一个格式化的时间戳作为其输出。
对于这个脚本,我们需要遵循以下步骤– 1.
- 首先,设置参数,这些参数将接收原始数据值以及数据来源和数据类型。
-
现在,提供一个类,为不同日期格式的数据提供通用接口。
Python代码
让我们看看如何使用Python代码来达到这个目的 —
首先,导入以下Python模块 –
现在像往常一样,我们需要为命令行处理程序提供参数。这里它将接受三个参数,第一个是要处理的日期值,第二个是该日期值的来源,第三个是它的类型:
Now, we need to define a class which will accept the arguments for date value, date source, and the value type −
现在我们将定义一个方法,就像main()方法一样充当控制器:
现在,我们需要定义两个方法,分别处理Unix的纪元时间和FILETIME —
运行上述脚本后,通过提供一个时间戳,我们可以得到易读格式的转换值。
网络服务器日志
从数字取证专家的角度来看,网络服务器日志是另一个重要的人工制品,因为它们可以得到有用的用户统计数据,以及关于用户和地理位置的信息。以下是Python脚本,它将在处理网络服务器日志后创建一个电子表格,以方便分析信息。
首先,我们需要导入以下Python模块—
现在,我们需要定义将从日志中解析的模式:
现在,为命令行处理程序提供一个参数。这里它将接受两个参数,第一个是要处理的IIS日志,第二个是想要的CSV文件路径。
现在我们需要定义main()方法,该方法将处理大量日志信息的脚本 –
最后,我们需要定义一个方法,将输出写入电子表格—-。
运行上述脚本后,我们将在电子表格中得到基于网络服务器的日志。
使用YARA扫描重要文件
YARA(Yet Another Recursive Algorithm)是一个模式匹配工具,用于恶意软件识别和事件响应。我们将使用YARA来扫描文件。在下面的Python脚本中,我们将使用YARA。
我们可以通过以下命令来安装YARA —
我们可以按照下面给出的步骤使用YARA规则来扫描文件 –
- 首先,设置并编译YARA规则
-
然后,扫描单个文件,然后在目录中迭代,处理单个文件。
-
最后,我们将把结果导出到CSV。
Python代码
让我们看看如何使用Python代码来达到这个目的–
首先,我们需要导入以下Python模块 –
接下来,为命令行处理程序提供参数。注意,这里它将接受两个参数–第一个是YARA规则的路径,第二个是要扫描的文件。
现在我们将定义main()函数,它将接受yara规则的路径和要扫描的文件 –
现在,定义一个方法,该方法将遍历目录,并将结果传递给另一个方法进行进一步的处理–
接下来,定义两个函数。注意,首先我们将使用 match() 方法来处理 对象 ,如果用户没有指定任何输出文件,另一个函数将向控制台报告该匹配信息。观察下面显示的代码 –
最后,我们将定义一个方法,将输出写入CSV文件,如下图所示。
一旦你成功运行上述脚本,我们可以在命令行提供适当的参数,并可以生成CSV报告。