快速定位可疑进程和网络连接需先用ps auxf和lsof筛选高负载进程及异常监听,再查/proc/pid/信息;关键日志包括auth.log、secure、btmp等;用awk/grep提取攻击特征;auditd应精简规则监控核心路径。

怎么快速定位可疑进程和网络连接
入侵发生时,最直接的线索往往藏在正在运行的进程和异常网络连接里。别急着翻日志,先用系统自带工具筛一遍。
常见错误现象:top 或 htop 里看到 CPU 占用突增但进程名可疑(比如 sshd2、.xmr、sh2),或者 netstat -tulnp 显示非标准端口(如 :31337、:6666)被未知用户监听。
- 优先用
ps auxf --sort=-%cpu | head -20看高负载进程树,注意 UID 不是root或业务用户的项 -
lsof -i -P -n | grep -E "(LISTEN|ESTABLISHED)"比netstat更可靠,尤其在容器或 namespace 环境下 - 发现可疑 PID 后,立刻查它的启动路径:
ls -la /proc/<code>PID/exe 和cat /proc/<code>PID/cmdline | tr '\0' ' ' - 注意:某些 rootkit 会 hook
ps或ls,如果结果明显缺失(比如没看到已知服务),考虑用busybox ps或从 Live CD 挂载分析
哪些日志文件必须第一时间检查
不是所有日志都同等重要。入侵痕迹往往只在几个关键位置留下蛛丝马迹,其他全是噪音。
使用场景:服务器被横向移动后,攻击者常删日志但漏掉某些文件;或者 syslog 配置不当导致关键事件没落地。
-
/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(RHEL/CentOS):重点搜Failed password、Accepted password、session opened for user,尤其是非工作时间或非常用 IP -
/var/log/syslog或/var/log/messages:查systemd服务异常重启、内核audit日志(如果启用了auditd) -
/var/log/kern.log:有些 rootkit 加载模块会触发insmod或Unknown symbol报错 - 别忽略
/var/log/btmp:用lastb -i查爆破记录,它不走 syslog,攻击者删auth.log也常漏掉这个
用 awk/grep 快速提取攻击特征
人工扫日志效率低还易漏,但写复杂脚本又没必要。几行 awk + grep 就能抓住大部分批量行为。
参数差异:grep -E 支持正则,但对超大文件比 awk 慢;awk '$9 ~ /404|403/ {print $1,$4,$9}' 这类字段筛选更准,避免正则误匹配。
- 查 Web 扫描痕迹:
awk '$9 ~ /^404$/ && $7 ~ /\.php|\.jsp|\/wp-admin/ {print $1,$7}' /var/log/apache2/access.log | sort | uniq -c | sort -nr | head -10 - 查提权尝试:
grep -i "sudo.*invalid" /var/log/auth.log | awk '{print $1,$2,$3,$9,$11}' | sort | uniq -c - 查定时任务植入:
grep -r "curl\|wget\|base64\|sh -c" /var/spool/cron/ /etc/cron* 2>/dev/null - 注意:日志轮转后路径可能变成
auth.log.1.gz,记得加zgrep,否则白忙活
auditd 规则怎么设才不拖慢系统
开全量 audit 会让 I/O 和 CPU 明显上涨,尤其在高并发服务上。得抓关键点,不是越多越好。
性能影响:默认规则监控所有 execve 调用,单机每秒数百次调用就可能卡住 auditd 队列,导致日志丢失或系统变慢。
- 禁用默认的全路径监控:
auditctl -e 2(先锁定规则),再auditctl -D清空,避免冲突 - 只监核心二进制:
auditctl -w /usr/bin/sudo -p x -k suspicious_exec,-p x表示可执行权限变更 - 监控敏感目录写入:
auditctl -w /etc/passwd -p wa -k etc_passwd_change,-p wa是写+属性修改 - 规则写进
/etc/audit/rules.d/critical.rules并augenrules --load,否则重启失效;别用service auditd restart,它会清空运行中规则
真正难的是判断哪个行为算“可疑”——比如 curl 下载脚本本身不违法,但配合 /tmp 写入 + sh 执行链,就是典型攻击模式。这种关联得靠后续分析,audit 只管收原始数据。










