jboss,tomcat,weblogic,未授权访问扫描工具。
#前言
之前一直在挖src,然后复现了一下最近的几个中间件漏洞,感觉其实厂商很多对中间件使用还是比较多了。如果在漏洞刚刚暴露出来就可以写好批量利用的脚本的化,确实是可以割一波稻草,于是就想写一个批量的脚本,以后出了新洞的化就可以直接批量利用了。工具地址: https://github.com/98587329/Web-Scan
目前支持的漏洞如下:
使用前在 lib/config
中添加自己的ceye.io地址,默认命令执行方式为 ping 靶机url.ceye.io地址
,方便批量利用时知道是那台服务器成功执行了shell。
使用方式,支持字典扫描,支持ip段扫描(适用于内网扫描)或ip解析:
1:字典扫描,字典文件在 data/url_dict
目录下。(本来是想写一个先子域名爆破,在进行扫描的以后再加上吧
python ./web-framework.py -u test.com
2:IP扫描
python ./web-framework.py -p 192.168.57.135-192.168.57.136
python ./web-framework.py -p 172.16.10.0/24
可以命令执行的漏洞可以在ceye.io看到回显,无法直接收到回显的漏洞,脚本显示存在需要手动进行利用一些利用的方法写在script的注释中了。
version: python3
PyMySQL==0.9.2
requests==2.19.1
urllib3==1.23
pymongo==3.7.2
IPy==0.83
asana_kazoo==2.0.8dev
如果需要自己添加模块的化,再script模块下创建一个文件夹,然后在里面放xxxx.py,xxx.py形如:
import lib.config.config as config from lib.core.monitor import port_monitor,page_monitor def poc(url): #传入的参赛为访问的url poc_type = 'weblogic:2017-10271' #该poc的类型 ports = ['80','7001'] #需要访问的端口 port_info = {} #用于保存返回的信息 port_info,ports = port_monitor(url, poc_type, ports) #对端口进行过滤,如果端口没开就不进行访问 for port in ports: try: 执行poc 如果poc执行成功 port_info[port] = [1,poc_type,成功的信息] #1代表成功,将单一端口的结果保存在port_info中 except: #基本上就是执行失败了 port_info[port] = [0,poc_type,'Conect failed'] #0代表失败 return port_info
在 /lib/core/monitor.py
定义了几个过滤器,主要是检测发送poc时端口是否开放,以及需要访问的url是否存在。具体的可以看看工具的poc的源代码。