bayonet是一款src资产管理系统,从子域名、端口服务、漏洞、爬虫等一体化的资产管理系统
- 子域名扫描:OneForAll-该作者集合了大量插件来实现在线查询子域名的收集,详情请查看项目地址
- 端口服务扫描:采用shodan查询
- 主动爬虫:crawlergo-也是使用chrome headless模式进行URL收集入口的动态爬虫,详情请查看项目地址
- 漏洞扫描:采用w13scan进行被动漏洞扫描
各工模块独立运行,数据源都与数据库交互,这样好处有两个:一是若其中一个工具崩溃了不影响其他工具运行,二是可以更方面添加其他工具,反正是与数据库交互,就不考虑包的兼容、项目集合导致的各种问题
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端后,添加一个任务,如图所示
6、添加完任务后进入项目下的tools目录,可看到有
- oneforall:子域名查找工具
- portscan:端口及url查找
- scan/Chromium:动态爬虫
- scan/W13scan:漏洞扫描
7、首先进入oneforall目录下,执行python Run.py
命令进行子域名查找,然后挂起该窗口
8、在进入portscan目录,执行python Run.py
命令进行端口及URL扫描,然后挂起该窗口
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
即可开始爬虫,并挂起该窗口
10、进入scan/w13scan目录,执行python cli.py
命令,将爬虫获取到的数据进行漏洞扫描
以上四个工具都在同时挂起运行,如果哪个工具出错了可重新执行。这里没有写脚本进行一次执行四个工具,为了方便调试看工具的运行,所以需要自己手动执行这四个工具
此时进入web界面,查看各个模块,应该都会有相应的数据展示了