AJP13漏洞利用

前言

平时学习过程中使用nmap扫描目标服务器或者C段的时候经常会发现8009端口的AJP13服务,一直没有很在意这个服务是干嘛的。直到遇见一个服务器没有开放其他多余的端口情况下迫不得已要弄清楚,开放的这个服务是干什么的,MSF下的脚本又使用不方便功能单一,所以就有了这个文章。


AJP13服务简介

AJP13是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。AJP协议:WEB服务器通过TCP连接和SERVLET容器连接。为了减少进程生成socket的花费,WEB服务器和SERVLET容器之间尝试保持持久性的TCP连接,对多个请求/回复循环重用一个连接。一旦连接分配给一个特定的请求,在请求处理循环结束之前不会在分配。换句话说,在连接上,请求不是多元的。这个是连接两端的编码变得容易,虽然这导致在一时刻会有很多连接。(来自百度百科)


本地环境搭建

首先我们要在本地搭建一个tomcatApache的一个环境来运行mod_jk插件,这里我选择的是WATMServer当然大家在做实验的时候也可以选择自己顺手的环境,下面我们就开始演示环境的配置和连接一个AJP13服务端口。


首先,在Apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。


LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so    

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so    

LoadModule proxy_http_module modules/mod_proxy_http.so   


向下拉动文档找到节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。


继续下拉文档找到Include conf/extra/httpd-vhosts.conf,去掉前面的注释符。

用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上


    

     ServerAdmin [email protected]   

      ServerName 127.0.0.1   

      ServerAlias localhost    

     ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On    

     ProxyPassReverse /balancer://cluster/    

     ErrorLog "logs/lbtest-error.log"   

    CustomLog "logs/lbtest-access.log" common   

 


这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎 ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取,笔者取为lbtesthttpd- vhosts.conf配置完毕,回到httpd.conf,在文档最下面加上

 

 ProxyRequests Off     

balancer://cluster>     

        BalancerMember ajp://【目标IP地址】:8009 loadfactor=1 route=jvm1   

        BalancerMember ajp://【目标IP地址】:9009 loadfactor=1 route=jvm2   


一番设置会后,重启Apachetomcat服务后链接本地成功的截图如下,根据不同的服务器配置不一样,开放的WEB服务可能也不一样,所以在常见WEB服务都关闭的情况下,还是值得花时间尝试连接ajp一下的。


AJP13漏洞利用_第1张图片


利用实例

首先我们使用NMAP找到了一台开放了ajp13服务的一台服务器:

AJP13漏洞利用_第2张图片


AJP13漏洞利用_第3张图片


我们在本地环境里面配置好配置文件进行连接:

AJP13漏洞利用_第4张图片


然后我们顺利的通过本地jk协议转换插件连接上了远程的ajp13服务:


AJP13漏洞利用_第5张图片


我们通过弱口令登录了后台并且通过部署war包获得了一个webshell(别问我怎么知道账号密码的):

AJP13漏洞利用_第6张图片


AJP13漏洞利用_第7张图片


看一下本地和远程的IP端口链接:


AJP13漏洞利用_第8张图片


最后大家看明白了没有呢?喜欢安全的朋友或没有看明白的可以留言哦。


AJP13漏洞利用_第9张图片


AJP13漏洞利用_第10张图片



你可能感兴趣的:(性能测试,移动测试,安全测试)