目录
排查思路
深入分析,查找入侵原因
检查恶意进程及非法端口
检查恶意程序和可疑启动项
检查第三方软件漏洞
Part2运行进程排查
Part3端口开放检查
Part4检查主机服务
Part5检查历史命令
Part6查看计划任务
Part7查看制定文件夹七天内被修改过的文件
Part8扫描主机驱动程序
Part10日志排查
Part11登陆排查
Part12启动项排查
检查隐藏帐户及弱口令
使用last
命令查看下服务器近期登录的帐户记录,确认是否有可疑 IP 登录过机器
通过less /var/log/secure|grep 'Accepted'
命令,查看是否有可疑 IP 成功登录机器
检查系统是否采用 默认管理端口
检查/etc/passwd
文件,看是否有非授权帐户登录
运行netstat -antp
,查看服务器是否有未被授权的端口被监听,查看下对应的 pid
使用ps -ef
和top
命令查看是否有异常进程
使用chkconfig --list
和cat /etc/rc.local
命令,查看开机启动项中是否有异常的启动服务
进入 cron 文件目录,查看是否存在非法定时任务脚本
如果您服务器内有运行 Web、数据库等应用服务,请您限制应用程序帐户对文件系统的写权限,同时尽量使用非 root 帐户运行
升级修复应用程序漏洞
Part1熟悉主机环境
首先,先对排查主机的基本信息有一个了解。
· uname -a
· cat /proc/version
· lsb_release -a
首先熟悉一下ps命令的参数:
· ps [选项]
-e 显示所有进程。
· -f 全格式。
· -h 不显示标题。
· -l 长格式。
· -w 宽输出。
· a 显示终端上的所有进程,包括其他用户的进程。
· r 只显示正在运行的进程。
· u 以用户为主的格式来显示程序状况。
· x 显示所有程序,不以终端机来区分。·
· 参数含义:
· 1.UID 用户ID
· 2.PID 进程ID
· 3.PPID 父进程ID
· 4.C CPU占用率
· 5.STIME 开始时间
· 6.TTY 开始此进程的TTY----终端设备
· 7.TIME 此进程运行的总时间
· 8.CMD 命令名
· ps aux
· 参数含义:
· USER //用户名
· %CPU //进程占用的CPU百分比
· %MEM //占用内存的百分比
· VSZ //该进程使用的虚拟內存量(KB)
· RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
· STAT //进程的状态
· START //该进程被触发启动时间
· TIME //该进程实际使用CPU运行的时间
· top (动态查看进程)
pstree(树形结构显示进程之间的关系
通过进程运行的命令、资源占用、位置等来查找可疑进程。查找到可以进程后可以使用ll /proc/[进程pid]来获取进程运行的路径。
查找到可以进程后可以使用kill -9 [进程pid]来杀死进程。
ps -p [pid] -o lstart(查看进程开放的时间)
· pstree -h [pid] -p -a 查看某个pid的进程树
netstat -antpl(查看开放端口)
可以通过判断开放的异常端口来进行排查,或通过state字段来判断有没有端口进行网络连接。
· lsof -i(查看正在进行的网络连接)
· lsof -p [pid]查看进程PID打开的文件
lsof -c [进程名]查看该进程打开的文件
· lsof -i:[端口号]查看该端口对应的进程
· fuser -n tcp [端口号]查看该端口对应的进程pid
service --status-all(枚举主机的所有服务)
· history
· cat ~/.bash_history
· crontab -l
· cat /etc/anacrontab 查看异步定时任务
· more /var/log/cron 查看计划任务日志
· more /var/spool/cron/*
· find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -alh
· lsmod
Part9查看攻击者是否在authorized_keys添加ssh私钥
· ll ~/.ssh
· cat ~/.ssh/root/authorized_keys
· /var/log/message 包括整体系统信息
· /var/log/auth.log 包含系统授权信息,包括用户登录和使用的权限机制等
· /var/log/userlog 记录所有等级用户信息的日志
· /var/log/cron 记录crontab命令是否被正确的执行
· /var/log/xferlog(vsftpd.log) 记录Linux FTP日志
· /var/log/lastlog 记录登录的用户,可以使用命令lastlog查看
· /var/log/secure 记录大多数应用输入的账号与密码,登录成功与否
· /var/log/wtmp 记录登录系统成功的账户信息,等同于命令last
· /var/log/faillog 记录登录系统不成功的账号信息,一般会被黑客删除 如果开启了一些服务,也需要对服务运行的日志进行排查
· who (查看当前登录的用户)
· w(显示已登陆的用户,且在执行的命令)
· last (查看登录成功的用户)
lastb(查看最近登录失败的用户)
· lastlog (查看所有用户最近登录的时间)· cat /etc/passwd(查看用户信息)
排查passwd时,注意查看可登录shell的用户,即:shell为/bin/bash
· awk -F: '$3==0{print $1}' /etc/passwd #查看超级用户(uid=0)
· chkconfig --list 列出所有开机启动项
· 主要排查的启动项有:
· /etc/rc.d/rc
· /etc/rc
· /etc/rc.local
· /etc/rc.d/rc.local
· /etc/rc.d/rc
· /etc/init/*.conf
· /etc/rc$runlevel.d/
· /etc/profile