当前位置: 首页 > 技术干货 > Linux系统取证简述

Linux系统取证简述

发表于:2021-08-17 16:06 作者: W汐 阅读数(1839人)

一、电子数据取

1、什么是取证

电子取证学:为打击网络犯罪而生的电子数据取证,是计算机学科与法学学科交叉的一门学科,涉及到的知识包括计算机软硬件知识体系、网络技术、密码学、通信技术以及法学知识等。

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

“洛卡德物质交换原理”:“没有真正完美的犯罪,只有未被发现的线索。”

埃德蒙·洛卡德(Edmond Locard,1877~1966)博士是法国著名的法庭科学家和侦查学家,他是个固执的学者,穷其一生都在为犯罪现场中物证的取证和鉴定工作努力着,之所以说他「固执」,是因为他一辈子都坚信着那么一件事:

——犯罪者,必留痕

卡洛德在20世纪初提出了他最著名的物质交换定律。

此理论的核心非常简单:

——「每一个犯罪行为都会留下痕迹」

也就是说:

——只要发生了犯罪行为,就必然会留下相关痕迹,没有所谓「无痕」的犯罪现场。

——哪怕很多犯罪者具有一定的反侦查能力,会刻意的去破坏一些痕迹,但作为代价,这会带来更多的物质交换过程,再次形成各种新的痕迹物证。

形象地说,如果你打我一巴掌,我的脸上会留下你的手印、汗渍、划痕等,而你的手上也会有我的皮肤组织、汗渍等,这样一来通过证据的吻合度是可以判断出究竟是谁打了我

电子数据同样遵循这个原理,网络罪犯也会留下“手印”,但这个痕迹只有专业的取证人员才能看得到。

物质交换原理是电子数据取证的理论基础,而取证就是寻找各种犯罪交换后留下的痕迹作为证据的活动。

电子数据就是电子证据,在取证行业里所说的电子数据,就是指的电子证据。

| 2013年施行的《中华人民共和国刑事诉讼法》第四十七条规定了 "电子数据"为证据的7大类型。

2016年两高一部《关于办理刑事案件收集提取和审查判断电子数据若干问题的规定》(以下简称规定)以定义和列举的方式,对电子数据做了明确规定:电子数据是案件发生过程中形成的,以数字化形式存储、处理、传输的,能够证明案件事实的数据。电子数据包括但不限于下列信息、电子文件:网页、博客、微博客、朋友圈、贴吧、网盘等网络平台发布的信息;手机短信、电子邮件、即时通信、通讯群组等网络应用服务的通信信息;用户注册信息、身份认证信息、电子交易记录、通信记录、登录日志等信息;文档、图片、音视频、数字证书、计算机程序等电子文件。

电子数据取证什么?

电子数据取证就是把数字证据转换为报告形式的过程。

这个转化形式的过程却涉及法律标准、技术手段、工具使用等等多领域复杂的内容,那可不是几句话能说得清楚的

取证过程大致分为:

证据收集--->数据获取--->数据分析--->取证报告

1、收集阶段:

电子数据脆弱性,它很容易被破坏:病毒、删除、覆盖等都会导致电子数据改变和丢失。

2、数据获取阶段:

1. 转储过程是否会改变原始设备上的原始数据?(证据一旦被改变了就没有法律效应了)

2.怎么证明你在转储过程中没有改变任何数据?

解决办法:镜像 和写保护。

3、数据分析阶段

4、报告撰写阶段:形式详细记录下来,尤其是能证明犯罪事实的关键证据

电子数据取证的目的

电子数据取证的终极目标是:为法庭审判提供合法的证据。

为了达到目标,可能用到的手段方法,数据恢复,密码破解等

电子数据取证的重要性

中国网络犯罪占犯罪总是 1/3

每年以 30%以上的速度增长

网络犯罪造成的经济损失每年达7000亿以上

案例

熊猫烧香:

image-20210816164716729

1、硬盘数据:“灰鸽子”、“Sniffer”、“DDOS.EXE”、“网络神偷”、“Web3389”、“日 志清理”等大量黑客网络攻击工具、木马制作,病毒,网络攻击的相关电子书。大量用VB,VC和Dephi编写的病毒和木马源代码:多线程端口,PHP注入,文 件捆绑,隐藏运行,QQ密码截获,IE密码探测等。

五号分区的 Source\Code\Delphi\Wy_Work\目录下,发现“武汉男生”(熊猫烧香)病毒的客户端和服务端程序,同时,在 \Source Code \Delphi\ My_Work\武汉男生进程监控\code目录下发现“武汉男生”的源程序代码文件,截图如下:

image-20210816164818503

2、聊天记录:

image-20210816164839284

3、盗卖账号信息

image-20210816164856019

image-20210816164902362

4、账号登录信息:大量网络游戏(征途、冒险岛等)登录用户名和口令

5、账目信息:“账单文件”记录了2005年到2006年7月的账目信息

二、Linux系统入侵痕迹分析取证

1、基本信息获取

系统信息:

系统版本信息:

uname -a  
lsb_version -a
head -n 1 /etc/issue

用户和组信息:

cut -d: -f1 /etc/passwd //查看用户信息
cut -d: -f1 /etc/group //查看用户组信息

网络信息:

ip a show //网络接口信息
ip route //路由信息
ss -tanp //端口信息
iptables -L //防火墙信息

系统运行状态:

任务计划

cat /etc/crontab //查看系统任务计划
/var/spool/cron/USERNAME //用户任务计划

进程信息

ps aux 
//a 与终端相关的进程
u 以用户为中心组织进程状态信息显示
x 与终端无光的进程
ps -ef //e 显示所有进程。f显示完整格式程序信息
ps -eFH //F显示完整格式的进行信息 H以进程层级格式显示进程相关信息
top

服务信息

systemctl list-units --type=service //显示所有已启动的服务    
systemctl list-units -t service -a //所有开启和关闭的
systemctl list-unit-files -t service -a //服务状态,是否开机启动,static:开机不启动,但是可以被另一个服务激活
/usr/lib/systemd/system //服务目录

2、日志分析

日志的主要用途是系统审计、监测追踪和分析统计。

UNIX/ Linux采用了syslog工具来进行日志记录,所有在主机上发生的事情都会被记录下来不管是好的还是坏的。

syslog:Linux 内核由很多子系统组成包括网络、文件访问、内存管理等。

子系统需要给用户传送一些消息这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到一个可以维护的公用消息区于是就有了 syslog

syslog 是一个综合的日志记录系统

它的主要功能:方便日志管理和分类存放日志。

syslog 配置文件:/etc/syslog.conf

三类日志:

系统接入日志:

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

/var/log/wtmp和/var/run/utmp //telnet、ssh等程序会更新wtmp和utmp文件

进程统计日志:分析系统使用者对系统进行的配置以及对文件进行的操作

pacct或acct

错误日志:

/var/log/messages

常用日志文件:

/var/log/boot.log //该文件记录了系统在引导过程中发生的事件就是Linux系统开机自检过程显示的信息。
/var/log/cron //该日志文件记录crontab守护进程crond所派生的子进程的动作,前面加上用户、登录时间和PID以及派生出的进程的动作.
/var/log/maillog //该日志文件记录了每一个发送到系统或从系统发出的电子邮件的活动。它可以用来查看用户使用哪个系统发送工具或把数据发送到哪个系统
/var/log/messages //该日志文件是许多进程日志文件的汇总
/var/log/syslog //RHEL/Centos默认不开启,需要配置,它和/etc/log/messages日志文件不同它只记录警告信息,
该日志文件能记录当用户登录时login记录下的错误口令、Sendmail的问题、su命令执行失败等信息。
/var/log/secure //记录与安全相关的信息,主要是一些和认证、权限使用相关的信息。其是sshd会将所有信息记录[其中包括失败登录]在这里信息
 
/var/log/lastlog //记录最近成功登录的事件和最后一次不成功的登录事件,只能root执行
/var/log/wtmp //永久记录每个用户登录、注销及系统的启动、停机的事件,该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息
/var/run/utmp //该日志文件记录有关当前登录的每个用户的信息, who、w、users、finger 访问此文件 ,随着用户登录和注销系统而不断变化,它只保留当时联机的用户记录不会为用户保留永久的记录
//以上提及的3个文件/var/log/wtmp、/var/run/utmp、/var/log/lastlog是日志子系统的关键文件,都记录了用户登录的情况。这些文件的所有记录都包含了时间戳。这些文件是按二进制保存。不能用less、cat之类的命令直接查看这些文件,而是需要使用相关命令通过这些文件而查看

每次有一个用户登录时login程序在文件lastlog中查看用户的UID。
如果存在则把用户上次登录、注销时间和主机名写到标准输出中,
然后login程序在lastlog中记录新的登录时间打开utmp文件并插入用户的utmp记录。
该记录一直用到用户登录退出时删除。utmp文件被各种命令使用包括who、w、users和finger。

下一步login程序打开文件wtmp附加用户的utmp记录。当用户登录退出时具有更新时间戳的同一utmp记录附加到文件中。

wtmp文件被程序last使用。

查看日志文件:

绝大多数是文本文件, cat、tac、more、less、tailgrep进行查看

日志文件的格式:以 /var/log/messages 为例

该文件中每一行表示一个消息而且都由四个域的固定格式组成

时间戳:Timestamp 表示消息发出的日期和时间。

主机名:Hostname 表示生成消息的主机名

生成消息的子系统名称:“Kernel”表示消息来自内核

消息:Message :具体的消息内容

Dec 16 03:32:41 cnetos5 syslogd 1.4.1: restart. // syslog 发出的消息说明了守护进程已经在 xxx 重新启动了

查看非文本格式日志文件:

lastlog :使用 lastlog 命令来检查某特定用户上次登录的时间并格式化输出上次登录日志 /var/log/lastlog 的内容
last:搜索 /var/log/wtmp 来显示自从文件第一次创建以来登录过的用户
lastb:命令搜索 /var/log/btmp 来显示登录未成功的信息
who:查询 wtmp 文件并报告当前登录的每个用户
who /var/log/wtmp //查询历史登录用户

登录日志

二进制日志文件:

1、最近一次日志
/var/log/lastlog lastlog //最近一次用户登录的时间记录
2、用户登录日志
/var/log/wtmp
[root@localhost ~]# last
- 或
[root@localhost ~]# last -f <filename> # 指定输入文件
last -u 用户名显示用户上次登录的情况
last -t 天数显示指定天数之前的用户登录情况。

系统日志

应用日志

apache日志:

/var/log/httpd/access.log  #[Apache服务器的客户系统访问记录]
/var/log/httpd/error.log #[Apache服务器的所有出错记录]

cups 打印日志:CUPS [ Common Unix Printing System ] 通用UNIX打印系统

/var/log/cups/access_log # 访问日志文件,其中记录了打印机的设置情
况,提交的打印作业,以及打印作业的状态记录等信息
/var/log/cups/error_log # 默认的日志文件,存储各种错误信息

Samba 服务器日志

> [目录] /var/log/samba
[root@localhost ~]# ls /var/log/samba
> log.smbd # 其中包含Samba服务器启动以及SMB/CIFS文件与打印共享方面的信息
> log.nmbd # 其中包含基于IP协议的NETBIOS网络通信方面的信息
> log.sysname # 用于记录特定客户系统的服务请求信息,文件名中的sysname是客户系统的主机名,如 log.winxp

相关实验:网安取证

介绍:详细了解windows,linux电子取证的原理,使用不同的网络取证工具学习取证中的信息收集,协议分析,内存磁盘取证,文件恢复等功能操作