进程排查
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
无论是在Windows系统还是Linux系统中,主机在感染恶意程序后,恶意程序都会启动相应的进程,来完成相关的恶意操作
Linux进程排查
进程基本信息
top
动态查询当前进程,可用于排查挖矿程序ps -aux
查看进程free -h
查看系统内存使用情况
- Swap一般用不上,如果占用率非常高,可能是内存不够了,需要扩容,关注内存使用率
- 也有可能是挖矿
netstat -ntapl
排查网络连接情况
进程创建时间
ps -ef
命令查看进程创建时间
- 通过
/proc/pid/
目录中文件判断文件创建时间
对应可执行文件
ls -atl /proc/[PID]/
查找进程对应可执行程序lsof -p [PID]
查找进程对应可执行程序
命令替换
rpm -Vf /usr/bin/*
排查命令替换
- S: 表示对应文件的大小(Size)不一致;
- M: 表示对于文件的mode不一致;
- 5: 表示对应文件的MD5不一致;
- D: 表示文件的major和minor号不一致;
- L: 表示文件的符号连接内容不一致;
- U: 表示文件的owner不一致;
- G: 表示文件的group不一致;
- T: 表示文件的修改时间不一致;
dpkg -verify
也有类似作用
隐藏进程
ps -ef awk'{print}' | sort -n | uniq >1
ls /proc | sort -n | uniq >2
diff 1 2
服务排查
服务可以理解为运行在后台的进程
这些服务可以在计算机启动时自动启动,也可以暂停和重新启动,而且不显示任何用户界面
服务非常适合在服务器上使用,通常在为了不影响在同一台计算机上工作的其他用户,且需要长时间运行功能时使用
在应急响应排查过程中,服务作为一种运行在后台的进程,是恶意软件常用的驻留方法
Linux服务排查
服务状态
service --status-all
systemctl | more
开机自启
systemctl list-unit-files
文件痕迹排查
在应急响应排查的过程中,由于大部分的恶意软件、木马、后门等都会在文件维度上留下痕迹,因此对文件痕迹的排查必不可少
一般可以从以下几方面对文件痕迹进行排查
- 对恶意软件常用的敏感路径进行排查
- 在确定了应急响应事件的时间点后,对时间点前后的文件进行排查
- 对带有特征的恶意软件进行排查,这些特征包括代码关键字或关键函数、文件权限特征等
Linux文件痕迹排查
敏感目录
- 临时目录
/tmp
- 命令目录
/usr/bin
/usr/sbin
等
- 经常作为恶意软件下载目录及相关文建被替换的目录
~/.ssh
及/etc/ssh
- 经常作为一些后门配置的路径
- authorized_keys种可能存有攻击者秘钥信息
近期变动文件
通过列出攻击日期内变动的文件,可发现相关的恶意软件
在Liux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态时间
- Access Time:文件访问时间,显示一个文件的内容或者运行一个SHELL脚本会更新文件的ATIME
- Modify Time:文件内容修改时间,可用 ls -l 命令查看
- Change Time:文件内容、权限变更,可用 ls -lc 命令查看
find
通过【find】命令可对某一时间段内增加的文件进行查找,以下为常用的【find】命令
find:在指定目录下查找文件
-mtime -n/+n
:按文件更改时间来查找文件,-n指n天以内,+n指n天前-atime -n/+n
:按文件访问时间来查找文件,-n指n天以内,+n指n天前-ctime -n/+n
:按文件创建时间来查找文件,-n指n天以内,+n指n天前
后续可以加-name
/iname
来指定文件类型,-iname
忽略字母的大小写
注意,find命令认为24小时之内是第0天
示例
查找最近 3 天内修改过的日志文件(.log)
find /var/log -name "*.log" -mtime -3
查找动态脚本并打包成tar.gz
find ./* -iname "*.jsp*" | xargs tar zcvf /tmp/shellscript.tar.gz
查找当前目录及子目录下,一周以前修改过的所有文本文件(.txt 或 .TXT)并列出详细信息
find . -iname "*.txt" -mtime +7 -ls
特殊文件
系统中的恶意文件存在特定的设置、特定的关键字信息等,Linux系统中的几种特殊文件类型可以按照以下方法进行排查:
特殊权限文件查找
查找777权限的文件:【find /tmp -perm 777】
对系统命令进行排查
【ls】和【ps】等命令很可能被攻击者恶意替换,所以可以使用
- 【ls -alt /bin】命令,查看命令目录中相关系统命令的修改时间,从而进行排查
- 【ls -alh /bin】命令查看相关文件的大小,若明显偏大,则文件很可能被替换
排查SUID程序
即对于一些设置了SUID权限的程序进行排查,可以使用【find / -type f -perm -04000】
文件信息
- 查看当前目录下所有文件并排序:
ls -alt
- 修改文件属性:
chattr
- 显示文件属性:
lsattr
- 查看文件(文件夹)详细信息:
stat
- 比较文件差异:
diff -c
- 查找符合条件的字符串:
grep