一、linux进程排查
- 查看资源占用:
top
- 查看所有进程:
ps -ef
- 根据进程PID查看进程详细信息:
lsof -p PID
- 查看启动时间:
ps -p PID -o lstart
- 对于一些异常文件,初步判断,可以用
strings
显示里面的可读字符串:
- 查看进程可执行文件:
ls -al /proc/PID/exe
- 查看进程树:
pstree
二、linux文件排查
- 查找根目录下,修改时间小于1天的文件:
find / -mtime -1
mtime
可以对应为mmin
指修改分钟,m
意为modify
,相应可改为ctime
(create time),atime
(access time)· - 也可结合文件名进一步查找:
find /var/www/html/ -mtime -1 -name *.php
- 查看系统命令是否存在异常,如大小、修改时间、创建时间等:
ls -altS /usr/sbin | head -30
- 查看当前已建立的TCP连接:
netstat -antulp | grep ESTABLISHED
- 查看反弹连接:
netstat -antulp | grep bash
- 查看本机开放的端口:
netstat -antulp
- 查看某一端口的具体应用:
lsof -i:22
三、linux用户排查
- 查看uid或gid为0的用户:
grep :0 /etc/passwd
- 查看passwd文件的最后修改记录:
stat /etc/passwd
- 统计所有用户的shell相关信息:
cat /etc/passwd | awk -F:'{print $7}' | sort | uniq -c
- 重点查看有登录权限的用户:
cat /etc/passwd | grep bash
- 查看用户登录时间:
last
- 查看允许sudo的用户:
more /etc/sudoers | egrep -v "^#|^$"
继续查找wheel组包含的用户:grep wheel /etc/group
四、linux持久化排查
4.1 历史命令
- linux因为其命令行的特殊性,可以通过
history
命令来查看用户之前的操作; history
记录位于用户home目录下的.bash_history
文件中;- 可以直接
cat ~/.bash_history
查看历史记录。
4.2 定时任务排查
命令:crontab -l
,定时任务还应检查以下文件和文件夹:
4.3 开机启动项排查
linux开机有多种运行级别,不同级别下加载的启动文件也不相同。
查看当前启动级别:runlevel
,不同启动项会加载不同启动文件,应检查下述文件或文件夹:
五、linux日志分析
linux使用rsyslog
管理日志,通常关注的日志有:
定位有多少IP在爆破主机的root账号:
定位有哪些IP在爆破:
六、工具应用
chkrootkit
,用于检查rootkit隐藏,chkrootkitrkhunter
是基于unix的工具,可扫描rootkit,后门程序和可能的本地漏洞;- webshell检测工具,深信服EDR检测