Linux应急响应基础
一般处置流程
特征排查
服务器被攻击,或多或少都会有相对应的症状,例如:挖矿病毒,CPU利用率升高,内存占用率增加,出现异常进程,服务器响应速度变慢等等。
清除病毒
根据上一步出现的现象进行百度,查看特征是否匹配,确定病毒类型,病毒感染后会创建哪些文件及进程等等。
系统加固
根据病毒传播传播途径,对系统进行加固,防止再次感染。
基本排查命令
查看历史命令
通过.bash_history查看帐号执行过的系统命令
root的历史命令:histroy
打开/home各帐号目录下的.bash_history,查看普通帐号的历史命令
历史操作命令的清除:history -c(但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。)
查看系统CPU状态
top

PID:进程ID,进程的唯一标识符
USER:进程所有者的实际用户名。
PR:进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI:进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES:驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR:SHR是进程使用的共享内存。共享内存大小,单位kb
S:这个是进程的状态。它有以下不同的值:
- D - 不可中断的睡眠态。
- R – 运行态
- S – 睡眠态
- T – 被跟踪或已停止
- Z – 僵尸态
%CPU:自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM:进程使用的可用物理内存百分比。
TIME+:任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND:运行进程所使用的命令。进程名称(命令名/命令行)
进程枚举
ps -aux
病毒一般携带可疑字符串,如果发现需要额外关注。

USER:用户名
%CPU:进程占用的CPU百分比
%MEM:占用内存的百分比
VSZ:该进程使用的虚拟內存量(KB)
RSS:该进程占用的固定內存量(KB)(驻留中页的数量)
STAT:进程的状态
START:该进程被触发启动时间
TIME:该进程实际使用CPU运行的时间
ps命令详解
| 参数 | 介绍 |
|---|---|
| a | 显示现行终端机下的所有程序,包括其他用户的程序。 |
| -A | 显示所有程序。 |
| c | 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。 |
| -e | 此参数的效果和指定"A"参数相同。 |
| e | 列出程序时,显示每个程序所使用的环境变量。 |
| f | 用ASCII字符显示树状结构,表达程序间的相互关系。 |
| -H | 显示树状结构,表示程序间的相互关系。 |
| -N | 显示所有的程序,除了执行ps指令终端下的程序之外。 |
| s | 采用程序信号的格式显示程序状况。 |
| S | 列出程序时,包括已中断的子程序资料。 |
| -t <终端机编号> | 指定终端机编号,并列出属于该终端机的程序的状况。 |
| u | 以用户为主的格式来显示程序状况。 |
| -l | 较长,较详细的显示该PID的。 |
分析可疑端口、IP、PID
netstat -antlp|more

查看下pid所对应的进程文件路径,
运行 ls -l /proc/$PID/exe 或 file /proc/$PID/exe($PID 为对应的 pid 号)
定时任务排查
crontab
列出某个用户 cron 服务的详细内容:crontab -l
删除每个用户cront任务(谨慎:删除所有的计划任务):crontab -r
使用编辑器编辑当前的crontab文件:crontab -e
anacron
利用anacron实现异步定时任务调度。anacron 会以 1 天、1周(7天)、一个月作为检测周期,判断是否有定时任务在关机之后没有执行。如果有这样的任务,那么 anacron 会在特定的时间重新执行这些定时任务。
Eg:每天运行 /home/backup.sh脚本: vi /etc/anacrontab @daily 10 example.daily /bin/bash /home/backup.sh当机器在 backup.sh 期望被运行时是关机的,anacron会在机器开机十分钟之后运行它,而不用再等待7天。
详细介绍:> http://c.biancheng.net/view/1095.html
日志分析
日志默认存放位置:/var/log/
查看日志配置情况:more /etc/rsyslog.conf
| 日志文件 | 说明 |
|---|---|
| /var/log/cron | 记录了系统定时任务相关的日志 |
| /var/log/cups | 记录打印信息的日志 |
| /var/log/dmesg | 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息 |
| /var/log/mailog | 记录邮件信息 |
| /var/log/message | 记录系统重要信息的日志。这个日志文件中会记录Linux系统的绝大多数重要信息,如果系统出现问题时,首先要检查的就应该是这个日志文件 |
| /var/log/btmp | 记录错误登录日志,这个文件是二进制文件,不能直接vi查看,而要使用lastb命令查看 |
| /var/log/lastlog | 记录系统中所有用户最后一次登录时间的日志,这个文件是二进制文件,不能直接vi,而要使用lastlog命令查看 |
| /var/log/wtmp | 永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件。同样这个文件也是一个二进制文件,不能直接vi,而需要使用last命令来查看 |
| /var/log/utmp | 记录当前已经登录的用户信息,这个文件会随着用户的登录和注销不断变化,只记录当前登录用户的信息。同样这个文件不能直接vi,而要使用w,who,users等命令来查询 |
| /var/log/secure | 记录验证和授权方面的信息,只要涉及账号和密码的程序都会记录,比如SSH登录,su切换用户,sudo授权,甚至添加用户和修改用户密码都会记录在这个日志文件中 |

浙公网安备 33010602011771号