02、Linux 排查
Linux 分析排查
1.敏感文件信息
1.1.tmp 目录
/tmp:临时目录文件,每个用户都可以对它进行读写操作。因此一个普通用户可以对 /tmp 目录执行读写操作(ls -alt)
筛查 /tmp 目录下是否存在相关的恶意文件等
1.2.开机启动:/etc/init.d
恶意代码很可能设置在开机自启动的位置
查看指定目录下文件时间顺序的排序:ls -alt |head -n 10
查看文件时间属性:stat 文件名(查看陌生的文件属性)
如果发现服务器被入侵的时间和文件相关的更改时间相近,那么很有可能是恶意代码,需要进行具体分析
1.3.分析敏感文件
新增文件分析(恶意文件时间未被修改):
查找 24 小时内被修改的文件
find ./ -mtime 0 -name "*.php"(-mtime:修改时间,0表示(0+1)*24小时之内,从现在开始前24小时)
查找72 小时内新增的文件
find ./ -ctime -2 -name "*.php"(-ctime:创建时间,2表示(2+1)*24小时之内)
权限查找:在Linux中,如果具有777权限,那么文件很可疑
find ./ -iname "*.php*" -perm 777(-iname:忽略大小写;-perm:用于设定筛选文件权限)
2.网络连接分析
在 Linux 中使用 netstat 进行网络连接查看:man netstat(查看帮助文档)
常用命令 netstat -pantl 查看出于 tcp 网络套接字相关信息
关闭未知连接:kill -9 pid
3.进程分析
查看所有进程信息:ps aux
筛选具体 PID 的进程信息:ps aux |grep PID(lsof -i:端口号,也可以实现类似功能)
4.登录分析
通过查看日志信息,来分析是否有异常登录(分析是否是熟悉的IP)
查看登录日志:last
筛选非本地登录:last-i |grep -v 0.0.0.0
实时查看当前登录内容:w
5.异常用户分析排查
创建root权限的账户:将 /etc/passwd 中的 uid 和 gid 都改为 0 即可
查看具有 root 权限的账户:grep "0:0" /etc/passwd
查看 /etc/passwd 文件的修改时间是否异常
筛选出空密码账户:awk -F: '$2 == "!" {print $1}' /etc/shadow
6.历史命令分析-history
默认记录之前执行的命令会保存在 /root/.bash_history 文件中
查看历史命令:cat /root/.bash_history 或 history
特别注意:wget(可能远程下载木马)、ssh(连接内网主机)、tar zip类命令(数据打包)、系统配置等(命令修改)
7.计划任务排查-crontab
使用 crontab 命令进行计划任务设定
- -e:用来编辑设定计划任务
- -l:查看当前计划任务
- -r:删除计划任务
特别注意计划任务中未知内容
8.开机自启动项排查
开机自启动程序目录:/etc/init.d
查看程序状态:/etc/init.d/程序名称 status(start、stop)
取消开机自启动:update-rc.d 程序名称 disable(enable)
9.$PATH 变量异常
查看环境变量:echo $PATH
修改 PATH:export PATH=$PATH:/usr/locar/new/bin(本次终端中有效,重启后无效)
永久生效:/etc/profile 或 /home/.bashrc(刷新:source ~/.bashrc)
10.后门自动排查
河马 webshell 扫描器:https://www.shellpub.com/#
安装使用:https://blog.csdn.net/WEARE001/article/details/122862090
- 不要放置在 web 目录下
- 不要在 web 目录下运行软件
chkrootkit:https://www.chkrootkit.org/download/
Rootkit Hunter:https://rkhunter.sourceforge.net/
chkrootkit 和 Rootkit Hunter 的安装及使用:https://www.cnblogs.com/timssd/p/5679578.html