Linux应急响应篇

Linux应急响应篇

本章继续对linux操作系统中应急响应的基础技术分析能力做一下介绍.

一、概述

上一篇文章主要介绍了windows应急响应的基础技术分析能力,那么本章继续对linux操作系统中应急响应的基础技术分析能力做一下介绍,希望能对有需要的同学有帮助。

二、技术分析

1、准备工作

在正式实施应急响应之前,需要先进行以下工作,
第一、信息收集,先对安全事件进行详细的了解,包括系统、服务以及业务类型
第二、思路梳理,通过以上信息收集初步梳理自己的分析思路
第三、工具准备,提前准备好需要用到的工具脚本等资料
第四、数据备份,所有涉及到分析以及证据的材料都需要提前进行备份,这样也方便之后还有分析人员或者防止数据被篡改或者覆盖。
1)备份passwd文件
cat /etc/passwd > passwd.txt
​编辑[](https://shs3.b.qianxin.com/attack_forum/2021/10/attach-3f6d3c601f33b3334a620db85ef5a4bc24bc376b.png)
2)备份shadow文件
cat /etc/shadow > shadow.txt
 


3)备份当前网络连接
netstat -anp > netstat_anp.txt
 


4)备份历史命令
cp ~/.bash_history history.txt
 


5)备份用户登录信息
w > users.txt
 


6)备份进程信息
ps aux > ps.txt
 


第五、时间校准,查看系统时间和北京时间是否同步准确,如果不准确那么系统日志等信息的事件可能会存在误差,所以必须提前校准时间。

2、用户信息分析

1)查看当前用户
whoami
 


2)查看当前登录系统的所有用户
who(tty:指的是主机的图形化界面的面板,pts/x:指的是ssh远程连接的窗口)
 


3)主机上一次启动的时间
who -b
 


4)显示已经登陆系统的用户列表,并显示用户正在执行的指令
w
 


5)显示当前登录系统的所有用户的用户列表
users
 


6)查看最近登录成功的用户及信息
last
 


7)查看用户信息
cat /etc/passwd


 


8)查看可以登录系统的用户
cat /etc/passwd | grep /bin/bash
 


9)查看超级用户(uid=0)
awk -F: '$3==0{print $1}' /etc/passwd
 


10)查看可以远程登录的用户(无密码只允许本机登陆,远程不允许登陆)
awk '/\$1|\$6/{print $1}' /etc/shadow
 


11)查看拥有sudo权限的用户
more /etc/sudoers | grep -v "^#|^$" | grep "ALL=(ALL)"
 


12)查看历史命令
cat ~/.bash_history

3、进程信息分析

1)动态查看进程
top
 


2)查看PID为xxx的进程的可执行程序
ls -l /proc/pid/exe
 


3)查看PID为xxx的进程打开的文件
lsof -p pid
4)查看进程sshd打开的文件
lsof -c sshd
 


5)查看xx端口对应的一些进程
lsof -i:port
 


6)查看pid为2091进程的启动时间点
ps -p PID -o lstart
 


7)查看网络连接情况,通过过滤pid查看连接的端口
netstat -pantu | grep pid
 


8)查看端口对应的进程pid
fuser -n tcp port
 


9)查看进程
ps aux (ps -ef)
 


10)查看进程树
pstree
 


11)查看进程,根据cpu使用从高到低
ps aux --sort -pcpu
 


12)查看进程,根据内存使用从高到低
ps aux --sort -pmem

4、网络连接分析

1)netstat命令用来打印Linux中网络系统的状态信息;
netstat -an
 


2)查看TCP连接状态
netstat -nat | awk ‘{print $6}’| sort | uniq -c | sort -rn
 


3)查找请求数请10个IP
netstat -anlp | grep 80 | grep tcp | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | head -n 20
 


4)根据端口列进程
netstat -ntlp | grep 80 | awk ‘{print $7}’ | cut -d/ -f1

5、异常文件分析

1)查看指定目录最近被修改的文件(查看var目录下3天内被修改的文件)
find /var/ -type f -mtime -3 | xargs ls -la
 


2)按时间排序,查看var目录下最近是否有命令被替换,可以结合rpm -Va命令
ls -alt /var/ | rpm -Va>rpm.log

6、开机启动项分析

1)查看是否有异常开机启动项
cat /etc/rc.local | chkconfig --list

7、定时任务分析

1)查看定时任务
sudo vi /etc/crontab
 


m、h、dom、mon、dow、command分别是(minute; hour; day of month; month; day of week)的缩写
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

8、系统日志分析

1)Linux下常见的一些日志:
/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自检过程显示的信息
/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息
/var/log/messages :记录Linux操作系统常见的系统和服务错误信息
/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登陆认证情况
/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址
/var/log/syslog:只记录警告信息,常常是系统出问题的信息,使用lastlog查看
/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件,使用last命令查看
/var/run/utmp:该日志文件记录有关当前登录的每个用户的信息。如 who、w、users、finger等就需要访问这个文件
/var/log/auth.log 或 /var/log/secure 存储来自可插拔认证模块(PAM)的日志,包括成功的登录,失败的登录尝试和认证方式。Ubuntu 和 Debian 在 /var/log/auth.log 中存储认证信息,而 RedHat 和 CentOS 则在 /var/log/secure 中存储该信息。
2)查看登录成功的记录(auth.log/secure)
cat /var/log/auth.log | grep Accepted
 


3)查看登录失败的记录
cat /var/log/auth.log
 | grep Failed
 


4)目前与过去登录系统的用户相关信息
last
 


5)查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastb
 


6)last命令查看系统中最近的五次用户登录记录
Last | head -5
 


7)显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
lastlog

9、web日志分析


在针对日志分析的过程中,会使用的一些其他的脚本和过滤语法,因此在开始之前需要补充一下一些关键词的意义,具体如下:
awk 首先将每条日志中的IP抓出来,如日志格式被自定义过,可以 -F 定义分隔符和 print指定列;
sort进行初次排序,为的使相同的记录排列到一起;
upiq -c 合并重复的行,并记录重复次数。
head进行前十名筛选;
sort -nr按照数字进行倒叙排序。
1)通过日志查看当天ip连接数
cat apache_access_2021-10-23.log | grep "23/Oct/2011" | awk '{print $2}' | sort | uniq -c | sort -nr
 


2)在日志中找出访问次数最多的10个IP。
awk '{print $1}' apache_access_2021-10-24.log |sort |uniq -c|sort -nr|head -n 10
 


3)当天ip连接数最高的ip都在干些什么:
cat apache_access_2021-10-24.log | grep "24/Oct/2021:00" | grep "192.168.5.1" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
 


4)当天访问页面排前10的url:
Cat apache_access_2021-10-24.log | grep "24/Oct/2021:00" | awk '{print $8}' | sort | uniq -c | sort -nr | head -n 10
 


5)查看日志中访问次数最多的前10个IP
cat apache_access_2021-10-24.log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less
 

10、查杀rootkit

 Rootkit是一个恶意软件,它可以隐藏自身以及指定的文件、进程、网络、链接、端口等信息。Rootkit可通过加载特殊的驱动修改系统内核,进而达到隐藏信息的目的。Chkrootkit是一款用来检测rootkit的软件,针对上述的一些分析完成之后可以考虑利用Chkrootkit对系统进行一次检测。

Chkrootkit扫描结果后面如果是:not infected/not tested/nothing found/nothing deleted 之类的就表示正常。如果是INFECTED那么就需要针对其进行分析。
 


 


也可以通过chkrootkit | grep INFECTED 命令直接找到可能被感染的文件。

三、总结

以上便是我对linux系统中应急响应过程中常用的一些功能和分析方法,从10个方面进行了描述。当然往往一些安全事件的复杂性可能超出了这些范围,但是当我们将基础的一些思路和方法都掌握了,对于一些变化上的分析灵活运用和实操便可。

文章转载至: 奇安信攻防社区-Linux应急响应篇 (butian.net)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值