终端防护软件告警发现服务器被上传恶意软件

终端防护软件告警发现服务器被上传恶意软件,了解发现服务器仅有门户网站并且运行在Tomcat下,请详细描述如何进行WEB排查以及攻击溯源,包括使用哪些工具、命令等。

一、应急处置(第一步必须写)

  1. 隔离现场:立即将受影响主机从外网隔离(物理断网或在网络层阻断外联),但不要重启主机或直接删除文件,避免破坏证据。
  2. 记录与授权:记录告警时间、检测到的文件路径与告警内容,获得应急/取证授权后继续。
  3. 优先保全证据:优先采集内存、磁盘镜像、web 应用目录、Tomcat 日志与网络抓包,所有采集输出应写入只读介质并计算哈希。

二、总体态势感知(快速确认)

	whoami            # 输出当前执行命令的用户名,确认权限(eg. root/tomcat)
	hostname          # 输出主机名,记录受影响设备标识
	uname -a          # 显示内核和系统信息,便于后续漏洞匹配
	uptime            # 查看系统运行时间与负载,判断是否刚重启或高负载

三、Web(Tomcat)层排查 — 目标:发现被上传的 webshell / 恶意 WAR / 配置篡改

  1. 检查 webapps 目录的新增/修改文件

    find /opt/tomcat/webapps -type f -mtime -3
    含义:查找 webapps 下 3 天内被修改的普通文件,快速定位最近被上传或修改的文件

  2. 列出 WAR 包内容(查是否被篡改或包含可疑 JSP)

    jar -tf /opt/tomcat/webapps/suspicious.war
    含义:列举 WAR 文件内部文件清单(类似 unzip -l),用于查看是否含可疑 JSP/class

  3. 搜索常见 webshell / 命令执行特征

     grep -RIn --binary-files=text -E "Runtime\\.getRuntime|ProcessBuilder|getRuntime\\(|exec\\(|eval\\(|base64_decode|request\\.getParameter" /opt/tomcat/webapps
    

含义:递归搜索含可疑关键字的文件。-R 递归,-I 忽略二进制文件,-n 显示行号,-E 使用扩展正则

  1. 检查 Tomcat 用户与配置是否被篡改

    cat /opt/tomcat/conf/tomcat-users.xml
    含义:查看是否有人新增管理用户或弱口令账户

    cat /opt/tomcat/conf/server.xml /opt/tomcat/conf/context.xml
    含义:查看是否有可疑的 JNDI/Valve/Connector 配置(远程类加载、反序列化入口等)

  2. 检查 Tomcat 日志(access / catalina)

     grep "POST" /opt/tomcat/logs/*access*           
    

筛查 POST 请求,通常用于上传

awk '{print $1,$9,$4,$7}' /opt/tomcat/logs/*access* | sort | uniq -c | sort -rn | head

含义:统计 IP(第1列)与状态码(第9列)及时间/请求路径,找高频或异常 IP/URI

四、主机层排查 — 目标:发现持久化、恶意进程、对外连接

  1. 进程与监听端口

     ps aux --sort=-%mem | head -n 20
    

含义:列出占用内存最高的 20 个进程,帮助发现异常进程

	ps -ef | grep -E 'tomcat|java'

含义:定位 Tomcat/java 进程及其启动参数(是否被注入额外 jar)

	ss -tulpen

含义:显示监听端口与对应进程(-t TCP, -u UDP, -l 监听, -p 显示进程, -e 扩展信息, -n 数字显示)

	ss -tanp | grep ESTAB

含义:查看所有已建立的 TCP 连接,找出对外回连的远程 IP 与对应 PID

	lsof -i -P -n

含义:列出打开网络连接的进程,-P 不解析端口名,-n 不解析主机名

  1. 将连接与进程对应起来(示例)

     for pid in $(ss -tanp | awk '/ESTAB/ {print $6}' | cut -d',' -f2 | sed 's/pid=//' | sort -u); do
       echo "PID $pid"; ps -p $pid -o pid,user,cmd; lsof -p $pid -a -i;
     done
    

含义:从已建立连接中提取 PID,逐个输出进程命令行与其网络句柄,便于确定哪个进程在通信

  1. 查找近期被修改/新增的可执行文件(可疑后门)

     find / -xdev -type f -perm /111 -mtime -7 -ls 2>/dev/null
    

含义:在根分区(不跨挂载)查找 7 天内修改过且带执行权限的文件(可能是后门脚本或二进制)

  1. 持久化点检查

     crontab -l
    

含义:查看当前用户 crontab,排查定时任务

ls -l /etc/cron* /var/spool/cron/crontabs

含义:检查系统级定时任务目录

systemctl list-unit-files --type=service | grep enabled

含义:列出 systemd 中已启用的服务,查是否有可疑 service 单元

ls -l /etc/systemd/system/ /lib/systemd/system/

含义:查看是否存在恶意自定义 systemd 单元文件

五、证据采集(必须写清楚并说明原因)

说明:对证据采集要特别强调“只读/拷

posted @ 2025-10-08 20:01  JuneCy  阅读(14)  评论(0)    收藏  举报