2020-2-29

优秀的人,不是不合群,而是他们合群的人里面没有你

最近沉迷魔兽世界太久,自我察觉有些松懈,趁着清醒,抓紧立个计划,警醒监督。

扫描器研发

关于扫描器,其实我是一个特别懒的人,啥都想自动化一键操作。一直以来系统性的扫描器都是贯穿着一个思想,就是配置环境后开启,自动新增相关资产,然后自动漏扫模块,信息收集模块加载。扫描结果处理后,自动生成报表。

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基础薄弱的同学,想要快速上手开发系列的工具,用精简的课程阐述每个知识点与其应用。

课程目录

讲课方式

每次开课都会把当前课程分成五大类别依次学习,分别是:

  1. 课程目标:当前课程需要完成的目标内容
  2. 核心知识:目标内容的常见核心用法,这里的核心知识必须要背下来
  3. 拓展知识:目标内容的不常用方法,不用刻意背它的用法,但是心里一定要有数,知道有这个用法
  4. 应用场景:学完本节课程你可以去做什么事,完成什么样的需求
  5. 总结归纳:对当前课程的梳理总结

对于开发实战课程,也是分成四大类去一步一步的解读实现,分别是:

  1. 思维流程:每次先对实战项目进行分析,明确他的功能
  2. 模式设计:明确需求功能后,考虑自身学习到的知识点,使用哪些知识点实现哪些功能,怎么实现,然后画上流程图
  3. 功能拆分:对每个功能先拆开,进行实现,然后合并在一起
  4. 优化代码:考虑到项目以后的可维护性,怎么写与设计更加易读,或者加上锦上添花的功能比如日志,带颜色的输出,版本号之类

每个实战项目都是基于之前章节的知识点实现的,所以当学完一些知识点后可以直接去看简单的实战课程。

关于安全漏洞,也是分成四大类一步一步的学习,分别是:

  1. 漏洞原理:漏洞是如何生成的,明确原理
  2. 靶场复现:对漏洞进行复现实战
  3. 归纳总结:如何发掘相关漏洞与总结经验
  4. 漏扫编写:在分析漏洞的成因后,尝试使用python写出简单的相关漏洞扫描验证

课程详情

Python 安全开发基础

课程目标:熟练运用python用法,了解python的数据类型与数据结构。
熟练运用条件判断与编写函数,对系统内置库能熟悉运用,对requests库和正则表达式非常熟悉。
能快速套用多线程/多进程/多进程协程模板完成高速并发操作。

  1. 初识python与配置环境
    • 认知python
    • 安装python3.6
    • 安装pycharm
  2. 输出与数据类型
    • 使用print输出内容
    • 熟悉字符串类型
    • 熟悉整数类型
    • 熟悉字符串与整数类型的操作
  3. 认识数据存储结构
    • 如何定义一个变量
    • 掌握 input 输入
    • 熟悉 for 循环数据
    • 熟悉列表的功能与常用操作
    • 熟悉元组的功能与常用操作
    • 熟悉集合的功能与常用操作
    • 熟悉字典的功能与常用操作
  4. 条件判断控制流程
    • 掌握条件运算符 ==,>,<,in,not
    • 掌握判断语句 if,elif,else
  5. 数据的循环获取
    • 掌握for循环与while循环
    • 掌握 continue,break,pass的区别
  6. 常用内置模块
    • 掌握os模块常用功能
    • 掌握sys模块常用功能
    • 掌握time模块常用功能
    • 掌握random模块常用功能
  7. 文件的读写操作
    • 掌握文件打开,读取的语法
    • 掌握文件写入的语法
  8. 函数式编程与异常处理
    • 掌握函数的定义
    • 掌握函数的规定语法
    • 掌握函调用
    • 掌握函数的参数
    • 掌握函数的返回值
    • 掌握异常处理
  9. 基础知识练习
    • print+input+if+while+判断符号>>>猜数字游戏
    • random+print+while+判断符号>>>彩票概率游戏
    • open+readlines+def函数>>>卖包子游戏
    • 批量获取域名对应ip并保存>>>综合练习
  10. 网络请求库requests
    • 掌握安装第三方模块的方法
    • 掌握requests库的常用方法与返回值
    • 掌握requests库的相关参数使用
    • 掌握requests下载保存不同类型的文件
  11. 正则表达式
    • 掌握正则表达式的简单用法
    • 掌握正则表达式的万金油用法
  12. 便捷语法特性
    • 三元运算符
    • 列表推导式
    • 上下文管理
    • 匿名函数
    • 装饰器
  13. 面向对象编程
    • 了解面向对象编程与面向过程编程区别
    • 类的基本用法
    • 类与实例
    • 调用类的方法
    • 类的特性
  14. 多线程与队列
    • 明白多线程的含义
    • 掌握多线程的简单用法
    • 明白队列的含义
    • 掌握队列的用法
    • 多线程结合队列完成生产者消费者模型
    • 实现代理IP的获取并且验证保存
    • 多线程与多进程的区别
  15. 并发编程
    • 了解并发与并行
    • 了解同步与异步
    • 了解阻塞与非阻塞
    • 掌握线程池的使用
    • 掌握两种进程池的使用
    • 使用线程池批量扫描主机开放端口
    • 了解协程asyncio+aiohttp的基础用法与套用模板
    • 了解多进程协程aiomultiprocess充分利用CPU的基础用法与套用模板
  16. 打包exe
    • 将py打包封装成exe

Python 编写爬虫脚本

课程目标:完成爬虫的基础入门,掌握基础的反爬虫策略。
运用多线程提高爬虫的速度,熟悉requests库的用法,以及其他从网页提取数据的库。

  1. 了解爬虫与伪装请求头
    • 了解爬虫的含义
    • 如何伪装成浏览器
  2. 了解BeautifulSoup的用法
    • 安装第三方模块
    • 使用该模块获取数据的多种方式
  3. 了解selenium的用法
    • selenium介绍
    • selenium自动化操作浏览器
    • selenium判断是否出现弹窗(后续复现XSS)
    • selenium截图操作(后续自动化生成漏洞报表)
  4. langzi.fun博客文章爬虫练习
    • 获取博客文章的标题与网址
    • 熟练掌握爬虫思考的基本模式
  5. 代理IP采集与验证
    • 多线程与队列的熟悉使用
    • 正则表达式提取数据的熟悉使用
    • requests库的温习
  6. 补天厂商爬虫
    • 获取补天厂商的标题(后续批量采集)
    • 正则表达式提取数据的熟悉使用
  7. seebug爬虫
    • 获取漏洞的标题的来源(后续完善自己的漏洞库)
    • 熟悉爬虫的思考模式
    • 了解如何伪装成浏览器绕过反爬虫
  8. zoomeye爬虫
    • 了解使用网站提供的API获取数据
    • 了解requests返回的json()格式
    • 爬虫的综合练习
  9. fofa爬虫
    • 爬虫的综合练习
  10. 站长之家爬虫
    • 爬虫的综合练习
    • 查询网址的权重,备案信息(后续完成信息自动收集脚本)
  11. 批量反查IP爬虫
    • 爬虫的综合练习
    • 批量获取IP主机部署的网站(后续完成信息自动收集脚本)
  12. 爬虫下载图片,视频,音频与压缩包
    • 复习requests下载大文件,不同文件的方法

Python 开发信息收集脚本

课程目标:熟练使用爬虫获取网页数据,对网站的信息收集能实现自动化处理,对大批量的主机IP资产快速扫描获取资产详情,对资产数据实现可视化界面展示以及自动生成数据报表。

  1. 获取网页的信息
    • 网页的编码问题
    • 网页内容中获取网页的标题,网站使用的脚本语言
    • 请求头中获取网站的服务器类型,使用的脚本语言
  2. 获取网页的备案,权重信息
    • 站长之家爬虫获取
    • 爱站网爬虫获取
  3. 获取网站是否使用CDN,WAF
    • 了解CDN,WAF的含义
    • 如何识别网站是否使用CDN
    • 如何识别网站是否使用WAF
  4. 获取主机IP的相关信息
    • 获取IP所在地信息
    • 获取IP开放端口信息
    • 获取IP开放端口运行的服务
    • 通过fofa查询
  5. 百度关键词搜索
    • 爬虫的温习
    • 批量采集关键词
    • 绕过百度的反爬虫
  6. 获取网页中全部链接与友链
    • 后期实现CMS友链无限识别采集
    • 后期sql注入,xss等验证的超链接
    • 如何从配置文件中加载扫描配置
  7. 子域名采集
    • 子域名爆破
    • 接口采集
    • 搜索引擎搜索
    • 网页内容爬行获取子域名
  8. 目录扫描/敏感信息/探针文件
    • 目录扫描
    • 404页面识别的方式
    • 敏感信息泄露扫描
    • 探针文件扫描
  9. CMS指纹识别
    • 通过本地指纹库进行识别
    • 通过相关接口查询
  10. 结合nmap+masscan快速扫描主机资产
    • 了解nmap/masscan功能与常用方法
    • 安装第三方库管理扫描
    • 常用扫描策略方法整理
  11. 网页信息被动式搜集综合脚本
    • 结合之前课程进行知识温习整理
    • 综合相关插件集成一体化脚本
    • 获取网站的标题,服务器类型,脚本语言
    • 获取网站是否使用CDN,WAF
    • 获取网站的权重信息,备案信息
    • 获取网站的相关资产子域名
    • 获取网站的超链接网址
    • 获取网站的CMS信息
    • 获取网站的敏感信息路径
  12. 主机IP资产扫描综合脚本
    • 结合之前课程进行知识温习整理
    • 综合相关插件集成一体化脚本
    • 获取IP所在地信息
    • 获取IP开放端口信息
    • 获取IP开放端口运行的服务
    • 获取IP上部署的网站信息
    • 通过反查IP获取部署网站信息
    • 通过fofa查询获取IP详细资产
    • 资产数据可视化
    • 资产生成报表

Python 开发漏洞扫描脚本

课程目标:完成漏洞原理认知与检测漏洞脚本编写,了解黑盒扫描的方法以及常用脚本编写思路,熟练运用线程池/协程/多进程协程实现高并发扫描。

  1. 主流CMS的漏洞复现与POC/EXP编写
    • POC/EXP讲解
    • 织梦CMS漏洞环境搭建与POC/EXP编写
    • ThinkPHP漏洞环境搭建与POC/EXP编写
  2. SQL注入检测
    • SQL注入靶场简单讲解SQL注入原理
    • 基于页面报错的SQL注入简单检测脚本编写
  3. 调用SQLMAP实现批量自动化扫描并格式化扫描结果
    • 调用sqlmap进行注入检测,判断是否存在注入
    • 使用正则表达式对sqlmap扫描结果进行清洗
    • 将sqlmap扫描与清洗结果整合到函数
    • 修改sqlmap某个函数参数实现全自动化检测注入并且获取数据库信息
    • 结合前课程实现获取网页超链接进行批量注入检测
  4. XSS扫描检测
    • XSS靶场简单讲解XSS原理
    • XSS盲扫的经验
    • XSS检测脚本编写
  5. 利用selenium复现XSS结果并截图生成漏洞报表
    • selenium判断网页是否出现弹窗
    • 开启截图线程进行网页截图
    • 生成word格式漏洞报表模板
  6. 任意URL跳转扫描检测
    • URL跳转靶场讲解URL跳转原理
    • URL跳转脚本编写
  7. XXE漏洞扫描检测
    • XXE靶场讲解XXE注入原理
    • XXE扫描脚本编写
  8. 备份文件泄露扫描/源码泄露扫描
    • GIT/SVN源码泄露/网站备份文件介绍
    • GIT/SVN源码泄露扫描策略
    • 网站备份文件扫描策略
    • 广度优先之批量扫描胜于单个扫描
    • 多进程结合协程实现超高速扫描
  9. 未授权访问漏洞POC检测编写
    • Redis未授权访问漏洞脚本编写
    • Mongodb未授权访问漏洞脚本编写
    • FTP匿名访问漏洞脚本编写
    • Elasticsearch未授权访问漏洞脚本编写
    • Docker未授权访问漏洞脚本编写
    • CouchDB未授权访问漏洞脚本编写
    • Jenkins未授权访问漏洞脚本编写
  10. WEBSHELL爆破/网页登陆表单爆破
    • 基于特征符模式/返回内容长度的登陆爆破
    • 使用线程池进行扫描提速
  11. 数据库弱口令检测
    • MYSQL弱口令检测
    • MSSQL弱口令检测
    • FTP弱口令检测
    • SSH弱口令检测
    • POSTSQL弱口令检测
    • Telnet弱口令检测
    • PHPMYADMIN弱口令检测
    • 他山之石之调用hydra进行爆破
  12. 常见漏洞全资产覆盖式扫描器
    • 自动化漏扫综合并自动化生成漏洞扫描报告
    • 根据传入子域名进行全资产覆盖式扫描
    • 子域名收集,对子域名进行如下扫描策略
    • 网站备案信息,权重信息
    • 网站相关标题,服务器类型,脚本语言
    • 网站是否使用CDN,WAF
    • 网站使用CMS类别
    • 网站敏感信息/目录扫描/源码泄露/备份文件扫描
    • 网站爬虫进行超链接获取
    • SQL注入/XSS/URL跳转漏洞扫描
    • 未授权访问漏洞扫描
    • 自动化任务调度
    • 对漏扫结果进行自动复现,截图,并生成word格式的漏洞扫描报告
  13. 漏扫脚本课程总结
    • 编写漏扫注意事项,经验
    • 扫描器构架设计与规范
    • 如果获取更多POC
    • 基于自动化模拟浏览器操作获取流量的被动式扫描器
    • 他山之石之调用更多扫描器为你服务

Python WEB开发

课程目标:完成前端知识基础累积,熟悉数据库常用语句,熟悉Django的基础操作实现快速开发个人网站,将前课程知识点进行融汇。

  1. html基础
    • 元素,标签,标题,样式,段落,其他标签
  2. css基础
    • 引入样式,样式选择器,选择器分组,字体属性
  3. bootstrap基础
    • 了解框架
    • 栅格,表单,按钮,导航,字体等相关属性介绍
  4. mysql基础
    • 数据库创建与删除
    • 数据增删改查
    • 数据按照条件查询
    • 添加命令
  5. Django基础
    • Django快速上手
    • Django数据库操作
    • Django视图与模板
    • Django知识回顾做个练习
    • Django表单处理
    • Django模板层
    • Django的cookie与session
    • Django分页器
    • Django使用xadmin管理后台
  6. Django漏扫管理系统
    • 后端数据库设计
    • 整合前课程中信息收集脚本,漏洞扫描脚本
    • 实现添加扫描目标后,自动完成信息收集与漏洞扫描
    • 添加扫描网址API开发
    • 每日漏洞扫描结果自动发送到邮箱
    • 生成漏洞自动报表
坚持原创技术分享,您的支持将鼓励我继续创作!
------ 本文结束 ------

版权声明

LangZi_Blog's by Jy Xie is licensed under a Creative Commons BY-NC-ND 4.0 International License
由浪子LangZi创作并维护的Langzi_Blog's博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Langzi_Blog's 博客( http://langzi.fun ),版权所有,侵权必究。

0%