/bayonet

bayonet是一款src资产管理系统,从子域名、端口服务、漏洞、爬虫等一体化的资产管理系统

Primary LanguagePython

bayonet是一款src资产管理系统,从子域名、端口服务、漏洞、爬虫等一体化的资产管理系统

1、原理

  • 子域名扫描:OneForAll-该作者集合了大量插件来实现在线查询子域名的收集,详情请查看项目地址
  • 端口服务扫描:采用shodan查询
  • 主动爬虫:crawlergo-也是使用chrome headless模式进行URL收集入口的动态爬虫,详情请查看项目地址
  • 漏洞扫描:采用w13scan进行被动漏洞扫描

2、项目设计

各工模块独立运行,数据源都与数据库交互,这样好处有两个:一是若其中一个工具崩溃了不影响其他工具运行,二是可以更方面添加其他工具,反正是与数据库交互,就不考虑包的兼容、项目集合导致的各种问题

3、安装及使用方法

1、pip install -r requirements.txt # 安装所需模块(推荐python3.8)

2、安装postgreSql数据库(12版本),创建一个数据库

3、修改项目下的WebConfig.py配置文件,配置SHODAN_KEY和数据库连接地址SQLALCHEMY_DATABASE_URI两个选项,若没有shodan key请去注册(免费)

SHODAN_KEY = 'xxxxx'  # shodan key
SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:123456@127.0.0.1/bayonet'  # 数据库连接

4、修改项目下的app.py的mian方法,如下所示,进行创建数据库和默认用户

python app.py

if __name__ == '__main__':
    CreateDatabase()  # 创建数据
    CreateUser()  # 创建默认用户
    #DeletDb()
    #APP.run()

5、运行后若没有出错,说明数据库连接配置正确,已经创建了数据库和用户,再次修改app.py的main方法,如下所示,注释其他,app.run启动;

if __name__ == '__main__':
    #CreateDatabase()  # 创建数据
    #CreateUser()  # 创建默认用户
    #DeletDb()
    APP.run()

python app.py # 运行此命令,打开输出提示中的连接,默认为http://127.0.0.1:5000

进行登陆,默认用户名为: root/qazxsw@123

进入web端后,添加一个任务,如图所示

index

6、添加完任务后进入项目下的tools目录,可看到有

  • oneforall:子域名查找工具
  • portscan:端口及url查找
  • scan/Chromium:动态爬虫
  • scan/W13scan:漏洞扫描

7、首先进入oneforall目录下,执行python Run.py命令进行子域名查找,然后挂起该窗口

index

8、在进入portscan目录,执行python Run.py命令进行端口及URL扫描,然后挂起该窗口

index

9、在进入scan/Chromium目录,如果你是mac平台,则下载Chromium.app放到该目录下即可。 如果是其他平台,请先下载对应平台的crawlergo工具,然后请安装好Chromium浏览器,并编辑Run.py下的该命令替换为Chromium可执行路径

crawlergo工具详情请查看项目地址

def action(target):
    '''子线程执行'''
    # 替换此命令:Chromium.app/Contents/MacOS/Chromium为你的可执行文件路径
    cmd = ["./crawlergo", "-c", "Chromium.app/Contents/MacOS/Chromium", "-o", "json", '-m', '500', target]

然后运行python Run.py即可开始爬虫,并挂起该窗口

index

10、进入scan/w13scan目录,执行python cli.py命令,将爬虫获取到的数据进行漏洞扫描

index

以上四个工具都在同时挂起运行,如果哪个工具出错了可重新执行。这里没有写脚本进行一次执行四个工具,为了方便调试看工具的运行,所以需要自己手动执行这四个工具

此时进入web界面,查看各个模块,应该都会有相应的数据展示了

index

index

index

index