优秀的人,不是不合群,而是他们合群的人里面没有你
最近沉迷魔兽世界太久,自我察觉有些松懈,趁着清醒,抓紧立个计划,警醒监督。
扫描器研发
关于扫描器,其实我是一个特别懒的人,啥都想自动化一键操作。一直以来系统性的扫描器都是贯穿着一个思想,就是配置环境后开启,自动新增相关资产,然后自动漏扫模块,信息收集模块加载。扫描结果处理后,自动生成报表。
17年
从17年末开发的Yolanda扫描器雏形,根据友链无限新增网址后加载扫描,源码泄露,编辑器漏洞,识别CMS类型,注入类漏洞生成数据结果。
19年
到19年的浪子SRC安全巡航逐渐正式,根据监控域名进行持续性的子域名资产收集,以及自定义导入网址。支持更多的自动化漏洞扫描,比较满意的是自动化验证漏洞后生成word格式的漏洞报表,并发量也更大,但是需要的资源也更多,18年暑假期间测试12个小时,输出xss漏洞500+,源码泄露类漏洞500+,SQL注入漏洞100+,URL跳转等其他低危漏洞200+。目录下生成了上千个word文档的时候,都惊呆了。
测试环境是在9900K32G1000M宽带下,基本上出口流量都吃满了,CPU负载90%+,散热器吹得和机场一样。刚开始还挺开心,但是后面觉得还是不值得。
20年
20年想法逐渐减少,只想将这种全自动化的扫描器再次完善。这段时间也出现了较为优秀的漏洞扫描器Xray,流量链接爬虫Crawlgo。但是个人认为光利用爬虫获取超链接然后触发Xray被动扫描并不能完全发挥Xray的优势,Xray被动流量的扫描优势在于强大的扫描策略与人工点击捕获的流量。爬虫无法实现更多超链接的获取,一个小小的建议,设置浏览器代理后,使用selenium或者puppeteer操作浏览器进行上下滑动,点击,获取输入框位置后自动输入字符串回车,利用关键词定位敏感标签进行点击操作。开发出一套框架,建议对漏扫整理后结果尝试自动化复现与生成漏洞报表,比如xss可以使用selwnium操作浏览器访问漏洞网址,检测是否出现弹窗后进行网页截图,生成word文档,sql注入同理,调用sqlmap进行注入检测,对注入获取的数据进行清洗后保存到word文档,等等。等到这些框架都设计好了,直接和之前写的子域名监控合并在一起就OK了。
具体流程为拓展子域名监控系统,子域名监控系统自带子域名收集与导入网址功能。对在监控范围内的网站,进行超链接获取(模拟浏览器获取流量链接),信息收集(CDN,WAF,IP地址,服务器类型等等),资产分类(按照服务器类型,脚本语言类型,等等其他数据类型进行分类),漏洞扫描(多数为通用型的漏洞扫描,比如XSS,注入,源码泄露,URL跳转等等,还包括一些比较重要的命令执行漏洞验证),自动验证(比如XSS会二次调用浏览器加载payload,检测是否出现弹窗后截图保存。SQL注入会加载sqlmap尝试读取数据库的当前用户和表名后保存等等)。一旦所有的的网址都扫描完毕后,则进行第二次重新检测,实现子域名监控与资产安全巡航功能。
目前的计划是,扫描器需要并且是必须要三台以上的主机,一台作为主控制端,负责架设数据库,分配任务。一台负责调用浏览器打开目标网页,自动化操作获取更多的流量链接。另外多台则负责不同漏洞的相关扫描(包括验证也在该台主机负责完成)。
登录主控制端的网页后台,查看每台主机的负载,当前任务,派发任务,监控到的子域名以及其他资产,漏洞扫描进度,生成漏洞报告文档等操作。
课程录制
关于扫描器是今年任务的第一个大头,第二个则是在19年答应水逼群友录制一套Python与网络安全工具开发的课程。
具体的课程表已经完成,等到买的麦克风到了就可以开始录制了。到时候免费在我个人的公众号平台【网络安全与漏扫研发】推出~
Python网络安全脚本开发
课程导学
本课程是围绕python展开,以实现安全工具开发为目的一套完整体系课程。学完此课程你将掌握python核心知识以及爬虫,漏洞原理与漏洞扫描器,自动化工具,以及漏扫管理网站的独立开发。课程针对的是没有python基础或者python基础薄弱的同学,想要快速上手开发系列的工具,用精简的课程阐述每个知识点与其应用。
课程目录
讲课方式
每次开课都会把当前课程分成五大类别依次学习,分别是:
- 课程目标:当前课程需要完成的目标内容
- 核心知识:目标内容的常见核心用法,这里的核心知识必须要背下来
- 拓展知识:目标内容的不常用方法,不用刻意背它的用法,但是心里一定要有数,知道有这个用法
- 应用场景:学完本节课程你可以去做什么事,完成什么样的需求
- 总结归纳:对当前课程的梳理总结
对于开发实战课程,也是分成四大类去一步一步的解读实现,分别是:
- 思维流程:每次先对实战项目进行分析,明确他的功能
- 模式设计:明确需求功能后,考虑自身学习到的知识点,使用哪些知识点实现哪些功能,怎么实现,然后画上流程图
- 功能拆分:对每个功能先拆开,进行实现,然后合并在一起
- 优化代码:考虑到项目以后的可维护性,怎么写与设计更加易读,或者加上锦上添花的功能比如日志,带颜色的输出,版本号之类
每个实战项目都是基于之前章节的知识点实现的,所以当学完一些知识点后可以直接去看简单的实战课程。
关于安全漏洞,也是分成四大类一步一步的学习,分别是:
- 漏洞原理:漏洞是如何生成的,明确原理
- 靶场复现:对漏洞进行复现实战
- 归纳总结:如何发掘相关漏洞与总结经验
- 漏扫编写:在分析漏洞的成因后,尝试使用python写出简单的相关漏洞扫描验证
课程详情
Python 安全开发基础
课程目标:熟练运用python用法,了解python的数据类型与数据结构。
熟练运用条件判断与编写函数,对系统内置库能熟悉运用,对requests库和正则表达式非常熟悉。
能快速套用多线程/多进程/多进程协程模板完成高速并发操作。
- 初识python与配置环境
- 认知python
- 安装python3.6
- 安装pycharm
- 输出与数据类型
- 使用print输出内容
- 熟悉字符串类型
- 熟悉整数类型
- 熟悉字符串与整数类型的操作
- 认识数据存储结构
- 如何定义一个变量
- 掌握 input 输入
- 熟悉 for 循环数据
- 熟悉列表的功能与常用操作
- 熟悉元组的功能与常用操作
- 熟悉集合的功能与常用操作
- 熟悉字典的功能与常用操作
- 条件判断控制流程
- 掌握条件运算符 ==,>,<,in,not
- 掌握判断语句 if,elif,else
- 数据的循环获取
- 掌握for循环与while循环
- 掌握 continue,break,pass的区别
- 常用内置模块
- 掌握os模块常用功能
- 掌握sys模块常用功能
- 掌握time模块常用功能
- 掌握random模块常用功能
- 文件的读写操作
- 掌握文件打开,读取的语法
- 掌握文件写入的语法
- 函数式编程与异常处理
- 掌握函数的定义
- 掌握函数的规定语法
- 掌握函调用
- 掌握函数的参数
- 掌握函数的返回值
- 掌握异常处理
- 基础知识练习
- print+input+if+while+判断符号>>>猜数字游戏
- random+print+while+判断符号>>>彩票概率游戏
- open+readlines+def函数>>>卖包子游戏
- 批量获取域名对应ip并保存>>>综合练习
- 网络请求库requests
- 掌握安装第三方模块的方法
- 掌握requests库的常用方法与返回值
- 掌握requests库的相关参数使用
- 掌握requests下载保存不同类型的文件
- 正则表达式
- 掌握正则表达式的简单用法
- 掌握正则表达式的万金油用法
- 便捷语法特性
- 三元运算符
- 列表推导式
- 上下文管理
- 匿名函数
- 装饰器
- 面向对象编程
- 了解面向对象编程与面向过程编程区别
- 类的基本用法
- 类与实例
- 调用类的方法
- 类的特性
- 多线程与队列
- 明白多线程的含义
- 掌握多线程的简单用法
- 明白队列的含义
- 掌握队列的用法
- 多线程结合队列完成生产者消费者模型
- 实现代理IP的获取并且验证保存
- 多线程与多进程的区别
- 并发编程
- 了解并发与并行
- 了解同步与异步
- 了解阻塞与非阻塞
- 掌握线程池的使用
- 掌握两种进程池的使用
- 使用线程池批量扫描主机开放端口
- 了解协程asyncio+aiohttp的基础用法与套用模板
- 了解多进程协程aiomultiprocess充分利用CPU的基础用法与套用模板
- 打包exe
- 将py打包封装成exe
Python 编写爬虫脚本
课程目标:完成爬虫的基础入门,掌握基础的反爬虫策略。
运用多线程提高爬虫的速度,熟悉requests库的用法,以及其他从网页提取数据的库。
- 了解爬虫与伪装请求头
- 了解爬虫的含义
- 如何伪装成浏览器
- 了解BeautifulSoup的用法
- 安装第三方模块
- 使用该模块获取数据的多种方式
- 了解selenium的用法
- selenium介绍
- selenium自动化操作浏览器
- selenium判断是否出现弹窗(后续复现XSS)
- selenium截图操作(后续自动化生成漏洞报表)
- langzi.fun博客文章爬虫练习
- 获取博客文章的标题与网址
- 熟练掌握爬虫思考的基本模式
- 代理IP采集与验证
- 多线程与队列的熟悉使用
- 正则表达式提取数据的熟悉使用
- requests库的温习
- 补天厂商爬虫
- 获取补天厂商的标题(后续批量采集)
- 正则表达式提取数据的熟悉使用
- seebug爬虫
- 获取漏洞的标题的来源(后续完善自己的漏洞库)
- 熟悉爬虫的思考模式
- 了解如何伪装成浏览器绕过反爬虫
- zoomeye爬虫
- 了解使用网站提供的API获取数据
- 了解requests返回的json()格式
- 爬虫的综合练习
- fofa爬虫
- 爬虫的综合练习
- 站长之家爬虫
- 爬虫的综合练习
- 查询网址的权重,备案信息(后续完成信息自动收集脚本)
- 批量反查IP爬虫
- 爬虫的综合练习
- 批量获取IP主机部署的网站(后续完成信息自动收集脚本)
- 爬虫下载图片,视频,音频与压缩包
- 复习requests下载大文件,不同文件的方法
Python 开发信息收集脚本
课程目标:熟练使用爬虫获取网页数据,对网站的信息收集能实现自动化处理,对大批量的主机IP资产快速扫描获取资产详情,对资产数据实现可视化界面展示以及自动生成数据报表。
- 获取网页的信息
- 网页的编码问题
- 网页内容中获取网页的标题,网站使用的脚本语言
- 请求头中获取网站的服务器类型,使用的脚本语言
- 获取网页的备案,权重信息
- 站长之家爬虫获取
- 爱站网爬虫获取
- 获取网站是否使用CDN,WAF
- 了解CDN,WAF的含义
- 如何识别网站是否使用CDN
- 如何识别网站是否使用WAF
- 获取主机IP的相关信息
- 获取IP所在地信息
- 获取IP开放端口信息
- 获取IP开放端口运行的服务
- 通过fofa查询
- 百度关键词搜索
- 爬虫的温习
- 批量采集关键词
- 绕过百度的反爬虫
- 获取网页中全部链接与友链
- 后期实现CMS友链无限识别采集
- 后期sql注入,xss等验证的超链接
- 如何从配置文件中加载扫描配置
- 子域名采集
- 子域名爆破
- 接口采集
- 搜索引擎搜索
- 网页内容爬行获取子域名
- 目录扫描/敏感信息/探针文件
- 目录扫描
- 404页面识别的方式
- 敏感信息泄露扫描
- 探针文件扫描
- CMS指纹识别
- 通过本地指纹库进行识别
- 通过相关接口查询
- 结合nmap+masscan快速扫描主机资产
- 了解nmap/masscan功能与常用方法
- 安装第三方库管理扫描
- 常用扫描策略方法整理
- 网页信息被动式搜集综合脚本
- 结合之前课程进行知识温习整理
- 综合相关插件集成一体化脚本
- 获取网站的标题,服务器类型,脚本语言
- 获取网站是否使用CDN,WAF
- 获取网站的权重信息,备案信息
- 获取网站的相关资产子域名
- 获取网站的超链接网址
- 获取网站的CMS信息
- 获取网站的敏感信息路径
- 主机IP资产扫描综合脚本
- 结合之前课程进行知识温习整理
- 综合相关插件集成一体化脚本
- 获取IP所在地信息
- 获取IP开放端口信息
- 获取IP开放端口运行的服务
- 获取IP上部署的网站信息
- 通过反查IP获取部署网站信息
- 通过fofa查询获取IP详细资产
- 资产数据可视化
- 资产生成报表
Python 开发漏洞扫描脚本
课程目标:完成漏洞原理认知与检测漏洞脚本编写,了解黑盒扫描的方法以及常用脚本编写思路,熟练运用线程池/协程/多进程协程实现高并发扫描。
- 主流CMS的漏洞复现与POC/EXP编写
- POC/EXP讲解
- 织梦CMS漏洞环境搭建与POC/EXP编写
- ThinkPHP漏洞环境搭建与POC/EXP编写
- SQL注入检测
- SQL注入靶场简单讲解SQL注入原理
- 基于页面报错的SQL注入简单检测脚本编写
- 调用SQLMAP实现批量自动化扫描并格式化扫描结果
- 调用sqlmap进行注入检测,判断是否存在注入
- 使用正则表达式对sqlmap扫描结果进行清洗
- 将sqlmap扫描与清洗结果整合到函数
- 修改sqlmap某个函数参数实现全自动化检测注入并且获取数据库信息
- 结合前课程实现获取网页超链接进行批量注入检测
- XSS扫描检测
- XSS靶场简单讲解XSS原理
- XSS盲扫的经验
- XSS检测脚本编写
- 利用selenium复现XSS结果并截图生成漏洞报表
- selenium判断网页是否出现弹窗
- 开启截图线程进行网页截图
- 生成word格式漏洞报表模板
- 任意URL跳转扫描检测
- URL跳转靶场讲解URL跳转原理
- URL跳转脚本编写
- XXE漏洞扫描检测
- XXE靶场讲解XXE注入原理
- XXE扫描脚本编写
- 备份文件泄露扫描/源码泄露扫描
- GIT/SVN源码泄露/网站备份文件介绍
- GIT/SVN源码泄露扫描策略
- 网站备份文件扫描策略
- 广度优先之批量扫描胜于单个扫描
- 多进程结合协程实现超高速扫描
- 未授权访问漏洞POC检测编写
- Redis未授权访问漏洞脚本编写
- Mongodb未授权访问漏洞脚本编写
- FTP匿名访问漏洞脚本编写
- Elasticsearch未授权访问漏洞脚本编写
- Docker未授权访问漏洞脚本编写
- CouchDB未授权访问漏洞脚本编写
- Jenkins未授权访问漏洞脚本编写
- WEBSHELL爆破/网页登陆表单爆破
- 基于特征符模式/返回内容长度的登陆爆破
- 使用线程池进行扫描提速
- 数据库弱口令检测
- MYSQL弱口令检测
- MSSQL弱口令检测
- FTP弱口令检测
- SSH弱口令检测
- POSTSQL弱口令检测
- Telnet弱口令检测
- PHPMYADMIN弱口令检测
- 他山之石之调用hydra进行爆破
- 常见漏洞全资产覆盖式扫描器
- 自动化漏扫综合并自动化生成漏洞扫描报告
- 根据传入子域名进行全资产覆盖式扫描
- 子域名收集,对子域名进行如下扫描策略
- 网站备案信息,权重信息
- 网站相关标题,服务器类型,脚本语言
- 网站是否使用CDN,WAF
- 网站使用CMS类别
- 网站敏感信息/目录扫描/源码泄露/备份文件扫描
- 网站爬虫进行超链接获取
- SQL注入/XSS/URL跳转漏洞扫描
- 未授权访问漏洞扫描
- 自动化任务调度
- 对漏扫结果进行自动复现,截图,并生成word格式的漏洞扫描报告
- 漏扫脚本课程总结
- 编写漏扫注意事项,经验
- 扫描器构架设计与规范
- 如果获取更多POC
- 基于自动化模拟浏览器操作获取流量的被动式扫描器
- 他山之石之调用更多扫描器为你服务
Python WEB开发
课程目标:完成前端知识基础累积,熟悉数据库常用语句,熟悉Django的基础操作实现快速开发个人网站,将前课程知识点进行融汇。
- html基础
- 元素,标签,标题,样式,段落,其他标签
- css基础
- 引入样式,样式选择器,选择器分组,字体属性
- bootstrap基础
- 了解框架
- 栅格,表单,按钮,导航,字体等相关属性介绍
- mysql基础
- 数据库创建与删除
- 数据增删改查
- 数据按照条件查询
- 添加命令
- Django基础
- Django快速上手
- Django数据库操作
- Django视图与模板
- Django知识回顾做个练习
- Django表单处理
- Django模板层
- Django的cookie与session
- Django分页器
- Django使用xadmin管理后台
- Django漏扫管理系统
- 后端数据库设计
- 整合前课程中信息收集脚本,漏洞扫描脚本
- 实现添加扫描目标后,自动完成信息收集与漏洞扫描
- 添加扫描网址API开发
- 每日漏洞扫描结果自动发送到邮箱
- 生成漏洞自动报表