初始响应阶段应该收集的证据:

  • 系统日期和时间
  • 当前登陆的用户清单
  • 整个文件系统的时间/日期戳
  • 当前正在运行的进程列表
  • 当前打开的套接字列表
  • 在打开的套接字上监听的应用程序列表
  • 当前或最近连接到系统的系统列表

易失性数据收集:

  • 首先需要上传取证人员自己可信任的 shell
  • 记录系统的日期和时间:
    date
  • 记录网卡信息,包括网络地址和状态等:
    ifconfig -a
  • 查看系统每个进程:
    ps -aux
  • 获取打开的网络套接字等信息,如开启了哪些端口,连接的 IP 地址是什么:
    netstat -an
    还可以加上-p 选项将应用程序的程序名及其 PID 映射到打开的端口:
    netstat -anp
  • 显示当前登录的用户信息:
    whow
  • 查看历史命令记录:
    history
  • 查看当前的目录信息
    ls

1、top命令

2、ps命令

3、kill命令

4、linux系统日志检验和查看

5、linux下的用户管理

6、linux下文件夹目录特点并验证和总结

7、linux下文件时间属性提取

top命令


top作为日常管理工作中最常用也是最重要的Linux 系统监控工具之一,可以动态观察系统进程状况。top命令显示的项目很多,默认值是每5秒更新一次,按q键可以退出。 显示的各项目为:

  1. -b : 批次模式运行。
  2. -c : 显示执行任务的命令行。
  3. -d : 设定延迟时间。
  4. -h : 帮助。
  5. -H : 显示线程。将显示所有进程产生的线程。
  6. -i : 显示空闲的进程。
  7. -n : 执行次数。一般与
  8. -b搭配使用。
  9. -u : 监控指定用户相关进程。
  10. -U : 监控指定用户相关进程。
  11. -p : 监控指定的进程。
  12. -s : 安全模式操作。
  13. -S : 累计时间模式。
  14. -v : 显示top版本,然后退出。
  15. -M : 自动显示内存单位(k/M/G)。

输入top显示任务、内存、CPU等内容:

image.png

输入O(大写字母O)进行排序。如图:

image.png

按下A,可以使其按pid排序,如图:

image.png

单击q退出,输入top -u myroot可以看到myroot的进程信息:

image.png

输入top后按下Z可以高亮现实正在运行的进程,如图:

image.png

ps命令


1、linux进程分类  交互式进程:一般是由Shell启动的进程。这些进程经常和用户发生交互,所以花费一些时间等待用户的操作。当有输入时,进程必须很快的激活。通常,要求延迟在50-150毫秒。典型的交互式进程有:控制台命令shell,文本编辑器,图形应用程序。   批处理进程(Batch Process):不需要用户交互,一般在后台运行。所以不需要非常快的反应,他们经常被调度期限制。典型的批处理进程:编译器,数据库搜索引擎和科学计算。   实时进程:对调度有非常严格的要求,这种类型的进程不能被低优先级进程阻塞,并且在很短的时间内做出反应。典型的实时进程:音视频应用程序,机器人控制等。   批处理进程可能与I/O或者CPU有关,但是实时进程完全通过Linux的调度算法识别。


2、 Linux进程优先级  静态优先级(priority): 被称为“静态”是因为它不随时间而改变,内核不会修改它,只能通过系统调用nice(每个进程都会具有的属性,一个能影响进程优先级的数字)去修改他。它指明了在被迫和其它进程竞争CPU之前该进程所应该被允许的时间片的最大值(20)。   动态优先级(counter): counter 即系统为每个进程运行而分配的时间片,Linux 兼用它来表示进程的动态优先级。只要进程拥有CPU,它就随着时间不断减小;当它为0 时,标记进程重新调度。它指明了在当前时间片中所剩余的时间量(最初为20)。   实时优先级(rt_priority):值为1000。实时优先级只对实时进程有意义。Linux把实时优先级与counter值相加作为实时进程的优先权值。较高权值的进程总是优先于较低权值的进程,如果一个进程不是实时进程,其优先权就远小于1000,所以实时进程总是优先。   Base time quantum:是由静态优先级决定,当进程耗尽当前Base time quantum,kernel会重新分配一个Base time quantum给它。

输入ps -ax显示所有进程,如图:

image-20200925090235098

其中有些信息会被覆盖到后面,输入ps –ax | less 就可以一点一点看到最后了。如图:

image-20200925090342104

单击q退出界面。输入ps –ef | less是换个规则显示全部进程,如图:

image-20200925090425859

输入ps –aux | less 可以看到更加详细的进程信息,如图:

image-20200925090528329

查询某个进程状态可以用 ps -C ation,如图:

image-20200925090650104

ps -aux –-sort=-pcpu | less命令可以让其根据CPU进行排序,如图:

image-20200925091312104

用ps -aux -–sort=-pcpu | head -5命令,查看占cpu前五的进程,如图:

image-20200925091339268

kill命令

1、kill命令作用  使用linux操作系统,难免遇到一些软件“卡壳”的问题,这时就需要使用linux下强大的kill命令来结束相关进程。这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的进程PID号(PID就是各进程的身份标识 )。


2.kill命令详解  进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。 Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行。例如,httpd是著名的Apache服务器的监控进程。   kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的。

杀死制定进程:

kill -9 PID

linux系统日志检验和查看

1、linux日志的作用  日志也是用户应该注意的地方之一。不要低估日志文件对网络安全的重要作用,因为日志文件能够详细记录系统每天发生的各种各样的事件。用户可以通过日志文件检查错误产生的原因,或者在受到攻击和黑客入侵时追踪攻击者的踪迹。   日志的两个比较重要的作用是:审核和监测。配置好的Linux的日志非常强大。对于Linux系统而言,所有的日志文件都在/var/log下。默认情况下,Linux的日志文件已经足够强大,但没有记录FTP的活动。用户可以通过修改/etc/ftpacess让系统记录FTP的一切活动。


2、Linux日志系统  日志对于系统的安全来说非常重要,它记录了系统每天发生的各种各样的事情,用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。日志主要的功能是审计和监测。它还可以实时地监测系统状态,监测和追踪侵入者。   Linux系统一般有3个主要的日志子系统:连接时间日志、进程统计日志和错误日志。

输入more /var/log/messages 查看统启动后的信息和错误日志,如图:

image-20200925091742017

输入more /var/log/secure 就可以查看与安全相关的日志信息。

输入more /var/log/maillog 就可以查看与邮件相关的日志信息。

输入more /var/log/cron可以看到有关定时任务方面的日志信息。

输入命令 more /var/log/boot.log 可以查看 守护进程启动和停止相关的日志消息,如图:

image-20200925092121116

输入more /etc/log/rotate.conf查看日志的配置文件,如图:

image-20200925092156223

linux下的用户管理


1.1 linux下用户的角色分类。• 在linux下用户是根据角色定义的,具体分为三种角色: • 超级用户:拥有对系统的最高管理权限,默认是root用户。 • 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面提到的www用户、ftp用户等。 • 虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。


1.2linux下用户和组的概念  我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。   每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。   用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。


1.3linux用户和组的关系  用户和用户组的对应关系有:一对一、一对多、多对一和多对多; 下图展示了这种关系: • 一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。 • 一对多:即一个用户可以存在多个用户组中。那么此用户具有多个组的共同权限。 • 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限。 • 多对多:多个用户可以存在多个组中。其实就是上面三个对应关系的扩展。

输入vim /etc/passwd查看当前系统的用户情况,如图:

image-20200925092607529

q退出vi,然后用useradd命令添加一个系统用户test。

image-20200925093532510

利用id test 查看test的帐号信息,如图:

image-20200925093600392

把test用户加入root组,命令是:gpasswd –a test root 如图:

image-20200925093715254

用passwd命令给test用户添加密码123456,命令是 passwd test

image-20200925093838655

切换用户至test:

image-20200925094025682

退出该用户,并利用userdel命令删除test用户,如图:

image-20200925094452945

linux下文件夹目录特点并验证和总结


1.linux文件结构  文件结构是文件存放在磁盘等存贮设备上的组织方法。主要体现在对文件和目录的组织上。   目录提供了管理文件的一个方便而有效的途径。   Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。


2.linux目录结构  我们知道,Linux是一个多用户多任务的分时操作系统,如果要使用系统资源,就必须向系统管理员申请一个账户,然后通过这个账户进入系统。这个账户和用户是一个概念,通过建立不同属性的用户,一方面,可以合理的利用和控制系统资源,另一方面也可以帮助用户组织文件,提供对用户文件的安全性保护。   每个用户都用一个唯一的用户名和用户口令,在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。   用户组是具有相同特征用户的逻辑集合,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有10个用户的话,就需要授权10次,显然这种方法不太合理;另一种方法是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中,那么所有用户就具有了和组一样的权限。这就是用户组,将用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了管理工作。

ls –al 查看一下所有目录和文件和其详细信息,如图:

image-20200925094609128

查看根目录下的子目录的特点输入ls –a /bin 查看bin目录下的文件。如图:

image-20200925094824226

此目录下绿色文件名居多,说明该目录下的可执行二进制命令居多。利用ls /dev 查看dev目录下的文件特点,如图:

image-20200925094954566

可以看出黄色文件名比较多,说明该目录下设备文件名较多。ls /etc观察etc目录喜有什么特点。如图:

image-20200925095152996

由上图可发现,/etc文件夹下较多都是服务名.扩展名。这些都是服务的配置文件。所以在/etc下配置文件比较多。输入ls /home查看家目录特点。

image-20200925095229935

家目录,即每个用户的家目录。

linux下文件时间属性提取


1 系统时间 date命令 date命令的功能是显示和设置系统日期和时间。 该命令的一般格式为: date [选项] 显示时间格式(以+开头,后面接格式)   date 设置时间格式:   命令中各选项的含义分别为:

  1. • -d datestr, –date datestr 显示由datestr描述的日期
  2. • -s datestr, –set datestr 设置datestr 描述的日期
  3. • -u, –universal 显示或设置通用时间 时间域
  4. • % H 小时(00..23)
  5. • % I 小时(01..12)
  6. • % k 小时(0..23)
  7. • % l 小时(1..12)
  8. • % M 分(00..59)
  9. • % p 显示出AM或PM
  10. • % r 时间(hh:mm:ss AM或PM),12小时
  11. • % s 从1970年1月1日00:00:00到目前经历的秒数
  12. • % S 秒(00..59)
  13. • % T 时间(24小时制)(hh:mm:ss)
  14. • % X 显示时间的格式(%H:%M:%S)
  15. • % Z 时区 日期域
  16. • % a 星期几的简称( Sun..Sat)
  17. • % A 星期几的全称( Sunday..Saturday)
  18. • % b 月的简称(Jan..Dec)
  19. • % B 月的全称(January..December)
  20. • % c 日期和时间( Mon Nov 8 14:12:46 CST 1999)
  21. • % d 一个月的第几天(01..31)
  22. • % D 日期(mm/dd/yy)
  23. • % h 和%b选项相同
  24. • % j 一年的第几天(001..366)
  25. • % m 月(01..12)
  26. • % w 一个星期的第几天(0代表星期天)
  27. • % W 一年的第几个星期(00..53,星期一为第一天)
  28. • % x 显示日期的格式(mm/dd/yy)
  29. • % y 年的最后两个数字( 1999则是99)
  30. • % Y 年(例如:1970,1996等)

2 文件时间linux文件的三种时间属性分别为: • atime,为access time的缩写,显示的是文件中的数据最后被访问的时间,比如被系统的进程直接使用或者通过一些命令和脚本间接使用。(执行一些可执行文件、脚本) • mtime,为modify time的缩写,显示的是文件的内容被改变时的最后时间,比如用vi编辑时就会改变。(也就是Block的内容) • ctime,为change time的缩写,显示的是文件的权限,拥有者,所属的组,链接数发生改变时的时间。当然当内容改变时,也会改变。(也就是Inode内容发生改变和Block内容发生改变时)


3 总结  Linux时间提取实验。主要是通过命令提取或修改系统时间,还有就是提取文件时间属性。

输入date命令查看系统时间,如图:

image-20200925095510435

利用date修改日期,输入date –s 2020-09-26 进行修改时间。输入date命令查看是否修改。如图:

image-20200925095645807

Linux系统日志及分析

日志类型

下面是常见的日志类型,但并不是所有的Linux发行版都包含这些类型:

类型 说明
auth 用户认证时产生的日志,如login命令、su命令。
authpriv 与 auth 类似,但是只能被特定用户查看。
console 针对系统控制台的消息。
cron 系统定期执行计划任务时产生的日志。
daemon 某些守护进程产生的日志。
ftp FTP服务。
kern 系统内核消息。
local0.local7 由自定义程序使用。
lpr 与打印机活动有关。
mail 邮件日志。
mark 产生时间戳。系统每隔一段时间向日志文件中输出当前时间,每行的格式类似于 May 26 11:17:09 rs2 – MARK –,可以由此推断系统发生故障的大概时间。
news 网络新闻传输协议(nntp)产生的消息。
ntp 网络时间协议(ntp)产生的消息。
user 用户进程。
uucp UUCP子系统。
日志优先级

常见的日志优先级请见下标:

优先级 说明
emerg 紧急情况,系统不可用(例如系统崩溃),一般会通知所有用户。
alert 需要立即修复,例如系统数据库损坏。
crit 危险情况,例如硬盘错误,可能会阻碍程序的部分功能。
err 一般错误消息。
warning 警告。
notice 不是错误,但是可能需要处理。
info 通用性消息,一般用来提供有用信息。
debug 调试程序产生的信息。
none 没有优先级,不记录任何日志消息。
常用日志文件

1)/var/log/secure:记录登录系统存取数据的文件;
例如:pop3,ssh,telnet,ftp等都会记录在此.
2)/ar/log/btmp:记录登录这的信息记录,被编码过,所以必须以last解析;
例如:lastb | awk ‘{ print $3}’ | sort | uniq -c | sort -nr | more
3)/var/log/message:几乎所有的开机系统发生的错误都会在此记录;
4)/var/log/boot.log:记录一些开机或者关机启动的一些服务显示的启动或者关闭的信息;
5)/var/log/maillog:记录邮件的存取和往来;
6)/var/log/cron:用来记录crontab这个服务的内容;
7)/var/log/httpd,/var/log/mysqld.log等等文件,记录几个不同的网络服务的记录文件;
8)/var/log/acpid , ACPI - Advanced Configuration and Power Interface,表示高级配置和电源管理接口。
后面的 d 表示 deamon 。 acpid 也就是 the ACPI event daemon 。 也就是 acpi 的消息进程。用来控制、获取、管理 acpi 的状态的服务程序。
9)/var/run/utmp 记录着现在登录的用户;
10)/var/log/lastlog 记录每个用户最后的登录信息;
11)/var/log/btmp 记录错误的登录尝试;
12)/var/log/dmesg内核日志;
13)/var/log/cpus CPU的处理信息;
14)/var/log/syslog 事件记录监控程序日志;
15)/var/log/auth.log 用户认证日志;
16)/var/log/daemon.log 系统进程日志;
17)/var/log/mail.err 邮件错误信息;

18)/var/log/mail.info 邮件信息;

19)/var/log/mail.warn 邮件警告信息;
20)/var/log/daemon.log 系统监控程序产生的信息;
21)/var/log/kern 内核产生的信息;
22)/var/log/lpr 行打印机假脱机系统产生的信息;

具体内容见:

https://blog.csdn.net/dxt16888/article/details/80741702?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.edu_weight