DarkAngel是一款全自动的白帽漏洞扫描程序,可以监控黑客和bugcrowd资产,生成漏洞报告,漏洞URL截屏,发送消息通知。
DarkAngel 下载地址:github.com/Bywalks/DarkAngel安装
整体项目架构ES+Kibana+扫描器,所以安装需要三个部分
ES镜像:
拉取ES镜像
docker pull bywalkss/darkangel:es7.9.3
部署ES镜像
docker run -e ES_JAVA_OPTS="-Xms1024m -Xms1024m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.3
查看日志
docker logs -f elasticsearch
出现问题,执行命令
sysctl -w vm.max_map_count=262144
重启docker
docker restart elasticsearchKibana镜像:
拉取Kibana镜像
docker pull bywalkss/darkangel:kibana7.9.3
部署Kibana镜像(修改一下es-ip)
docker run --name kibana -e ELASTICSEARCH_URL=http://es-ip:9200 -p 5601:5601 -d docker.io/bywalkss/darkangel:kibana7.9.3
查看日志
docker logs -f kibana
出现问题,执行命令
sysctl -w vm.max_map_count=262144
重启docker
docker start kibana扫描器镜像:
拉取扫描器镜像
docker pull bywalkss/darkangel:v0.0.5
部署扫描器
docker run -it -d -v /root/DarkAngel:/root/DarkAngel --name darkangel bywalkss/darkangel:v0.0.5
进入扫描器docker
docker exec -it docker_id /bin/bash
进入root目录
cd root
下载源代码
git clone https://github.com/Bywalks/DarkAngel.git
添加执行权限
chmod 777 /root/DarkAngel/vulscan/tools/*
chmod 777 /root/DarkAngel/vulscan/tools/whatweb/*
进行DarkAngel目录后即可使用docker容器内挂载目录无权限:解决方法1、运行容器时:--privileged=true;解决方法2、宿主机运行命令:setenforce 0
用法
usage: darkangel.py [-h] [--add-new-domain]
                    [--scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME]
                    [--scan-new-domain]
                    [--add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]]
                    [--offer-bounty {yes,no}] [--nuclei-file-scan]
                    [--nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP]
                    [--nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP]
                    [--nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME]
                    [--nuclei-file-polling-scan]
DarkAngel is a white hat scanner. Every user makes the Internet more secure.
--------------------------------------------------------------------------------
optional arguments:
  -h, --help            show this help message and exit
  --add-new-domain      add new domain from h1 and bc
  --scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME
                        scan h1 and bc domain by launched time
  --scan-new-domain     add and scan new domain from h1 and bc
  --add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]
                        add and scan new domain self added
  --offer-bounty {yes,no}
                        set add domain is bounty or no bounty
  --nuclei-file-scan    scan new domain from h1 and bc
  --nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP
                        use new template scan five file by nuclei
  --nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP
                        add new template scan five file by nuclei
  --nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME
                        use template scan five file by nuclei
  --nuclei-file-polling-scan
                        five file polling scan by nuclei--add-new-domain
$ python3 darkangel.py --add-new-domain
- 监听hackerone和bugcrowd新域名
 
--scan-domain-by-time
$ python3 darkangel.py --scan-domain-by-time begin-time end-time
- 以时间间隔为条件,对es库中pdomain进行漏洞扫描,该模块开发目的为对库中pdomain进行分批扫描,缓解一次卡断整个程序出错的问题
 
--scan-new-domain
$ python3 darkangel.py --scan-new-domain
- 监听hackerone和bugcrowd新域名并进行扫描(第一次使用该程序不建议使用该参数,会把hackerone和bugcrowd域名全部添加进去并扫描,资产过多的情况下做好准备,扫描时间很长)
 
--add-domain-and-scan
$ python3 darkangel.py --add-domain-and-scan program-file-name1 program-file-name2 --offer-bounty yes/no
- 自定义添加扫描域名,并对这些域名进行漏洞扫描
 - 文件名为厂商名称,文件内存放需扫描域名
 - 需提供--offer-bounty参数,设置域名是否提供赏金
 

扫描结束后,会把子域名结果存在在/root/DarkAngel/vulscan/results/urls目录,按照是否提供赏金分别存放在,bounty_temp_urls_output.txt、nobounty_temp_urls_output.txt文件内
--nuclei-file-scan
$ python3 darkangel.py --nuclei-file-scan
- 用nuclei扫描20个url文件
 
url列表存放位置
--nuclei-file-polling-scan
$ python3 darkangel.py --nuclei-file-polling-scan
- 轮询用nuclei扫描20个url文件,可把该进程放在后台,轮询扫描,监听是否url列表是否存在新漏洞出现
 
--nuclei-file-scan-by-new-temp
$ python3 darkangel.py --nuclei-file-scan-by-new-temp nuclei-template-version
- 监听nuclei-template更新,当更新时,对url列表进行扫描
 
当前nuclei-template版本为9.3.1
执行命令,监听9.3.2版本更新
企业微信通知
url列表存放位置

--nuclei-file-scan-by-new-add-temp
$ python3 darkangel.py --nuclei-file-scan-by-new-add-temp nuclei-template-id
- 监听nuclei单template更新,当更新时,用该template对url列表进行扫描,这里是打了个时间差,某些时候先提交tempalte,验证后才会加入nuclei模板,在还未加入时,我们已经监听并进行扫描,扫描后id会自动增加,监听并进行扫描
 
查看nuclei单template的id,这里为6296
执行命令,对该template进行扫描
url列表存放位置
--nuclei-file-scan-by-temp-name
$ python3 darkangel.py --nuclei-file-scan-by-temp-name nuclei-template-name
- 用单template对url列表进行扫描
 
结果显示
前端 - 扫描厂商

前端 - 扫描域名

前端 - 扫描结果
TG通知 - 漏洞结果

TG通知 - 扫描进程

微信通知 - 扫描进程
微信通知 - 漏洞结果

安装与使用
1、执行命令扫描模板

2、URL列表存放位置

3、使用单个模板扫描 url 列表

4、结果显示

0x03 项目链接下载
目前支持的功能:
- 黑客资产监控;
 - 虫群资产监控;
 - 添加用户定义的资产;
 - 子域名扫描;
 - 网站爬虫
 - 网站指纹识别;
 - 漏洞扫描;
 - 漏洞网址自动截图;
 - 自动生成漏洞报告;
 - 企业微信通知扫描结果;
 - 前端显示扫描结果;
 
0x01 自动生成漏洞报告
自动生成漏洞报告 - MarkDown 格式 - 存储地址/根/DarkAngel/vulscan/结果/报告

支持自行添加漏洞报告模板。目前,漏洞报告模板已添加如下。漏洞名称可以配置为核心模板的文件名。

自定义漏洞报告模板格式。

0x02 扫描邮件通知
电报通知。获取参数后,在 /root/markup/vconfig/config 中配置参数.ini开启企业 TG 通知

TG 通知 - 扫描过程

获取参数后,在 /root/markup/vconfig/config.ini 中配置参数,开启企业微信通知
微信通知 - 漏洞结果

微信通知 - 扫描流程

整体项目架构为 ES+Kibana+scanner,因此安装需要三部分。
ES image:
Pull ES image
docker pull bywalkss/darkangel:es7.9.3
Deploy ES image
docker run -e ES_JAVA_OPTS="-Xms1024m -Xms1024m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name elasticsearch elasticsearch:7.9.3
view log
docker logs -f elasticsearch
If there is a problem, execute the command
sysctl -w vm.max_map_count=262144
Restart Docker
docker restart elasticsearchKibana image:
Pull Kibana image
docker pull bywalkss/darkangel:kibana7.9.3
Deploy Kibana image (modify the es ip)
docker run --name kibana -e ELASTICSEARCH_ URL= http://es-ip:9200 -p 5601:5601 -d docker.io/bywalkss/darkangel:kibana7.9.3
view log
docker logs -f kibana
If there is a problem, execute the command
sysctl -w vm.max_map_count=262144
Restart Docker
docker start kibanaScanner image:
Pull Scanner Image
docker pull bywalkss/darkangel:v0.0.5
Deployment Scanner
docker run -it -d -v /root/DarkAngel:/root/DarkAngel --name darkangel bywalkss/darkangel:v0.0.5
Enter the scanner docker
docker exec -it docker_id /bin/bash
Enter the root directory
cd root
Download source code
git clone https://github.com/Bywalks/DarkAngel.git
Add execution permissions
chmod 777 /root/DarkAngel/vulscan/tools/*
chmod 777 /root/DarkAngel/vulscan/tools/whatweb/*
You can use it after into the DarkAngel directory0x02 工具使用
usage: darkangel.py [-h] [--add-new-domain]
                    [--scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME]
                    [--scan-new-domain]
                    [--add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]]
                    [--offer-bounty {yes,no}] [--nuclei-file-scan]
                    [--nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP]
                    [--nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP]
                    [--nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME]
                    [--nuclei-file-polling-scan]
DarkAngel is a white hat scanner. Every user makes the Internet more secure.
--------------------------------------------------------------------------------
optional arguments:
  -h, --help            show this help message and exit
  --add-new-domain      add new domain from h1 and bc
  --scan-domain-by-time SCAN_DOMAIN_BY_TIME SCAN_DOMAIN_BY_TIME
                        scan h1 and bc domain by launched time
  --scan-new-domain     add and scan new domain from h1 and bc
  --add-domain-and-scan ADD_DOMAIN_AND_SCAN [ADD_DOMAIN_AND_SCAN ...]
                        add and scan new domain self added
  --offer-bounty {yes,no}
                        set add domain is bounty or no bounty
  --nuclei-file-scan    scan new domain from h1 and bc
  --nuclei-file-scan-by-new-temp NUCLEI_FILE_SCAN_BY_NEW_TEMP
                        use new template scan five file by nuclei
  --nuclei-file-scan-by-new-add-temp NUCLEI_FILE_SCAN_BY_NEW_ADD_TEMP
                        add new template scan five file by nuclei
  --nuclei-file-scan-by-temp-name NUCLEI_FILE_SCAN_BY_TEMP_NAME
                        use template scan five file by nuclei
  --nuclei-file-polling-scan
                        five file polling scan by nuclei--add-new-domain
$ python3 darkangel.py --add-new-domain监听hackerone和bugcrowd的新域名

以时间间隔为条件,对 es 库中的 pdomain 进行漏洞扫描。该模块的开发目的是批量扫描库中的pdomain,缓解一次阻塞整个程序的问题。

监控黑客和虫群域名并扫描它们(首次使用时,将添加所有黑客和虫群域名。当资产过多且扫描时间较长时做好准备)










