Linux应急响应流程
备份用户信息文件
cat /etc/passwd > passwd.txt ;
cat /etc/shadow > shadow.txt ;
备份当前网络信息
netstat -anp > netstat_anp.txt ;
备份历史命令
cp ~/.bash_history history.txt ;
history > history.txt1 ;
备份用户登录的信息
w > users.txt ;
备份当前进程信息
ps aux > ps.txt ;
二、用户信息分析
1. 查看当前用户
whoami
2. 查看当前登录系统的所有用户
who(tty:指的是主机的图形化界面的面板,pts/x:指的是ssh远程连接的窗口)
3. 主机上一次开启的时间
who -b
4. 显示已经登录系统的用户列表,并显示用户正在执行的指令
w
5. 显示当前登录系统的所有用户的用户列表
users
6. 查看最近登录成功的用户
lastlog
7. 查看用户信息
cat /etc/passwd
8. 查看可以登录系统的用户
cat /etc/passwd | grep /bin/bash
9. 查看超级用户(uid=0)
awk -F: '$3==0{print $1}' /etc/passwd
awk:awk 是一个强大的文本处理工具,常用于模式扫描和处理。它按行读取文件,并且可以基于特定的条件来执行操作。 -F::这个选项指定字段分隔符,-F 表示分隔符的设置,后面的: 表示使用冒号: 作为字段分隔符。在/etc/passwd 文件中,每一行都包含以冒号分隔的字段,如用户名、密码、用户ID等。 \$3==0:这是awk 的条件表达式。\$3 表示文件的第三个字段(在/etc/passwd 中,第三个字段是用户ID,通常是 UID)。条件==0 用来判断该字段是否为0,即查找 UID 为0 的行。通常,UID 为 0 的用户是 root 用户。 {print \$1}:当满足条件(UID 为 0)时,执行{print \$1}。\$1 表示每行的第一个字段,即用户名。该部分的意思是打印出符合条件的行中的第一个字段,也就是root 用户。 /etc/passwd:这是输入文件,awk 将逐行处理此文件。/etc/passwd 是一个存储系统用户信息的文件1,每一行通常包含如下字段:
10. 查看用密码登录的用户
cat /etc/shadow
11. 查看有sudo权限的用户
more /etc/sudoers | grep ALL
12. 查看历史命令
cat ~/.bash_history
三、进程信息分析
1. 动态查看进程
top
2. 查看PID为549986的进程的可执行程序
ps aux 显示所有进程
ls -l /proc/pid(这里要输入上面ps命令显示进程里面的PID)/exe
3. 查看PID为549986的进程打开的文件
lsof -p pid(这里要输入上面ps命令显示进程里面的PID)
4. 查看进程sshd打开的文件
lsof -c sshd
5. 查看22端口对应的一些进程
lsof -i:port(端口)
6. 查看pid为549986进程的启动时间点
ps -p PID -o lstart
7. 查看网络连接情况
netstat -pantu
8. 查看端口对应的进程PID
fuser -n tcp port(端口)
9. 查看系统进程
ps aux (ps -ef)
10. 查看系统进程树
pstree
11. 查看进程,根据cpu使用从高到低
ps aux --sort -pcpu
12. 查看进程,根据内存使用从高到低
ps aux --sort -pmem
四、网络连接分析
1. netstat命令用来打印Linux中网络系统的状态信息;
netstat -an
2. 查看TCP连接状态
netstat -nat
五、异常文件分析
1. 查看指定目录最近被修改的文件(查看var目录下3天内被修改的文件)
find /var/ -type f -mtime -3 | xargs ls -la
2. 按时间排序,查看var目录下最近是否有命令被替换
ls -alt /var/
六、开机启动项分析
1. 查看是否有异常开机启动项
cat /etc/rc.local
七、定时任务分析
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:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件
八、系统日志分析
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
3. 查看登录失败的记录
cat /var/log/auth.log | grep FAILED
4. 查看最近登录失败的用户及信息,查看的是 /var/log/btmp 文件
lastb
5. last命令查看系统中最近的五次用户登录记录
last | head -5
6. 显示系统中所有用户最近一次登录信息,读取的是 /var/log/lastlog 文件
lastlog