zoukankan      html  css  js  c++  java
  • 【Python】JBOSS-JMX-EJB-InvokerServlet批量检测工具

    一、说明

    在JBoss服务器上部署web应用程序,有很多不同的方式,诸如:JMX Console、Remote Method Invocation(RMI)、JMXInvokerServlet、HttpAdapter等。根据内网测试的需求,写了一段代码,代码逻辑看注释。

    二、代码实现

    读取带有IP的文本内容,如果有端口以冒号(:)分隔,那就默认将该端口当成WEB端口。如果只有IP,那么就把端口设定为默认的80。

    Python代码:

    
    #!/usr/bin/env python
    # coding=utf8
    ######################################
    ##  代码补丁的少年   zzzhhh         ##
    ##  时间:20170925                  ##
    ## 批量查询Jboss JMXInvokerServlet  ##
    ######################################
    import httplib
    import os
    import sys
    import re
    
    
    
    ## 读取IP
    def JBossScan(weblist):
        fle_context = file(weblist, 'r')
        for file_index in fle_context:
            file_index = file_index.strip('
    ')                           # 去掉空行
            file_index = file_index.replace('http://', '')                # 去掉HTTP://
            ip_context = file_index.split(':')                            # 以:分隔
            if len(ip_context)>=2:
                ip = ip_context[-2]                                       # 取列表倒数第二
                pt = ip_context[-1]                                       # 取列表倒数第一
            else:
                ip = ip_context[-1]                                       # 否则取默认IP
                pt = 80                                                   # 默认端口为80
            conn = httplib.HTTPConnection(ip, port=pt, timeout=1)
            try:
                conn.request('HEAD', '/invoker/JMXInvokerServlet')        # 探测这个路径是否存在
            except:
                print '[*]http://%s:%s/invoker/JMXInvokerServlet       ---------------------------Timeout' % (ip, pt)  # 访问不成功就提示超时
                continue
            res = conn.getresponse()
            # HTTP状态码
            if res.status == 200:
                print '[*]http://%s:%s/invoker/JMXInvokerServlet       ---------------------------Found' % (ip, pt)
                os.system(
                    'echo http://%s:%s/invoker/JMXInvokerServlet       ---------------------------Found >> scucsess.txt' % (   # 把访问成功的路径存储到.txt
                    ip, pt))
            else:
                print '[*]http://%s:%s/invoker/JMXInvokerServlet       ---------------------------Not Found' % (ip, pt)      # 没找到路径,但是开启了相关端口
        fle_context.close()
    
    
    
    if __name__ == '__main__':
        try:
            JBossScan(sys.argv[1])                              # 参数形式
            #JBossScan("D:\ProjectCode\PyScript\WebUrl.txt")  # 固定路径
        except:
            print 'usage: python jbosscan.py weblist.txt'
    
    

    WebUrl.txt的内容:

    192.168.1.1
    192.168.17.1
    http://10.1.128.203:1300
    http://10.1.128.208:1300
    http://10.1.128.206:1300
    http://10.1.128.208:1200
    http://10.1.128.206:1200
    http://10.1.128.199:1200
    http://10.1.128.195:1200
    http://10.255.242.20:1199
    http://10.255.242.24:1199
    

    三、代码效果

    四、代码下载

    链接: https://pan.baidu.com/s/1nuHb1rF 密码: g6de

    压缩包内容:

    JBOSS-JMX-EJB-InvokerServlet批量检测工具.py          --------批量扫描用
    
    WebUrl.txt                                           --------IP存放
    
    01-jBoss应用服务器JMXInvokerServlet远程命令执行漏洞   --------利用工具
    
    - jboss_exploit_fat.jar
    
    
  • 相关阅读:
    LeftoverDataException,依赖包,apache license 2.0
    GPL,BSD,Apache,MIT开源许可协议
    一次重构经历
    转载:reactor模式学习
    版本控制学习
    系统开发,出错处理,日志
    最近学习linux命令的一个总结
    sudo,linux 新建账号,并开通ssh登录
    运行R 报错R cannot R_TempDir, 继而发现/dev/mapper/VG00-LV01 磁盘空间已满
    用InputStream读出来转换成String类型
  • 原文地址:https://www.cnblogs.com/17bdw/p/7598925.html
Copyright © 2011-2022 走看看