Windows与Linux取证分析

目录

一、电子数据取证基本概念

1.电子取证学

2.常规取证

3.洛卡德物质交换原理

4.电子数据范围

5.电子数据取证的概念和目的

6.电子数据取证过程

二、Linux系统取证

1.基本信息获取

(1)获取系统基础信息

(2)用户/用户组信息

(3)网络信息

2.系统运行状态

(1)任务计划

(2)进程信息

(3)服务信息

2.日志分析

(1)系统接入日志

(2)进程统计日志

(3)错误日志

3.常用日志文件

(1)文本日志

(2)二进制日志

4.应用日志

(1)Apache服务日志

(2)CUPS打印系统日志

(3)Samba日志

(4)其他日志

三、Windows系统取证

1.主要的易失性数据

2.相关命令

3.windows重点目录

(1)用户目录

(2)桌面

(3)最近访问文档

(4)我的文档

(5)启动目录

(6)交换文件

(7)休眠文件

(8)假脱机打印文件

4.注册表

(1)注册表分支

(2)用户信息

(3)系统信息

5.事件日志

(1)系统日志

(2)应用程序日志

(3)安全日志

(4)应用程序和服务日志

6.数字时间取证

(1)系统时间

(2)时间取证的基本判断规则

(3)访问时间的证据效力

7.电子数据时间查询

(1)文件系统创建时间

(2)操作系统时间


一、电子数据取证基本概念

1.电子取证学

为了打击网络犯罪而生,是计算机学科与法学学科交叉的学科

2.常规取证

有调查取证权的组织或者个人为了查明案件事实的需要,向有关单位或个人依法进行调查和收集证据。

3.洛卡德物质交换原理

没有真正完美的犯罪,只有未被发现的线索,犯罪者,必留痕,每一个犯罪行为都会留下痕迹,电子数据同样遵循这个原理

4.电子数据范围

电子文件:网页、博客、微博客、朋友圈、贴吧、网盘等网络平台发布的信息; 手机短信、电子邮件、即时通信、通讯群组等网络应用服务的通信信息; 用户注册信息、身份认证信息、电子交易记录、通信记录、登录日志等信息; 文档、图片、音视频、数字证书、计算机程序等

5.电子数据取证的概念和目的

把数字证据转换为报告形式的过程,为法庭审判提供合法的证据

6.电子数据取证过程

(1)证据收集

注意电子数据的脆弱性

(2)数据获取

一定要保证原始数据

(3)数据分析

(4)取证报告

二、Linux系统取证

1.基本信息获取

系统版本信息,用户/用户组信息,网络信息(端口,路由,防火墙),系统运行状态(任务计划,进程信息,服务信息)

(1)获取系统基础信息

复制代码
#1.系统发行版本信息(过时)
uname -a 
​
#2.系统发行版本信息(过时)
lsblk 
lsb_version
cat /etc/issue #在ubuntu中查看系统发行版本信息
cat /etc/redhat-release #在CentOS7中查看系统发行版本信息

(2)用户/用户组信息

复制代码
cut -d:-f1 /etc/passwd
cut -d:f1 /etc/group

(3)网络信息

复制代码
#1.IP信息
ip a show
​
#2.路由信息
ip route
​
#3.端口信息
ss-antp/netstat
​
#4.防火墙规则
iptables -L

2.系统运行状态

(1)任务计划

复制代码
cat /etc/crontab
cat /var/spool/cron/USERNAME

(2)进程信息

复制代码
ps -aux #a:与终端相关的进程,u:以用户为中心组织进程状态信息显示,x:与终端无关的进程
ps -ef #e:显示所有进程,f:显示完整格式程序信息

(3)服务信息

复制代码
systemctl list-units --type=服务    #显示所有已经启动的服务
systemctl list-units -t service -a      #所有开启和关闭的
systemctl list-units -files -t service -a    #开机不启动,但是可以被另一个服务激活
cat /urs/lib/systemd/system    #服务目录

2.日志分析

在Linux中,日志是通过syslog记录的,在centos中被rsyslog代替,但是功能相同

rsyslog配置文件

复制代码
/etc/rsyslog.conf

日志分为三类日志

(1)系统接入日志

根据日志追踪到谁在何时登录系统

复制代码
/var/log/wtmp和/var/run/utmp #[telnet,ssh等程序会更新wtmp和utmp文件]

(2)进程统计日志

分析系统使用者对系统进行的配置以及对文件进行的操作

(3)错误日志

复制代码
/var/log/messages

3.常用日志文件

(1)文本日志

复制代码
/var/log/boot.log     #系统引导过程信息
/var/log/cron  #任务计划日志
/var/log/maillog #邮件日志
/var/log/messages #多个进程日志汇总
/var/log/secure #记录安全相关信息,主要是认证,权限使用等相关信息
/var/log/audit/audit.log #记录系统安全审计信息,尤其是SElinux安全审计信息

(2)二进制日志

复制代码
/var/log/laslog  #记录最近成功登录时间和最后一次不成功登录时间
/var/log/wtmp #永久记录每个用户登录、注销以及系统的启动、停机事件
/var/log/utmp #该日志文件记录有关当前登录的每个用户信息

4.应用日志

(1)Apache服务日志

复制代码
/var/log/httpd/access.log  #客户系统访问记录
/var/log/httpd/error.log   #所有出错记录

(2)CUPS打印系统日志

复制代码
/var/log/cups/access_log
/var/log/cups/error_log

(3)Samba日志

复制代码
ls /var/log/samba

(4)其他日志

复制代码
/var/log/mysqld.log
/var/log/yum.log

三、Windows系统取证

当发现 Windows 系统受到入侵而需要对系统进行取证分析的时候,首先需要关闭系统,然后对硬盘进行按位(bit-level)备份。但是有些重要的入侵数据一旦关机往往会丢失。这些证据主要存在于被入侵机器的寄存器、缓存、内存中。主要包括网络连接状态、正在运行的进程等信息。这些数据被称为易失性数据。

1.主要的易失性数据

统日期和时间,当前运行的活动进程,当前的网络连接,当前打开的端口,在打开的套接字(socket)上监听的应用程序,当前登录的用户,剪贴板数据

2.相关命令

ipconfig:查看系统 IP 地址 netstat:列出所有监听端口以及这些端口的所有连接 nbtstat:列出最近 10 分钟内的 NetBIOS 连接 net:列出 NetBIOS 连接、用户账号、共享文件夹等信息 arp:本机的 ARP 缓存表 doskey:显示打开 cmd.exe 命令解释程序的命令记录

3.windows重点目录

(1)用户目录

用于存储用户文件和配置,以此来区分不同用户的使用环境和权限。无论是本地用户还是网络用户,第一次登录系统都会自动生成一个用户目录。

系统 目录
Windows XP C:\Documents and Settings\Username
Windows 7/8/10 C:\Users\Username

(2)桌面

存储用户桌面上的快捷方式和文件,属于取证中需要重点关注的目录。

复制代码
C:\Users\Username\Desktop

(3)最近访问文档

每当用户打开一个目录或者文件时,系统会自动在最近访问文件夹生成一个快捷方式。通过最近访问文档可以了解用户的习惯,重点关注这些文档,可以快速开展取证工作,发现线索。

复制代码
C:\Users\Username\Recent

# 完整路径
C:\Users\Username\AppData\Microsoft\Windows\Recent

# 快速访问
shell:recent

AutomaticDestinations和CustomDestinations文件夹正常在Recent目录无法查看,直接访问完整路径即可

(4)我的文档

用于存储个人文件,如微信数据默认存储在该文件夹中

复制代码
C:\Users\Username\Documents

(5)启动目录

将快捷方式添加到该文件夹中即可实现对应程序开机自启。

用户开机自启文件

复制代码
C:\Users\Username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

攻击者在得到系统管理权限之后,可在启动目录中放置一个木马,如在启动项中发现陌生的程序,很有可能是恶意代码。

系统开机自启文件

复制代码
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

(6)交换文件

当内存少于系统应用的需求时,系统会生成一个交换文件来暂存内存数据,以释放部分内存,这个交换文件叫做页文件(pagefile.sys),页文件存放于根目录。

(7)休眠文件

计算机进入休眠状态后,内存被转存到硬盘的休眠文件中,以便系统被快速的唤醒,休眠文件一般在根目录(hiberfil.sys)

交换文件和休眠文件存储的都是内存数据,可使用内存分析。

(8)假脱机打印文件

Windows中打印文件时,会生成假脱机打印文件,打印结束或取消打印后,假脱机打印文件会删除

复制代码
C:\Windows\System32\spool\PRINTERS

SPL:假脱机文件

SHD:影子文件

SPL和SHD文件中包含了用户名、打印机名、文件名等

4.注册表

注册表被称为Windows操作系统的核心,它的工作原理实质是一个庞大的数据库,存放了关于计算机硬件的配置信息、系统和应用软件的初始化信息、应用软件和文档文件的关联关系、硬件设备的说明以及各种状态信息和数据。

复制代码
C:\Windows\System32\config

(1)注册表分支

名称 作用
HKEY_CLASSES_ROOT 存储windows可识别的文件类型的详细列表,以及关联程序
HKEY_CURRENT_USER 存储当前用户的设置信息
HKEY_LOCAL_MACHINE 包装安装在就算计上的硬件和软件的信息
HKEY_USERS 包含使用计算机的用户信息
HKEY_CURRENT_CONFIG 这个分支包含计算机当前的硬件配置信息

(2)用户信息

复制代码
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

(3)系统信息

复制代码
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

5.事件日志

系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。

包含:系统日志"System"、安装日志"Setup"、应用程序日志"Application"、安全日志"Security"。

复制代码
C:\Windows\System32\winevt\Logs

(1)系统日志

记录系统进程和设备驱动程序的活动,例如启动失败的驱动程序、硬件错误、重复的IP地址及服务启动暂停和停止。

(2)应用程序日志

应用程序日志包含由应用程序或程序记录的事件。例如,数据库程序可在应用程序日志中记录文件错误。

(3)安全日志

安全日志包含诸如有效和无效的登录尝试等事件,以及与资源使用相关的事件,如创建、打开或删除文件或其他对象。

(4)应用程序和服务日志

应用程序和服务日志是一种新类别的事件日志。这些日志存储来自单个应用程序或组件的事件,而非可能影响整个系统的事件。

6.数字时间取证

(1)系统时间

系统时间以主板上CMOS时间作为基准(由主板上的一块电池供电)。CMOS时钟是操作系统的时间来源,电池电量不足或晶振频率不准可能会导致CMOS时间不准,从而影响操作系统的时间。在Windows系统中,可用使用网络校时保证时间的准确。

从某种意义上来说,CMOS时间是系统所有时间的来源,操作系统时间、文件存储、修改、访问时间来源都是CMOS时间。

(2)时间取证的基本判断规则

文件和文件夹在移动、复制、剪贴等常见操作下,时间会有不同的变化规律,这些变化规律取决于操作系统和文件系统。

(1)如果修改时间等于建立时间,那么文件是原始文件,既没有被修改也没有被剪切。

(2)如果修改时间早于建立时间,则文件被复制或者移动部。

(3)如果在硬盘上批量的文件具有很近的访问时间,这些文件极有可能被同一工具软件扫描过,如杀毒软件。如果在一个文件夹中的一些图像或视频文件有很近的访问时间,并且没有其他图像和视频文件具有相似的访问时间,则这些图像和视频极有可能被同一个图像或视频预览工具访问或者打开过,例如用Windows资源管理器以缩略图的方式查看。

(4)在一个文件夹中,如果一些文件的修改时间等于创建时间。并且有很近的创建时间或修改时间,那么这些文件有可能是从网上批量下载的。

(5)文件拷贝的时候,文件创建时间为拷贝的时间,文件修改时间与原文件一致。

(6)文件下载的时候,文件创建时间为下载的时间,文件修改时间为下载结束的时间。

(7)压缩文件解压时,通常情况下(Winrar、Winzip)文件的创建时间为解压缩时间,文件修改时间与压缩前的文件一致。

(3)访问时间的证据效力

文件的属性时间是确定文件的创建 、修改和访问的重要标记。在证据效力上,创建时间,修改时间、节点修改时间都有较强证据力。而访问时间在FAT中不显示时间,以两秒间隔更新,同时访问时间极易受到干扰,因此证据率最低。如使用资源管理器查看文件属性信息时,可能会篡改文件的访问时间。

在FAT文件系统中访问时间更新是一天。在NTFS文件系统中,文件的最后访问时间的最大更新间隔是一小时。因此硬盘上的文件的最后访问时间都是不准确的。当用户或程序对某个文件执行只读操作时,系统会延缓硬盘上的文件的最后访问时间时间,但是会在内存中记录这个时间。当原始的最后访问时间和当前的最后访问时间相差大于一小时时,才会更新文件的最后访问时间。如果执行写操作会立刻更新,这种更新策略是减少频繁的硬盘读写对性能的影响。

7.电子数据时间查询

(1)文件系统创建时间

FAT文件系统

如果FAT分区有卷标,在根目录偏移量为0X16处是windows/DOS文件时间格式表示的最后写入时间。

NTFS文件系统

主文件表($MFT)属性中的标准属性(10属性)属性体(偏移量为0X50处)记录了分区的创建、修改、节点修改、访问时间(共四组)等信息。

EXT4文件系统

EXT4文件系统是Linux常用的文件系统。EXT4的超级块中保存了文件系统的属性信息、磁盘布局和资源使用情况等信息。文件系统通过超级块了解磁盘的布局,查找已用和可用资源等。 超级块偏移量0X2C-0X2F处记录了最后挂载时间,0X30-0X33处记录了最后写入时间,0X40-0X43处记录了最后检查时间,0X108-0X10B处记录了文件系统创建时间。

HFS+文件系统

HFS+文件系统是Mac OS系统常用的文件系统。格式化HFS+文件系统时,生成文件系统卷头(2号扇区),类似FAT和NTFS的DBR,卷头偏移量0X10-0X1F处记录了创建、修改、备份、最后检查时间四个时间信息,创建时间以本地时间保存,其他时间以GMT/UTC时间保存。

Windows操作系统安装时间

初始安装时间保存在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion的InstallDate键中,时间以C/UNIX时间格式存储(大端)。

Windows开关机时间

系统日志记录开关机的日志信息,其中事件ID=6005记录日志启动时间(=系统开机),事件ID=6006记录日志停止事件(=系统关机)。事件ID=6008记录异常关闭(=系统异常关闭)。

(2)操作系统时间

注册表中的关机时间

Windows正常关机时间保存在注册表HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows的ShutdownTime键值中,时间以Windows/FILETIME时间格式保存。系统非正常关机(如断电或死机)不一定会记录时间更新信息。

Windows用户登录时间

注册表中用户登录信息,HKEY_LOCAL_MACHINE\SAM\SAM\Domains\account\User\name%DIR%\的F键中,DIR是相对标识符,由用户名Name指定。

Windows用户登录事件

Windows系统日志中记录用户登录事件,由登录事件可查询登录的用户名、登录时间等信息。登录成功(4624)事件的登录类型为2表示互动登录(本地键盘登录系统)

相关推荐
danplus15 分钟前
node发送邮件:如何实现Node.js发信功能?
服务器·node.js·外贸开发信·邮件群发·蜂邮edm邮件营销·邮件接口·营销邮件
小黑爱编程23 分钟前
【LInux】HTTPS是如何实现安全传输的
linux·安全·https
BeyondESH28 分钟前
Linux线程同步—竞态条件和互斥锁(C语言)
linux·服务器·c++
wn53130 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
hanniuniu1330 分钟前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡
鱼饼6号44 分钟前
Prometheus 上手指南
linux·运维·centos·prometheus
Asher Gu1 小时前
Linux系统编程入门 | 模拟实现 ls -l 命令
linux
PatrickYao04221 小时前
记一次安装discuz时遇到的错误
服务器
c无序1 小时前
【Linux进程控制】进程程序替换
linux
小宋10212 小时前
玩转RabbitMQ声明队列交换机、消息转换器
服务器·分布式·rabbitmq