8009 - Pentesting Apache JServ Protocol (AJP)

加入 HackenProof Discord 服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界
最新公告 随时了解最新的赏金任务发布和重要平台更新
加入我们的 Discord,立即与顶尖黑客合作!
基本信息
来源:https://diablohorn.com/2011/10/19/8009-the-forgotten-tomcat-port/
AJP 是一种线路协议。它是 HTTP 协议的优化版本,允许独立的 Web 服务器(如 Apache)与 Tomcat 进行通信。从历史上看,Apache 在提供静态内容方面比 Tomcat 快得多。其想法是让 Apache 在可能的情况下提供静态内容,但将请求代理到 Tomcat 处理与 Tomcat 相关的内容。
还有有趣的信息:
ajp13 协议是基于数据包的。出于性能考虑,二进制格式显然优于更易读的纯文本。Web 服务器通过 TCP 连接与 Servlet 容器通信。为了减少昂贵的套接字创建过程,Web 服务器将尝试维护持久的 TCP 连接到 Servlet 容器,并重用连接进行多个请求/响应周期
默认端口: 8009
CVE-2020-1938 'Ghostcat'
如果AJP端口暴露,Tomcat可能会受到Ghostcat漏洞的影响。这里有一个exploit可用于利用此问题。
Ghostcat是一个LFI漏洞,但受到一定限制:只能提取特定路径下的文件。尽管如此,这可能包括像WEB-INF/web.xml这样的文件,根据服务器设置,这些文件可能泄露像Tomcat接口凭据这样的重要信息。
修补版本为9.0.31或更高版本,8.5.51和7.0.100已解决了此问题。
枚举
自动化
AJP 代理
Nginx 反向代理 & AJP
当我们遇到一个开放的 AJP 代理端口(8009 TCP)时,我们可以使用 Nginx 与 ajp_module 来访问“隐藏”的 Tomcat 管理器。这可以通过编译 Nginx 源代码并添加所需的模块来实现,具体步骤如下:
下载 Nginx 源代码
下载所需的模块
使用
ajp_module编译 Nginx 源代码。创建一个指向 AJP 端口的配置文件
在/etc/nginx/conf/nginx.conf文件中的http块内,将整个server块注释掉,并添加以下行:
启动Nginx,并通过向本地主机发出cURL请求来检查一切是否正常工作。
Nginx Docker化版本
将nginx.conf中的TARGET-IP替换为AJP IP,然后构建并运行。
Apache AJP 代理
发现只有端口8009是开放的而没有其他可访问的web端口是罕见的。然而,仍然可以利用Metasploit来利用它。通过利用Apache作为代理,请求可以被重定向到端口8009上的Tomcat。
这种设置具有绕过入侵检测和防范系统(IDS/IPS)的潜力,因为AJP协议的二进制特性,尽管这种能力尚未经过验证。通过将常规的Metasploit Tomcat漏洞利用指向127.0.0.1:80,您可以有效地控制目标系统。
参考资料

加入HackenProof Discord服务器,与经验丰富的黑客和赏金猎人交流!
黑客见解 参与深入探讨黑客的刺激和挑战的内容
实时黑客新闻 通过实时新闻和见解及时了解快节奏的黑客世界
最新公告 随时了解最新的赏金任务发布和重要平台更新
加入我们的 Discord 并开始与顶尖黑客合作!
最后更新于