[思路]Ares渗透测试系统的实现(一)
in 渗透测试武器库Python with 0 comment

[思路]Ares渗透测试系统的实现(一)

in 渗透测试武器库Python with 0 comment

Ares在线渗透测试系统

About:

阿瑞斯 Ares(希腊语:Ἀρης),战神,古希腊神话中为战争而生的神,奥林匹斯十二神之一,被视为尚武精神的化身。
之所以给它起一个这么霸气又欠揍的名字是希望它能像战神一样功能强大,所向披靡。

概要描述:

继在渗透测试,指纹识别(参考bugscan,云悉指纹识别)出现后,

产生了一个思考,为什么不能将所有(相对) 渗透测试工具 在线 化呢?
将命令行工具等客户端软件在线web api
这里就产生了一个概念,RESTful API
将我们的工具RESTfulAPI化,部署在服务器上,使用的时候只需要在浏览器端就可以,这是本项目的目标所在。
例如:巡风sqlmapapi.py 是一个大的启发。

需求分析:

能完成渗透测试工作中的大部分 信息收集 漏洞检测 漏洞利用 主机管理 的工作。

初始预备技术栈:

利用ThinkPHP + redis + mongodb(最好PHP7 实现用户管理等外围业务逻辑,redis存储工具的产出信息,mongodb持久存储用户,工具信息)
Python + falcon(bottle,或者flask) 实现将传统命令行工具RESTful API化(基于jsonXML 数据传输)
前端layUI,javascript,ajax实现将jsonxml等数据可视化,将phppython实现的业务统一。

具体功能集合:

面临的问题

1,如何解决多用户,并发的存在,性能问题?
使用注册,邀请,功能限制,敏感功能监控,这些机制限制用户使用,减少高任务的出现。使用同用户同步(一个用户最多干几件事,不能所有都干,对服务器压力太大),不同用户异步(不同用户干什么事互不影响)的逻辑,将性能和体验平衡。

2,一些用户干坏事,被黑名单怎么办?
一些高IO的操作,严格控制,尽量使用代理池。
3,数据传输问题,没有实时性,客户端不能等待太长时间,如何实现后端数据与前端数据的同步?
4,压力测试?
破坏不要太大

要踩的坑

要实现以上功能,需要的知识储备:

thinkPHP : 大部分的外围业务逻辑(用户注册,登录,页面访问控制,等)
layUI: 前端展示框架(后期可以请前端大神修改)
javascript: 前端动态数据展示
Python ,falcon,bottle,flask: 主要将传统渗透客户端软件输出格式化(json,xml)等,RESTful API化,这是核心功能。例如请求 https://drops.org.cn/tools/sqli?url=www.test.com/news.php?id=1
返回注入结果的json信息.
Redis,mongodb: 使用redis是为了存储工具的一些格式化输出,在后端直接输出信息前做一个缓冲。
使用mongodb nosql技术有利于与redis的配合(数据持久化)

e7cd7b899e510fb364af331ad333c895d0430c8c.jpg

Responses