Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5
1128 字
6 分钟
vulnhub靶机-Empire:Breakout(Web应用历史漏洞+rpc用户枚举+Capabilities能力权限识别利用)

vulnhub靶机-Empire(Web应用历史漏洞+rpc用户枚举+Capabilities能力权限识别利用)#

声明#

  1. 本文为个人跟随b站up主红队笔记学习vulnhub的breakout靶机的复现通关记录,旨在分享靶机和记录学习心得体会,讲解若有谬误之处欢迎指正。
  2. 该靶机下载地址为’https://www.vulnhub.com/entry/empire-breakout,751/’
  3. 本博客封面的猫猫在睡觉,没有死掉。

渗透流程#

  1. 在vmware部署靶机并开机后,打开kali对靶机进行信息收集,找到80、139、445、10000、20000端口开放。 IP&details&ports
  2. 详细扫描,139、445是samba服务,10000、20000是miniserv,是Webmin的核心组件之一。 scripts
  3. 在漏扫中,发现一个cve2006-3392漏洞。 vuln
  4. 搜索漏洞并下载利用脚本。 ss
  5. 按照example给出的示例,执行攻击,第一次返回显示需要通过https,修改后执行依旧不行。
  6. 在80端口源代码最下面找到了段brainfuck语言。
  7. 利用在线网站或工具进行解密,得到字符.2uqPEfj3D<P'a-3,可能是一个凭据。
  8. 打开10000端口的webmin,猜测用户名失败,考虑到有开启samba服务,通过smbclient -L 目标IP -N列出目标机器共享资源,有IPC$,然后利用139/445端口的Samba服务进行RID枚举,有很多方法,文中先演示自动化的enum4linux(执行enum4linux <host>爆破出cyber用户),其余方法在文末会有补充。
  9. 分别尝试10000端口和20000端口的webmin和usermin,usermin通过刚才用户和凭据成功登录,可以看到左下角有个命令提示符的标识。
  10. 那么在攻击机器打开监听,通过bash反弹一个shell给我们的攻击机器。

提权过程#

  1. 进行初步探测,没有sudo命令,当前目录有个tar权限很高。
  2. 使用getcap -r / 2>/dev/null查看在Linux系统中递归搜索所有设置了文件能力(capabilities)的文件,得到结果有/home/cyber/tar cap_dac_read_search=ep
  3. 在通过find / -type f \( -name "*.bak" -o -name "*pass*" \) -print 2>/dev/null寻找敏感文件时,发现一个密码备份文件。
  4. 这时候我们可以考虑用tar的cap_dac_read_search=ep能力:“可以无视文件访问控制列表(ACL)中的标准读权限限制,去读取系统上的任何文件”,去读取该备份文件(以下命令即利用该能力打包一个无权读的文件)
  5. 利用发现的密码,通过su,成功切换到root。 rooted
  6. 拿到root后,可以通过“清除命令历史history -c清空当前shell的历史记录。以及unset HISTSIZE让后续操作不再被记录。并删除掉创建的文件,以及通过sed -i '/cyber.*su.*root/d' /var/log/auth.log清除篡改系统认证日志,来尽可能清除痕迹。

其它补充与收获总结#

  1. Linux Capabilities 是将传统root权限拆分为独立的细粒度权限单元的机制,用于按需授权和提升系统安全性。如SUID或者sudo将root的完全权限直接给了程序,风险自然很高。而Capability机制则是把权限细分给程序,比如只给它读文件的权限,如本靶机只给程序cap_dac_read_search=ep能力(不过不合理的分配还是导致了风险)。更详细可参考相关文章描述:‘https://www.cnblogs.com/sparkdev/p/11417781.html’
  2. 找到一篇应该是红队笔记的writeup,关于rpc用户枚举十分详细的介绍’https://xz.aliyun.com/news/91407’,包括其它工具的尝试,其中同样可以成功的比如rpcclient手动交叉查询,利用Samba混合环境的身份映射机制,通过POSIX的UID与SID的交叉查询来撞出用户名,简单步骤如下:
  • 通过rpcclient连接收集环境信息:使用enumdomains命令枚举域,在此环境中得到了BREAKOUT和内置域Builtin。并用lookupdomain查询这两个域,获得它们的SID前缀,确认了Samba的身份映射机制。
  • 查已知UID的映射:用lookupnames root获取内置root用户映射出的SID格式。
  • 尝试撞真实用户:按POSIX规范(普通用户UID从1000开始),构造的sid并用lookupsids S-1-5-21-xxxxx-1000查询UID 1000对应的名称时成功将RID 1000返回了Linux的真实用户名cyber。
  1. UID、RID、SID区分:
  • windows的SID格式如:S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXX-RID(RID为区分用户的值,其它在同个域内固定不变)。
  • Linux的UID(一个非负整数,其分配遵循POSIX惯例):root:0,1-999为系统用户/预留用户,1000+为普通用户/交互式用户。
vulnhub靶机-Empire:Breakout(Web应用历史漏洞+rpc用户枚举+Capabilities能力权限识别利用)
https://www.dxowo8.top/posts/post-29/29/
作者
Ne+N3k_O
发布于
2026-05-10
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时