Giter VIP home page Giter VIP logo

banli's Introduction

Banli-高危资产识别和高危漏洞扫描

Banli

Banli是一款极其简单好用的高危资产识别和高危漏洞扫描利用工具。本项目也是自己深入学习理解Go语言后陆续发布的项目之一。本项目仅限用于安全研究人员在授权的情况下使用,请遵守网络安全法,若因本工具产生任何问题,后果请自负,与作者无关! 程序代码中绝不会添加任何形式的后门,运行程序一般情况不会对目标系统产生危害,请各位师傅放心使用!本项目会持续更新,直到海枯石烂。 作者:0e0w

本项目创建于2021年10月16日,最近一次更新时间为2023年4月10日。

01-Banli基本介绍

我们养了一只比熊犬,她的名字叫板栗。她时而很活泼,时而又很安静,像极了这个Banli。

  • 因为活泼,所以她可以高效快速的进行高危资产识别和高危漏洞扫描。
  • 因为安静,所以她的动静很小尽可能的不被流量监测等安全设备发现。

Banli可以对内外网的系统进行高危资产识别和高危漏洞扫描。方便渗透测试和红队评估人员进行快速识别高危资产,快速利用高危漏洞,从而最终拿到系统权限!

02-Banli设计思路

Banli要解决的问题是如何快速识别企业的高危资产,如何快速扫描企业的高危漏洞。包括Web资产、中间件资产、框架资产、安全设备等高危资产的识别,包括Web漏洞、命令执行漏洞、反序列化等高危漏洞的扫描。项目设计时考虑到了尽可能的避免触发安全告警。设计思路包括多利用404页面,少用特定的后台等敏感页面等。具体的设计实现方式后续会公开!

程序文件说明:

  • Banli.ini 全局参数设置
  • ips.txt 单个存活的ip
  • ipc.txt 内网存活的IPC段
  • ipb.txt 内网存活的IPB段
  • urls.txt 单个Web资产
  • user.txt 爆破时的用户名字典
  • pass.txt爆破时的密码字典
  • Banlilogs.txt 程序运行日志

03-Banli使用说明

程序设计时遵循简单原则。本项目没有用户可控参数,所有参数用户都无法自定义。必要修改的参数可以通过修改当前目录下配置文件Banli.ini进行设置。扫描结果可自动打包发送到邮箱!

1、资产识别模块都是对当前路径的urls.txt文件进行扫描,支持多种URL格式,一行一个,结尾不能有/号,不能存在无效的URL格式!否则会影响程序的识别效果,或直接导致程序无法运行!

2、漏洞扫描模块都是对资产识别之后自动生成的文件进行扫描。 例如:通过命令Banli.exe is seeyon扫描Seeyon资产,如果存在Seeyon资产,则自动创建isSeeyon.txt文件。之后可以使用Banli.exe hack seeyon对isSeeyon.txt文件内的资产进行Seeyon漏洞扫描。减少无用功,拒绝无效努力!

3、信息收集模块支持网站Title扫描。 后期支持端口扫描和资产发现功能!

4、密码爆破模块目前支持大多数的可爆破服务。

5、被动扫描加爬虫扫描是一款扫描器的最后追求!

一、资产识别

  • 说明:设计初衷是对单个高危资产进行扫描,一次性扫描多个资产效率较低。
  • 支持识别的资产应用:activemq、ax2、baota、cas、confluence、coremail、dcuz、druid、dubbo、elasticsearch、exchange、eyoumail、finereport、flink、gerapy、gitlab、gogs、hadoop、harbor、hongfanoa、jboss、jeecms、jellyfin、jenkins、jinheroa、jira、jumpserver、jupyter、kibana、kingdee、kylin、landrayoa、leagsoft、liferay、metabase、mobileiron、nacos、ofbiz、phpmyadmin、rabbitmq、saltstack、seeyon、shiro、skywalking、solr、sonarqube、spark、springboot、struts、swagger、thinkphp、tomcat、tongdaoa、vesystem、vmware、wanhuoa、weaveroa、weblogic、websphere、yapi、yonyou、zabbix、zentao。等
  • 资产支持列表:Banli.exe is
  • 所有资产扫描:Banli.exe is all
  • OA 资产扫描:Banli.exe is oa
  • 内网资产扫描:Banli.exe is nei
  • 外网资产扫描:Banli.exe is wai
  • 单个高危资产扫描:Banli.exe is log4j
    • 使用Banli.exe is log4j扫描那些组件资产用到了log4j。运行结束后存在的资产会保存到对应的文件中。

二、漏洞扫描

漏洞扫描模块将是Banli的重点,目前支持的资产较少。后期将重点更新漏洞扫描模块!

  • 支持扫描的框架漏洞:seeyon、druid、weblogic、log4j、grafana、apisix、spring。

  • 所有资产全部漏洞扫描:Banli.exe hack god 该功能待公开

  • 单个漏洞全部资产扫描:Banli.exe hack seeyon

  • 支持漏洞 :Banli.exe hack log4j

    • 将Banli.ini文件中的dnslog值替换成自己的地址。扫描完成后在自己的dnslog上面看记录。

    • Banli.exe hack log4j

      扫描特定资产的Log4j2漏洞。目前支持:Druid、Flink、JSPWiki、OFBiz、SkyWalking、Solr、Struts2、CAS、MonbileIro User Portal、Seeyon、Unifi Network、VMware HCX、VMware Horizon、VMware NSX、VMware vCenter、VMware vRealize、VMware Workspace One、Zipkin

    • Banli.exe hack log4j fuzz

      测试urls.txt文件中HTTP头是否存在漏洞。此模块将会发送大量的请求包。

    • Banli.exe hack log4j scan d:/

      扫描本地目录的代码中是否存在危险的log4j框架。结果保存到output文件夹内。

  • 支持漏洞 :Banli.exe hack thinkphp

    • 目前支持26个Thinkphp的不同版本的漏洞。
  • 支持漏洞 :Banli.exe hack weblogic

三、信息收集

  • 获取资产title :Banli.exe get title

  • 程序自动对urls.txt内的资产进行title扫描。

  • 获取资产js文件 :Banli.exe get js

  • 程序自动对urls.txt内的资产进行js文件的扫描。

  • 获取存活网段 :Banli.exe get ipc 默认tcp扫描

  • 程序自动获取内网中存活的网段。一行一个存活的C段,保存到ipc.txt

    • Banli.exe get ipc tcp
    • Banli.exe get ipc icmp
    • Banli.exe get ipc ping
    • Banli.exe get ipc udp
    • Banli.exe get ipc arp
  • 获取存活IP :Banli.exe get ips

  • 获取内网中存活的单个IP地址。将IP网段保存到ipc.txt中。运行,在ips.txt中得到存活的IP地址。

  • 获取Web资产 :Banli.exe get urls

  • 程序自动对ips.txt内的ip资产进行Web资产探测。支持IP段。

  • Web路径扫描 :Banli.exe get path 待实现。后续通过路婧完整实现。

    • Banli.exe get path

四、密码爆破

  • Banli.exe is crack
    • 扫描IP可以进行爆破的高危端口。请将ip资产保存到ips.txt,一行一个。
  • Banli.exe crack
    • 对isCrack.txt内的资产进行默认端口密码爆破。例:127.0.0.2:22。目前支持:FTP、SSH、MsSQL、MySQL、PostgreSQL、MongoDB。用户名和密码字典为crackuser.txt和crackpass.txt

五、被动扫描

  • 被动扫描的设计思路是拦截请求,修改请求,重发数据。支持HTTPS扫描,程序第一次运行后自动生成证书,需要在浏览器中设置代理并导入证书。默认代理IP端口为127.0.0.1:8715
  • Banli.exe pass log4j
    • 勉强能用,速度奇慢。 此功能暂时关闭!

六、爬虫扫描

  • 目前不支持。

04-Banli更新记录

  • 2023年4月10日:1.程序本级目录必须存在0e0w.js文件,否则无法运行。2.新增Banli.exe get ips 快速获取IP段中存活的IP地址。3.优化部分垃圾代码。
  • 2022年8月15日:1.HTTP请求全部换成了fasthttp。目前来看,比原生http效率确实提升不少。2.新增get js模块。可以识别urls.txt资产中的js文件。参考了URLFinder,感谢pingc0y。3.更新log4j漏洞扫描模块,支持1000多个HTTP头的fuzz,实际测试效果还不错。4.新增socks5和http代理模式。在Banli.ini中配置。
  • 2022年7月15日:1.新增邮件发送功能,程序每次执行后都将output压缩并发送到邮件,邮箱信息在Banli.ini里面配置。2.更新内网存活资产网段探测。Banli.exe get ipc。3.新增网站备份文件扫描。Banli.exe get bak。4.新增运行程序时会判断是否存在Bnali.ini,若不存在则自动创建。5.更新了几个OA的漏洞扫描。6.将结果输出保存到output文件夹里。新建input文件夹,里面包含程序的默认执行文件。7.程序执行前自动对urls.txt和ips.txt资产进行去重操作。8.对程序进行了大量的优化更新。
  • 2022年6月15日:1.新增Banli.ini配置文件,可自定义部分参数。感谢@FR33D0M提供的折中思路。2.添加Log4j漏洞的被动扫描。3.新增Banli.exe get urls。可扫描ips.txt内的Web资产。4.新增Confluence CVE-2022-26134及其他俩个CVE漏洞扫描。5.新增MS17010漏洞概念扫描。
  • 2022年5月15日:1.支持vmware 3个漏洞扫描。2.支持solr 4个漏洞扫描。3.支持spring 4个漏洞扫描。4.支持Thinkphp 18个漏洞扫描。5.支持Shiro-550 key识别漏洞扫描,Shiro-550 exp扫描(暂不公开)。6.更新22个组件的log4j漏洞扫描。7.更新优化web识别。8.添加其他的漏洞扫描。9.更新如果执行hack命令时没有对应的资产则自动执行is模块。
  • 2022年4月15日:1.增加高危爆破端口扫描、增加密码爆破功能。2.新增多个资产识别。3.新增18个Log4j2相关组件的漏洞扫描(Banli.exe hack log4j2)。4.程序大量优化,优化识别规则多线程等问题。
  • 2022年4月8日:今天本程序被一些微信群推荐,感谢。优化程序,更新代码逻辑。
  • 2022年2月15日:1.修复默认线程数太高导致内存指针报错的问题,添加用户可自定义线程数,感谢@T-T。 2.支持单个资产的识别,感谢@ᗡD。v0.91版本暂时不对外公开!
  • 2022年1月15日:添加随机UserAgent。添加日志记录。添加APISIX漏洞扫描模块。
  • 2021年12月15日:新增37个资产识别。支持log4j、grafane、weblogic等部分漏洞扫描识别。完善优化程序,去除https证书过期导致无法识别的问题等。发布v0.8版本。
  • 2021年11月15日:支持Seeyon漏洞扫描。添加新的资产识别。优化程序,发布v0.7版本。
  • 2021年10月29日:添加支持新的资产识别,优化程序。发布v0.6版本。
  • 2021年10月20日:添加单个资产的扫描方式。例:Banli.exe is thinkphp
  • 2021年10月19日:支持Title扫描。支持内网资产和外网资产分开扫描。
  • 2021年10月18日:添加新的资产识别,Chestnut更名为Banli。
  • 2021年10月17日:优化程序,支持扫描单个资产列表,加入漏洞扫描功能。
  • 2021年10月16日:项目框架基本完成。

05-Banli未来计划

  • 处理HTTPS请求时存在问题!例如:minio
  • 将工具字典文件等内容融合到程序中,需要的时候解压。
  • 程序日志记录功能不够完善,后续更新!
  • 爆破时若字典文件不存在,则自动创建字典文件。
  • 支持所有漏洞一键扫描。
  • crack模块爆破互联网时指针错误,该bug待更新。
  • 对输出结果进行优化,支持输出到excel文件。
  • 添加代理池自动收集实现匿名扫描。
  • 更新WEB框架!
  • 添加支持代理扫描。支持HTTP代理和socks5代理。
  • 优化不同操作系统下的漏洞验证。
  • 对扫描的结果进行压缩加密保存。
  • 添加敏感路径爆破收集功能。添加资产发现模块。
  • urls.txt去重。内网存活资产发现。
  • 资产识别或漏洞扫描之后将结果发送到指定邮箱。
  • ips.txt支持C段B段模式。
  • 添加高危漏洞被动扫描功能!!!
  • 将结果输出到output文件夹内。
  • ms17010支持IP段扫描。
  • 程序在运行前自动创建Banli.ini文件。

06-感谢参考项目

本项目开发过程中参加了这些项目的代码思路或漏洞详情等!感谢这些作者,感谢开源社区!

Stargazers

Stargazers @Goqi/Banli

Forkers

Forkers @Goqi/Banli

Stargazers over time

banli's People

Contributors

0e0w avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

banli's Issues

Spring info漏洞 只要是状态码200就算存在?

Spring info漏洞 只要是状态码200就算存在?
状态码200,reponse是404,这种也会提示存在地址存在吗?
Whitelabel Error Page

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Fri Aug 18 12:07:54 CST 2023
There was an unexpected error (type=Not Found, status=404).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.