Penetration-Matrix_1 打靶记录

image-20230625152327098

确认靶机地址为192.168.91.134

image-20230625152629574

看看这两个主页先

在31337端口源码中发现一串base64加密后的代码

<div class="service">
                                    <!--p class="service__text">ZWNobyAiVGhlbiB5b3UnbGwgc2VlLCB0aGF0IGl0IGlzIG5vdCB0aGUgc3Bvb24gdGhhdCBiZW5kcywgaXQgaXMgb25seSB5b3Vyc2VsZi4gIiA+IEN5cGhlci5tYXRyaXg=</p-->
                                </div><!-- End / service -->

解码一下看看:

echo ZWNobyAiVGhlbiB5b3UnbGwgc2VlLCB0aGF0IGl0IGlzIG5vdCB0aGUgc3Bvb24gdGhhdCBiZW5kcywgaXQgaXMgb25seSB5b3Vyc2VsZi4gIiA+IEN5cGhlci5tYXRyaXg= | base64 -d
echo "Then you'll see, that it is not the spoon that bends, it is only yourself. " > Cypher.matrix      

Cypher.matrix ? 他把这句话输入了这个文件,看看能不能打开这个文件

打开是这样的:

image-20230625154131404

这应该是代码混淆后的内容,解码一下:

image-20230625154819519

这人好离谱,无语子。。

扫描一下目录看看有没有什么信息:

image-20230625153422509

东西很少,上去看了一下没啥能用的,只发现了一个.gitkeep文件:

image-20230625153516226

扫扫另一个:

image-20230625153625021

没啥区别

看来只能爆破一下这个密码先了:

先生成一个字典:

crunch 8 8 -f /usr/share/crunch/charset.lst lalpha-numeric -t k1ll0r@@ > pass.dic

爆破一下:

hydra -l guest -P pass.dic ssh://192.168.91.134 -f -vV -o hydra.ssh

image-20230625161441522

得到密码:k1ll0r7n

登录到主机后发现在rbash模式

rbash

`rbash`(restricted bash)是一种限制性的 Unix shell,它是 Bash shell 的一种变体。`rbash` 提供了一种受限的环境,用于限制用户在系统上执行的操作和访问的资源。

当用户被配置为使用 `rbash` 作为其默认 shell 时,它会强制执行一些安全限制,包括以下内容:

1. 限制命令搜索路径:`rbash` 会忽略用户的 `PATH` 环境变量,只使用内部定义的路径来搜索可执行命令。这样可以防止用户执行系统上的某些命令。

2. 禁用命令别名:`rbash` 不允许用户定义自己的命令别名。

3. 禁用 Shell 函数:`rbash` 禁止用户定义和执行自己的 Shell 函数。

4. 限制修改 Shell 变量:`rbash` 限制用户对特定 Shell 变量进行修改,例如 `SHELLOPTS`、`BASH_ENV`、`ENV` 等。这样可以防止用户通过修改这些变量来绕过限制。

5. 禁用 `cd` 到斜杠:`rbash` 禁止用户使用 `cd` 命令切换到根目录 (`/`)。

通过应用这些限制,`rbash` 提供了一种更加安全和受控的 Shell 环境,适用于那些需要限制用户访问权限和操作能力的场景,例如共享计算机、受限账户等。

要将用户配置为使用 `rbash`,可以将其登录 shell 更改为 `/bin/rbash`,或者通过修改用户的 `/etc/passwd` 文件中的 shell 配置来实现。

(146条消息) 【渗透测试】— rbash逃逸方法简述_rbash 命令_通地塔的博客-CSDN博客

这里vi命令可以使用,在末行模式下输入:!/bin/bash进入bash

image-20230625160702938

但是还有一些命令无法使用


这里查一下gpt:

如果在 Bash shell 中执行 id 命令时出现 “bash: id: command not found” 错误,这可能是由于系统的环境变量配置问题导致 Bash 无法找到 id 命令。

id 命令通常位于 /usr/bin 目录下,这个目录通常包含在系统的 PATH 环境变量中。PATH 环境变量定义了用于查找可执行文件的路径列表。

以下是一些可能导致 id 命令无法被找到的原因和解决方法:

  1. 检查 PATH 环境变量:运行 echo $PATH 命令来查看当前的 PATH 环境变量设置。确保 /usr/bin 或包含 id 命令的路径被正确地包含在 PATH 中。如果缺少 /usr/bin,你可以使用 export 命令来添加它:

    export PATH=$PATH:/usr/bin
    
  2. 检查命令是否存在:确认 /usr/bin 目录中是否存在 id 命令。你可以运行 ls /usr/bin/id 来验证它是否存在。如果不存在,可能是由于系统配置或软件包问题导致命令缺失。

  3. 检查文件权限:确保 /usr/bin/id 文件的权限设置正确,使其可执行。你可以运行 ls -l /usr/bin/id 命令来查看文件的权限设置。如果权限不正确,可以使用 chmod 命令进行更改:

    sudo chmod +x /usr/bin/id
    
  4. 系统路径配置问题:如果你的系统存在其他路径配置问题,可能需要对系统的环境进行进一步检查和修复。这可能涉及到检查 /etc/profile~/.bash_profile~/.bashrc 等文件中的配置,以确保正确设置了 PATH 环境变量。

如果以上方法仍然无法解决问题,可能需要进一步检查系统配置或与系统管理员联系以获取支持。


ok,设置一下环境变量:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

image-20230625161454791

现在可以直接用密码进入root用户,但是我们看到/bin/cp是有sudo权限的,学习一下怎么提权:

[(146条消息) Linux提权之SUID提权_安全小菜鸡的博客-CSDN博客](https://blog.csdn.net/weixin_51692662/article/details/126464004#::text=根据上面的话理解,那么我们理解cp在有suid权限使用时具有root权限,那我们可以用此命令 提权,,大致步骤查看cp有没有suid权限——>将 %2Fetc%2Fpasswd文件cp到本目录——>使用命令生成新的root用户和密码——>vim添加此用户并wq! 强制保存——>将本目录cp到%2Fetc%2Fpasswd。)

后来发现没有权限,g