企业安全实践(基础建设)之主动分布式WEB资产扫描

前言

常规WEB安全扫描一般分为主动扫描和被动扫描,主动扫描一般为黑盒爬虫测试,通过提供一个URL入口点,然后由扫描器进行爬虫测试。如何在有限的时间内完成主动式大量测试目标,是本章的重点。

安全需求

1、对大量WEB资产(如域名和IP http服务)进行分布式安全扫描
2、周期时间(如每周)总结WEB环境下还存在哪些常见的安全漏洞

开源项目

项目地址:https://github.com/grayddq/PublicSecScan

如有其他建议,可以联系作者 咚咚呛 ,微信:280495355

PubilcSecScan项目满足如下安全需求

1、对大量WEB资产(如域名和IP http服务)进行分布式安全扫描
2、周期时间(如每周)总结WEB环境下还存在哪些常见的安全漏洞 3、输出所有结果到excel,并发送Email通知

技术细节如下

1、分布式采用Celery + Redis结构,redis作为消息队列存储任务
2、Worker调用AWVS Console进行WEB扫描
3、扫描结果以KV数据存储到Redis中
4、每个漏洞有效期为7天,过期删除;当再次扫描到此漏洞时,重置漏洞有效期
5、发送所有结果到email

安装

部署分为两块,一个任务发布Server、一个扫描任务执行Worker

1、任意机子安装redis
$ yum install redis
$ vim /etc/redis.conf
# 更改bind 127.0.0.1 改成了 bind 0.0.0.0
# 添加一行requirepass xxxxx密码
# 修改daemonize yes
$ redis-server /etc/redis.conf

2、Worker部署(WIN机子多多益善)
1) 安装AWVS
2) pip install -r requirements.txt
3) 配置./lib/config.py 文件,填入Redis和WVS相关信息,Email信息可忽略
4) cmd代码目录执行,-c 1代表多一个WVS进程,可增加:
celery -A tasks worker -c 1 --loglevel=info -Ofair

3、Server部署(部署一台机子)
1) pip install -r requirements.txt
2) 配置./lib/config.py 文件,填入Redis和Email(可选)相关信息,wvs信息可忽略
3) domain.txt中填入待扫描信息,可随时更新
4) 执行python PublicSecScan.py

介绍

PublicSecScan
----lib                #模块库文件
----log                #日志目录
----out    	           #输出目录
----tasks.py   		   #分布式调度任务
----domain.txt		   #域名或IP列表
----PublicSecScan.py   #任务分发主程序

配置

#配置目录:./conf/info.conf

REDIS_HOST = '111.111.11.111'
REDIS_PORT = 6379
REDIS_PASSWORD = 'xxxx'
REDIS_DB = 1

# wvs安装位置,目录有空格记着用双引号括住
wvs_location = 'C:/"Program Files (x86)"/Acunetix/"Web Vulnerability Scanner 10"/'
# 风险入库后有效期,过期自动删除,单位秒;
risk_timeout = 604800

# 邮箱信息,不填写则代表不发送邮件,结果保存在out/目录中
email_user = '[email protected]'
email_pass = 'xxxxx'
target_email = '[email protected]'
smtp_server = 'smtp.163.com'

运行截图

222.png

111.png

email

333.png

444.png

原始链接: http://www.freebuf.com/column/157546.html
侵权请联系站方: [email protected]

相关推荐

换一批