最近在写一款简易的扫描器,想来想去觉得想把已有的poc融合到一起,实现插件化。未来的想法和优化思路已经差不多了,详细的信息已经记录在github上了,希望大家多提一些指正的意见和思路。https://github.com/tiaotiaolong/TTLScan
TTLScan
一款插件化的漏洞扫描器框架
- 目前支持ip iplist zoomeye搜索引擎 url urllist
- 目前支持RedisUn RedisGetShell Struts2系列漏洞
- POC的准确性的已被复测
- 已经支持ZoomEYE搜索引擎自动获取ip系列POC的目标集合
- 希望大家一起来提交Poc 一起来修改框架
- To be Continued...
截图
使用说明
程序的整体设计是支持3种输入源,目前支持两种输入源分别为:
- ip方式
- url方式
其中这两种都支持list形式 也就是文件列表格式。
eg: Redis未授权访问,输入源就是ip方式 你可以使用--ip或者--ip_list两种参数 其中--ip和--ip_list两者中--ip的优先级较高,如果同时使用了2种参数,则视为--ip_list无效
eg: 查询目前的所有Poc脚本
POC的格式 poc的格式非常简单,主要是2个函数被动态调用 POC()和POC_INFO()两个函数被动态调用,当检测到有漏洞的时候可以使用logger进行日志输出。
eg: redis_un script
搜索引擎的使用方法 --search
--search支持zoomeye搜索引擎,可以对ip系列的POC进行目标集合获取 --search_page 为获取的页数 默认为20页
eg: 下图命令为利用zoomeye搜索引擎对redis未授权访问进行探测 默认只对有漏洞的ip进行日志输出,图中为了显示zoomeye搜索引擎目标集合,对整个集合进行了输出。
zoomeye的设置和使用
zoomeye官方提供了api允许我们使用,这里我已经做了集成。但仍需相关配置项 access_token 获取zoomeye access_token的方法如下:
平台主要使用的是 Json Web Token 的登录验证方式,用户只需使用用户名和密码,登录一次,获取 access_token。
并在接下来的其他 API 请求 HTTP 头中带上 access_token (格式如 Authorization: JWT <access_token>) 即可,无需再次登录验证。
获取access_token示例
将获取的access_token添加到config.config.py中的access_token
更多相关Zoomeye的使用方法和文档情操考zoomeye官方 ZoomEye API 参考手册
Will Do
- 添加其他的搜索引擎
- 当数量比较庞大的时候引入多线程以及协程相关技术
- 对扫描的数据进行存储
- Celery分布式任务处理