最初计划写EasyPen这个工具,是因为笔者认为
- 单机性能已经非常强大,哪怕是在家庭网络下,发包速率也非常可观
- 一般漏洞的应急,在已具备资产发现能力的情况下,写十几行代码扫全网,应该可以非常快,几分钟或者几十分钟就可以完成上万服务的扫描
- 提供一个简单的图形化工具,给白帽子或者安全团队内部同事使用。平时本机验证一下漏洞比较方便,不用各个脚本切来切去
EasyPen是使用Python + wxPython编写、提供简洁图形界面、支持跨平台的安全扫描工具,可用于企业内外网巡检、应急响应。项目地址:https://github.com/lijiejie/EasyPen
在线文档:https://easypen.lijiejie.com
它的主要功能包括:
- 资产发现:域名、IP、端口、服务等
- 漏洞扫描:基于AsyncIO实现的扫描框架,内置超过100个漏洞检测插件,支持调度Hydra/Medusa/Ncrack等工具扫描常见弱口令
- 应急响应:高危漏洞爆发后,依托框架和现成资产库,通常只需要编写十余行检测逻辑代码,就可以在几分钟内完成对数千目标的扫描
- 集成了多个漏洞利用工具
功能特性
- 本工具使用AsyncIO实现了高并发扫描,扫描核心是单线程的,并发扫描任务可超过1000个
- 本工具优化了DNS Log 检测方法,扫描器维护域名映射关系表,因此,无论扫描过程中投递过多少个子域名,最终都只需要最多2个HTTP请求验证。另外,由于DNS Log在传递链路上的触发需要一定时间,因此,把查询验证放到最后,也消除了不必要的等待,降低漏报的可能性
- 本工具提供易用的图形界面,通过关键词筛选目标(例如服务、端口号、IP等),即可立即发起大范围扫描
- 本工具支持多种输入格式,支持输入 10.1.1.1/16 10.1.1.2/10:80 www.lijiejie.com/31 等目标发起检测
安装使用
笔者同时使用了 Windows / CentOS / Ubuntu 作为开发环境进行测试。目前测试覆盖不全,应该还有一些坑。请大家在Github上创建Issue反馈。
对于熟悉python的高级用户而言,建议抓取代码后pip install
如果是Windows用户,并且希望绕过繁琐的安装步骤。则可以下载笔者已经生成的exe文件。下载直接运行其中的 EasyPen.exe 即可
https://github.com/lijiejie/EasyPen/releases
为了能够完整使用扫描器,还需要配置好DNS Log地址,域名列表等。请参考用户文档。
开发计划
目前Alpha 1.0 只完成了基础的框架,待开发完善的功能
- 适配支持各种类型的DNSLog平台
- 集成web指纹识别功能,标签功能(Server / Shiro / PHP / Java 等),可视化预览
- 维护预置扫描模板(插件集合名称)
- 添加第三方插件的执行支持,如:python / YAML 插件,支持复用其他开源项目插件
- 简易插件编辑和调试功能
- 漏洞查看界面一键复核验证功能(漏洞依然存在则高亮显示)
- 优化暴力破解相关,包括字典维护
- BBScan插件的集成
- 扫描性能持续提升
- 重构代码便于其他贡献者增加工具、插件