安全老司机 | Struts2漏洞爆发后,与黑客的一次正面交锋

 备注:

青藤云安全:——用的是进程信息采集器

通过对用户进程行为的实时监控,结合行为分析,及时发现非法shell连接引起的反弹shell行为,可以有效地感知0Day漏洞利用的行为痕迹,可以提供反向shell的详细过程操作树。

青藤云安全将Agent安装在服务器上,根据客户业务运行状况设立数万个监测指标,对文件进程、主机访问、业务关系等建立多维度、多层次的纵深检测体系,可以无间断对入侵行为进行监控,实现实时的入侵检测和快速响应,一旦发现异常情况,进行毫秒级报警

青藤新一代主机入侵检测系统的“反弹shell”功能,可以通过对用户进程行为进行实时监控,结合异常行为识别,可及时发现进程中非法 Shell 连接操作产生的反弹 Shell行为,能有效感知“0Day”漏洞等利用的行为痕迹,并提供反弹 Shell 的详细进程树。

故事开始

“我们可能被黑客攻击了!!!”接到客户急匆匆的一个电话。

我赶紧打开电脑查看报警邮件,提示存在一个反弹Shell的攻击行为。

这大半夜,客户的服务器居然正在主动尝试连接外部其它服务器。在那个瞬间,我都能想象得出来,服务器另一端那个穿着“黑衣服”的人,面对“冒着新鲜热气儿”的Shell唾手可得的那种狂喜。显然,黑客正在疯狂攻击,情况甚是紧急,需要在黑客造成真正破坏之前阻止他们。

做技术的人都知道,反弹Shell一般是外网渗透的最后一步,也是内网渗透的第一步。反弹Shell对服务器安全乃至内网安全的危害不必多说。

多年的一线拼杀经验告诉我,黑客一般是利用远程命令执行、远程代码执行、Webshell、Redis未授权访问可执行系统命令等漏洞,执行反弹命令,使目标服务器发出主动连接请求,从而绕过防火墙的入站访问控制规则。

初试无果

因为客户正好部署了青藤的大数据安全产品,能够记录展示每台服务器系统交互Shell的命令,包括操作者IP,操作终端,操作用户,操作详情等关键信息。但是出乎意料的是,在反弹Shell这十几分钟时间内,日志上居然没发现任何黑客执行反弹Shell操作等相关的异常操作行为。

改变思路

显然,黑客不是通过在服务器端执行命令的常规方式进行反弹,一定是有其它资产存在漏洞,被黑客利用了。为找到根本原因,我通过青藤资产清点工具对该主机上运行的资产(如虚拟机、web站点、web服务、web框架等)进行全面了解,发现该服务器上存在Struts 2的Web框架,凑巧的是该版本正好存在S2-045漏洞。很可能,这就是黑客入侵的源头了。

资产清点发现存在漏洞的Struts2版本

要说著名RCE(远程代码执行)漏洞,Struts2框架漏洞最为“经典”,一经爆发就被各安全厂商作为高危紧急漏洞处理。S2-045漏洞是由报错信息包含OGNL表达式,并且被带入了buildErrorMessage这个方法运行,造成远程代码执行。S2-045只有一种触发形式,就是将OGNL表达式注入到HTTP头的Content-Type中。

柳暗花明

为确认真正攻击源,通过查看Tomcat日志发现存在反弹Shell行为的恶意IP,正在通过post请求方式访问客户服务器上一个Struts2页面。至此,基本可以判断攻击者正是通过Struts2的反序列化漏洞进行攻击,从而完成反弹Shell的操作。值得庆幸,因为及时发现和快速响应,黑客的攻击行为未对服务器造成任何伤害。

进行反击

首先通过防火墙立即封堵该IP,同时在WAF上设置规则,拦截该请求,进一步对Struts2漏洞立马打补丁。

写在最后

攻防的较量从未停止,黑客与白帽子间的斗争也越演越烈。在Struts2框架漏洞这个战场上,需要持续深入地研究,才能占有主动权。虽然从过去出现的Struts漏洞看,恶意OGNL表达式的注入点无处不在,但随着Struts2框架版本不停迭代,很多漏洞都被修补。

在这里笔者也提醒各位安全负责人,一定要及时打补丁以及使用最新版的Struts框架,避免被不法分子利用而造成损失。同时,对request请求的参数名、参数值、cookie参数名、action的名称、Content-Type内容、filename内容、请求体内容(反序列化漏洞)进行验证,降低后期被黑客利用可能性。

安全老司机 | Struts2漏洞爆发后,与黑客的一次正面交锋

已认证的官方帐号
 

故事开始

“我们可能被黑客攻击了!!!”接到客户急匆匆的一个电话。

我赶紧打开电脑查看报警邮件,提示存在一个反弹Shell的攻击行为。

这大半夜,客户的服务器居然正在主动尝试连接外部其它服务器。在那个瞬间,我都能想象得出来,服务器另一端那个穿着“黑衣服”的人,面对“冒着新鲜热气儿”的Shell唾手可得的那种狂喜。显然,黑客正在疯狂攻击,情况甚是紧急,需要在黑客造成真正破坏之前阻止他们。

做技术的人都知道,反弹Shell一般是外网渗透的最后一步,也是内网渗透的第一步。反弹Shell对服务器安全乃至内网安全的危害不必多说。

多年的一线拼杀经验告诉我,黑客一般是利用远程命令执行、远程代码执行、Webshell、Redis未授权访问可执行系统命令等漏洞,执行反弹命令,使目标服务器发出主动连接请求,从而绕过防火墙的入站访问控制规则。

初试无果

因为客户正好部署了青藤的大数据安全产品,能够记录展示每台服务器系统交互Shell的命令,包括操作者IP,操作终端,操作用户,操作详情等关键信息。但是出乎意料的是,在反弹Shell这十几分钟时间内,日志上居然没发现任何黑客执行反弹Shell操作等相关的异常操作行为。

改变思路

显然,黑客不是通过在服务器端执行命令的常规方式进行反弹,一定是有其它资产存在漏洞,被黑客利用了。为找到根本原因,我通过青藤资产清点工具对该主机上运行的资产(如虚拟机、web站点、web服务、web框架等)进行全面了解,发现该服务器上存在Struts 2的Web框架,凑巧的是该版本正好存在S2-045漏洞。很可能,这就是黑客入侵的源头了。

资产清点发现存在漏洞的Struts2版本

要说著名RCE(远程代码执行)漏洞,Struts2框架漏洞最为“经典”,一经爆发就被各安全厂商作为高危紧急漏洞处理。S2-045漏洞是由报错信息包含OGNL表达式,并且被带入了buildErrorMessage这个方法运行,造成远程代码执行。S2-045只有一种触发形式,就是将OGNL表达式注入到HTTP头的Content-Type中。

柳暗花明

为确认真正攻击源,通过查看Tomcat日志发现存在反弹Shell行为的恶意IP,正在通过post请求方式访问客户服务器上一个Struts2页面。至此,基本可以判断攻击者正是通过Struts2的反序列化漏洞进行攻击,从而完成反弹Shell的操作。值得庆幸,因为及时发现和快速响应,黑客的攻击行为未对服务器造成任何伤害。

进行反击

首先通过防火墙立即封堵该IP,同时在WAF上设置规则,拦截该请求,进一步对Struts2漏洞立马打补丁。

写在最后

攻防的较量从未停止,黑客与白帽子间的斗争也越演越烈。在Struts2框架漏洞这个战场上,需要持续深入地研究,才能占有主动权。虽然从过去出现的Struts漏洞看,恶意OGNL表达式的注入点无处不在,但随着Struts2框架版本不停迭代,很多漏洞都被修补。

在这里笔者也提醒各位安全负责人,一定要及时打补丁以及使用最新版的Struts框架,避免被不法分子利用而造成损失。同时,对request请求的参数名、参数值、cookie参数名、action的名称、Content-Type内容、filename内容、请求体内容(反序列化漏洞)进行验证,降低后期被黑客利用可能性。

Struts2漏洞导致的反弹shell——青藤云安全使用的是agent进程采集器进行检测的更多相关文章

  1. Zabbix sql注入漏洞脚本执行反弹shell

    exp检测是否存在SQL注入漏洞root@ubuntu:~# python zabbix.py http://ip:9090/+------------------------------------ ...

  2. Struts2漏洞利用工具下载(更新2017-V1.8版增加S2-045/S2-046)

    Struts2漏洞利用工具下载(已更新V1.8版) 2017-03-21:增加S2-046,官方发布S2-046和S2-045漏洞引发原因一样,只是利用漏洞的位置发生了变化,S2-046方式可能绕过部 ...

  3. Struts2漏洞利用实例

    Struts2漏洞利用实例 如果存在struts2漏洞的站,administrator权限,但是无法加管理组,内网,shell访问500. 1.struts2 漏洞原理:struts2是一个框架,他在 ...

  4. 小白日记40:kali渗透测试之Web渗透-SQL手工注入(二)-读取文件、写入文件、反弹shell

    SQL手工注入 1.读取文件[load_file函数] ' union  SELECT null,load_file('/etc/passwd')--+ burpsuite 2.写入文件 ' unio ...

  5. Struts2漏洞解决

    如果你也正在使用Struts2作为web层框架做开发或者做公司的送检产品,然后被告知有各种各样的Struts2漏洞,那本篇博客值得你花时间来喽上一两眼. 前端时间抽空为公司做了新一代的送检产品,为了方 ...

  6. 浅析重定向与反弹Shell命令

    0×01    简介 反弹shell在漏洞证明和利用的过程中都是一个直接有力的手段.由于安全工作或者学习的需要,我们或多或少都会接触到各种反弹shell的命令,于是就有了这个能稍微帮助初学者理解的文档 ...

  7. Linux 反弹shell(二)反弹shell的本质

    Linux 反弹shell(二)反弹shell的本质 from:https://xz.aliyun.com/t/2549 0X00 前言 在上一篇文章 Linux反弹shell(一)文件描述符与重定向 ...

  8. [Shell]利用JS文件反弹Shell

    0x01 模拟环境 攻击: kali ip: 192.168.248.132 测试: windows 7 x64 ip: 192.168.248.136 0x02 工具地址 https://githu ...

  9. [Shell]Redis未授权访问反弹shell

    原作者:Cream 文章出处: 贝塔安全实验室 0x01 Redis未授权访问反弹shell Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value ...

随机推荐

  1. ArcGIS Server 10.2忘记用户名密码的解决方案

    忘记了ArcGIS Server Manager的密码,可以采用以下方法进行重置. 1.找到ArcGIS Server的安装目录 D:\Program Files\ArcGIS\Server\tool ...

  2. 使用命令行操作vmware esxi -- powershell

    之前提到过用linux命令行的方法操作vmware,这节我们来使用powershell的方式来操作.在操作之前需要下载安装一款命令行工具PowerCLI,本节只列出一些常用命令. 个人认为powerc ...

  3. vs2017 vs2019 打开cs文件提示无法识别的GUID格式

    总结一句话 no zuo no die. 是我自己在注册表中给vs增加了自动以管理员身份运行,把值给错了,弄成了 ~ RUNASADMIN WIN7RTM, 改成 ~ RUNASADMIN 后OK.还 ...

  4. web基础---->script标签的特殊使用

    今天要讲的就是怎样使用<script>去请求一个servlet,加载一些js资源以及额外的逻辑处理: 目录: JS的引入的几种方式 在script的标签中引入Servlet 动态引入JS的 ...

  5. python 中的eval与exec

    eval类似exec,是使用python编译器运行表达式和语句两者区别在于:eval是编译表达式并返回值(如: eval("'hello'*2") 结果是 hellohello)e ...

  6. 安卓 App 性能专项测试之流畅度深度解析-上篇

    指标背景 流畅度,顾名思义是用户感知使用App页面时的流畅情况,"App卡不卡",这是用户最直接的感受. 但是要用量化之后的数据衡量流畅度,在Android平台这边并没有直接有效的 ...

  7. Oracle RAC 创建实例出错(非+DATA目录)的简单处理

    今天进行oracle的rac测试 发现开发同事没有写好 oracle rac的设置.  创建完之后就会报错了 因为自己对oracle 的RAC 不太熟悉 不太会用.. 所以用 一个比较简单的办法. a ...

  8. Kubernetes exec API串接分析

    本篇将说明Kubernetes exec API的运作方式,并以简单范例进行开发在前后端上.虽然Kubernetes提供了不同资源的RESTful API来进行CRUD操作,但是部分API并非单纯的回 ...

  9. opencv之重映射

    好久没写呆码了 今天发个重映射 #include "opencv2/video/tracking.hpp" #include "opencv2/imgproc/imgpr ...

  10. Linux nfs服务讲解

    nfs服务介绍 nfs(Network File System) 网络文件系统,能使用户访问服务器的文件系统,就像访问自己的本机的文件系统一样,并且多个 客户端共享访问该文件系统. 目前nfs服务,较 ...