项目处于测试阶段,代码会时常更新,各位师傅点个Star
关注下
技术栈如下
前端 Layui
服务端 Python-Flask
缓存 Redis
持久化 MongoDB
bilibili视频地址
1、爬虫从爱企查查询企业的组织架构,一级单位、二级单位的首页和邮箱等信息
2、根据企业的公司名称whois反查域名、ICP备案反查域名,所有一级单位二级单位都会进行ICP反查
这块下任务的格式注意下
#填写一级域名
baidu.com
子域名查询模块:
最终返回的信息是:主机地址、解析IP、网站标题、Server、应用指纹、目录扫描、地理位置、运营商
主机地址:所有子域名和通过https证书获取IP资产
解析IP:最终解析出的IP或者CDN的标识
网站标题:网站的title
Server:使用的服务器中间件,例如IIS、Apache等Web容器
应用指纹:网站使用的应用或设备类型,例如Shiro框架、Weblogic中间件、TP开发框架、各种OA系统
目录扫描:简单的扫描常见的后台和源码泄露(部分WAF会直接拦截)
地理位置:通过淘宝库查询IP的地理位置和运营商(FOFA返回的地理位置不准确)
子域名获取流程:
1、FOFA取数据
语法:domain="baidu.com"
,不过滤请求返回的状态码,尽可能多的获取子域名
获取数据:host、title、server
CERT证书取子域名资产数据(有些直接是真实IP资产,FOFA语法:cert="baidu.com"
)
获取数据:host、title、server、ip
2、更多子域名获取渠道+最终结果去重
DNS爆破
使用https://phpinfo.me/domain
的top3000字典,直接多线程调用dns.resolver
解析域名。测试速度比ksubdomain
无状态域名爆破工具快一点(原因是DBJ只爆破没做其它域名获取渠道,比如API查询接口这些)
3、CDN识别
解析A记录有CNAME的就是有CDN
cdn_header[host] - 放在指纹识别阶段 二次校验CDN
4、调用指纹识别模块扫描URL识别Web指纹
这块下任务的格式注意下
#填写单个IP 或 C段
111.222.333.444
111.222.333.444/24
扫描单IP或C段中Web应用,并识别Web指纹
导出URL
导出全部URL,或根据指纹索引匹配资产导出URL,然后扔到别的工具或漏扫里边跑
三种识别方式
1)HTTP-Header 匹配关键字
2)HTTP-Body 匹配关键字
3)ICON_HASH 匹配关键字
Web指纹识别时并未发送恶意请求所以无需代理。
指纹库在rules.py
,以一个Dict
的形式存在,python中字典的索引比列表(list)快
收录常见的应用指纹,不断更新中~
指纹的每个特征用 "|" 分割开来,前后不能有空格
计算图标的哈希值,并自动匹配相关资产(适合瞄准目标时用)
漏扫调用的nuclei
,因为这个漏扫速度快性能好,各位可自行和市面上的相关工具产品对比下
POC持续添加中.....(漏扫暂时只支持Windows平台)
漏扫设置
nuclei会在当前用户目录下生成一个.config/nuclei
的配置文件夹;
修改里边两个配置文件
#.templates-config.json 模板配置文件
修改templates-directory的 路径为大宝剑当前的漏扫POC模板路径
\DBJ\flaskr\vulnscan\nuclei-templates
#config.yaml 扫描器配置文件
update-directory: C:\Users\wintrysec\Desktop\DBJ\flaskr\vulnscan/nuclei-templates
no-color: true
concurrency: 50
rate-limit: 2500
bulk-size: 50
git clone https://github.com/wgpsec/DBJ.git # 速度太慢可用gitee
cd DBJ
docker build . -t dbj
docker run -d --name dbj -p 0.0.0.0:65000:5000 dbj # 映射到65000端口上
docker run -it --name dbj -p 5000:5000 xrsec/dbj:latest
docker logs dbj
一、安装第三方库
推荐使用Python3.9
以上版本
pip install -r requirements.txt
二、安装配置数据库
先安装MonGoDB和Redis
#配置MongoDB
mongo
use webapp
db.createCollection("tasks")
db.createCollection("webs")
db.createCollection("subdomains")
db.createCollection("user")
db.user.insert({uid:1,username:'admin',password:'admin'})
exit
三、启动应用
#Windows系统
点击start.bat
#Linux系统
sh start.sh
然后打开浏览器访问 IP:5000 登录即可(默认账户密码admin/admin,进去自己改)