溯源攻击这是一个亘古不变的话题, 大多数要么就是不懂要么就是不太懂。要么就是出了问题之后才会想着如何防御,这里拿出一个简单的案例来给大家分享。
一、某某网站被入侵(首页被勒索)
1. 首先是一个thinkphp 二开的程序
2. Linux 系统
3. 被勒索
4. 所有环境为本地复现
拿到客户资料之后。首先查看日志是还在。
好在日志还保留的齐全。我后面下载下来分析了起来
搜索木马的技巧如下:
1. 木马的请求大多数是POST的请求
2. 并且是PHP 文件结尾
3. 并且连续的请求此文件
4. 并且都是200 OK 的日志
5. 去重。统计数量
PS:(如果是MVC的框架的木马就不能这么干了,例如:ThinkPHP路由方式的木马
通过Linux 的一顿统计操作得到如下结果
cat 1.log |grep POST |grep 200 | awk '{print $7}'|sort|uniq -c|sort -nrk 1 -t' '
看到这里已经看到了木马的地址了
/Uploads/images/2020-08-26/5f4620d5204bb.php
打开该文件
发现是一个webshell 访问一下
通过这里已经发现了webshell。那么这个webshell 是怎么来的呢?
再次翻看日志
发现这个IP为:154.210.2.242 利用了该webshell 那么就从这个IP的活动范围进行摸排
找到5f4620d5204bb.php 第一次出现的时间
看到上面几条日志。发现了端倪
/index.php/Home/Public/login.html
这里首先是一个登陆操作。然后上传一个文件。然后在访问了这个PHP文件。为了验证这个想
发现是没有验证任何的后缀和任何的一个文件内容
找到问题之后呢。首先是先排查一下对方还有没有其他的木马文件。再次对日志进行排查
发现还传了一个adminer.php (脱数据库使用的一个文件)
除了这两个之外。就没有排查到第三个了webshell了 (删除webshell)
二、修复
1. 删除木马。
2. 修改文件上传逻辑
3. 增加防御
4. 预防此类事情发生
2.1 ThinkPHP 项目的安全防御配置
https://www.bt.cn/bbs/thread-52183-1-1.html
三、预防攻击的发生
1. 安装Nginx 防火墙
2. 安装PHP安全防护
3. 安装Openrasp
4. 企业级防篡改
具体的操作看如下的文章:
在常用设置中,经常碰到openrasp 拦截的一个情况,大多数是拦截了ssrf的问题,那么下面是openrasp 配置白名单的设置。
Openrasp 防御的白名单设置 (目录在/opt/rasp_php版本/conf)
保存之后,重启PHP即可。