本项目是一款基于 Flask 应用框架的在线漏洞扫描系统,同时集成了渗透测试常用的端口扫描、子域名爆破等功能,后端漏洞扫描采用的是知道创宇安全团队的开源漏洞测试框架 Pocsuite。

项目地址:https://github.com/jeffzh3ng/InsectsAwake

主要功能

漏洞扫描

漏洞扫描通过调用创宇的 Pocsuite 进行扫描,扫描插件通过 Seebug 可以获取,或者自己编写。

Screenshot-create-tasks.png

扫描目标只能是单个 IP 或者 URL,不支持网段扫描(公司是中小型公司,就忘写这块需求了),默认有80余个插件,大多是 Seebug 的免费PoC

任务周期可以选择临时、每日、每周或每月

资产管理

添加各系统或部门网络资产

Screenshot-asset-management.png

可以通过各资产库创建漏洞扫描任务,同样资产库只能是单个 IP 或者 URL。

开启端口发现功能后,后端会定时调用 nmap 对资产进行端口扫描,需要扫描的端口可以在设置里进行配置

域名发现功能

即子域名爆破功能,但目前功能尚不完善,只能通过配置字典进行暴力猜解,域名字典可以在设置处进行配置,项目 tests 文件夹内提供了一份子域名字典(字典来源 ring04h 的 wydomain 项目)

Screenshot-subdomain-brute.png

系统安装

安装演示所使用的操作系统为 Ubuntu 16.04

获取项目源码

git clone https://github.com/jeffzh3ng/InsectsAwake.git 

安装 Python 及 pip

sudo apt update sudo apt install python python-pip 

安装 MongoDB

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5 echo "deb [ arch=amd64,arm64,ppc64el,s390x ] http://repo.mongodb.com/apt/ubuntu xenial/mongodb-enterprise/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise.listecho "deb http://repo.mongodb.com/apt/ubuntu "$(lsb_release -sc)"/mongodb-enterprise/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise-3.4.list echo "deb http://repo.mongodb.com/apt/ubuntu "$(lsb_release -sc)"/mongodb-enterprise/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-enterprise-3.4.list sudo apt-get update
sudo apt-get install -y mongodb-enterprise 

其他系统安装参考官方手册:

https://docs.mongodb.com/manual/installation/

安装 Python 依赖包

cd InsectsAwake
sudo pip install pip -U
sudo pip install -r requirements.txt 

安装 Nmap

sudo apt install nmap 

或者源码安装

配置数据库

启动数据库

sudo service mongod start mongo --host 127.0.0.1:27017 

添加用户

use InsectsAwake db.createUser({user:'you username',pwd:'you password',roles:[{role:'dbOwner',db:'InsectsAwake'}]}) exit 

修改扫描器配置

扫描器配置文件路径:InsectsAwake-Project/instance/config.py

class Config():     WEB_USER = 'admin'          // 扫描器登录用户
    WEB_PASSWORD = 'whoami'     // 扫描器登录密码
    WEB_HOST = '127.0.0.1'      // 本地访问
    WEB_PORT = 5000             // Web服务端口
    POCSUITE_PATH = basedir + '/../InsectsAwake/views/modules/scanner/pocsuite_plugin/' class ProductionConfig(Config):     DB_HOST = '127.0.0.1'       // 数据库地址
    DB_PORT = 27017             // 数据库端口
    DB_USERNAME = 'testuser'    // 数据库用户
    DB_PASSWORD = 'testpwd'     // 数据库密码
    DB_NAME = 'test'            // 数据库名

    // 数据库集合名
    PLUGIN_DB = 'test_plugin_info'     TASKS_DB = 'test_tasks'     VULNERABILITY_DB = 'test_vuldb'     ASSET_DB = 'test_asset'     CONFIG_DB = 'test_config'     SERVER_DB = 'test_server'     SUBDOMAIN_DB = 'test_subdomain'     DOMAIN_DB = 'test_domain'     WEEKPASSWD_DB = 'test_weekpasswd'

初始化数据库

cd /InsectsAwake/migration
python start.py 

运行系统

完成依赖安装、数据库配置及修改扫描器配置后

sudo ./run.sh restart 

项目默认运行在127.0.0.1:5000 (可以 修改 默认的 WEB_HOST 及 WEB_PORT),无法外网访问,建议配置 Nginx 或者 Caddy 等Web服务代理访问,这里简单介绍下 Caddy 使用

Caddy 配置

Caddy 是一个能自动创建 HTTPS 功能的 HTTP/2 网站服务器

安装

Linux 64-bit 一键安装脚本:

curl https://getcaddy.com | bash -s personal 

其他版本操作系统安装参考Caddy 官网

安装 Golang 的通过 go get 获取

go get github.com/mholt/caddy/caddy 

配置

创建配置文件

sudo mkdir /etc/caddy
sudo touch /etc/caddy/caddy.config
sudo chown -R root:www-data /etc/caddy
sudo vi /etc/caddy/caddy.config 

配置文件示例:

www.example.com { log /var/log/caddy_insectsawake.log proxy / 127.0.0.1:5000 {
        transparent 
    }
} 

修改 为你的域名,127.0.0.1:5000 为你配置的服务端口

创建 SSL 证书路径

sudo mkdir /etc/ssl/caddy
sudo chown -R www-data:root /etc/ssl/caddy
sudo chmod 0770 /etc/ssl/caddy 

运行

测试

sudo caddy -conf /etc/caddy/caddy.config 

后台运行

sudo nohup caddy -conf /etc/caddy/caddy.config > /var/log/caddy_log.log & 

运行成功

Screenshot-dashboard.png

参考及依赖项目

Pocsuite

wydomain

xunfeng

Flask

Nmap

还有参考了一些其他项目但不记得地址了,感谢各位开源

写在后面

项目是三月初开始写的(惊蛰那天),断断续续写了一个多月了,最早的想法是将一些常用的工具如DNSLog、端口扫描、目录爆破、爬虫等渗透常用功能集成在线的形式,但最近公司开始忙起来,没有太多精力继续放在该项目上了,目前只实现了漏洞扫描、端口扫描及子域名爆破,后面有时间会继续完善

使用过程中遇到问题或者建议可以联系我:

Telegram:jeffzhang

Telegram Group:Insects Awake

E-Mail:jeffzh3ng@gmail.com

*本文作者:jeffzh3ng