除开亲自挖CVE的高手,大部分小伙伴还是得知CVE编号后才开始研究对应的漏洞,所以,这里先更新下追踪CVE的渠道。
- Search CVE List -- 官方查询,不知道的面壁3天
- NVD - NIST -- National Vulnerability Database (NVD) Announcement and Discussion Lists
- CNNVD -- 国家信息安全漏洞库,有英文阅读障碍的小伙伴可以参考这里的信息。
研究导航
虽然文档导航已经很快了,但有这个目录会更加清晰明确。
Blog推荐
- 飞花堂 -- 四哥的blog,日常笔记
- 离别歌 -- phith0n 的blog,虽然更新频率不高,但都是干货
- netxfly的随笔 -- 和P神一样是安全研发大佬
- riusksk's blog -- 漏洞挖掘方向
- PansLabyrinth -- 漏洞挖掘方向
- 网络安全面试指南 -- 吴飞飞的blog
国内安全实验室
以正规公司的安全研究实验室为主,排名不分先后。
| 实验室名称 | 研究方向 | 所属公司 | 备注 |
|---|---|---|---|
| 星舆实验室 | 车联网漏洞挖掘 | 奇安信 | ***.com |
| A-TEAM | 网络实战攻击研究、攻防安全研究、黑灰产对抗研究 | 奇安信 | |
| Z-TEAM | 实战攻防演习,组织实施渗透攻击的队伍 | 奇安信 | |
| 盘古实验室 | 移动系统和应用漏洞挖掘 | 奇安信 | |
| 代码安全实验室 | 源代码与二进制漏洞挖掘 | 奇安信 | |
| 观星实验室 | 互联网应用漏洞挖掘,包括实网攻防、WEB应用安全漏洞挖掘、应急响应与攻击溯源, 以及安全工具研发(ThreatHunting工具) |
奇安信 |
ref: ***.com ***.com ***.com
漏洞挖掘
其实有很多细节的东西,在这里逐步增补内容吧!
三座大山
- 漏洞分析
- 漏洞利用
- 漏洞挖掘
漏洞分析
漏洞利用
漏洞挖掘
Fuzzing 模糊测试
REF
- 漫谈漏洞挖掘
- 技术人的修炼之道:从业余到专业
- 信安之路入坑指南
GPT安全(GPTSec)
算是AI Security的子集,因为可以预见以后这块更新会很频繁,所以单独分一个页面记录。
Terms
- GPT: Generative Pre-trained Transformer 生成式预训练Transformer
- AIGC: Artificial Intelligence Generated Content 人工智能生成的内容
- LLM: Large Language Model 大型语言模型
- Embedding: 是一种专业术语,大致的意思是将某个数据内容向量化的过程。
实质上,Embedding就是一串多个具有特殊意义的浮点数组成的数组。如[0.2,0.5]和[0.6,0.8,0.9,...,0.6]等,因前者数组有两个元素,因此也叫二维Embedding,后者有多个元素,也叫多维Embedding。
TODO
- 我是如何用GPT自动化生成Nuclei的POC
- ChatGPT+Langchain+Nuclei Chat automates Nuclei template generation
- 从0实现网络安全“小”模型.md
REF
- GPTSecurity 一个开源分享的项目
- security-tools-datasets
- Awesome Security Prompts
- Security Tools
- 如何用GPT自动化生成Nuclei的POC
使用Gradio构建生成式AI应用
- 使用Gradio构建生成式AI应用2:NLP 任务接口
- 精华笔记 - 吴恩达 x Hugging Face《使用Gradio构建生成式AI应用》
- 基于Gradio的快速搭建AI算法可视化Web界面部署教程
样本分析
记录下威胁情报和攻击数据的样本分析通用方法,以便自己随时复习。
主要分析思路
木马类
木马是一类很特别的软件,初步分析时没必要搞清楚它所有的细节。(但想深入分析肯定得搞清楚得)
木马哪些地方特别有价值
- 木马的“三无”:
无进程,无文件,无网络连接 - 对应技术:
木马的启动技术,存储方式,传输技术,即是说搞清楚木马的启动方式,花式存活方式,如何突破网络限制连接C2。
病毒木马的初始化操作步骤
大多数病毒木马在成功植入用户计算机之后,在执行恶意代码之前,会进行初始化操作。
主要为3个技术点:运行单一实例、DLL延迟加载、资源释放。
Web类
思考题:没有POC、没有EXP的时候如何挖掘漏洞?
代码对比(对比官方的源码改动)
代码审计
1.语言基础
2.常用的第三方审计工具 - Java:Fortify、Checkmarx - PHP:Seay源代码审计系统
污点追踪
深入漏洞挖掘避不开这个,但需要打好二进制基础
一般信息
1.常用查IP地址归属地
由于运营商原因,ip归属地应当对比。
- ***.com
- ***.com
- ping.pe/ping.php - 瓦工推荐IP检测,备用
2.各机构辅助查询
- 微步在线
- 微步云沙箱
- 奇安信ALPHA威胁分析平台
- virustotal
- virscan
推荐书目
- Windows黑客编程技术详解 - 有讲解病毒和木马的各类实现技术
推荐线上资源
- 恶意代码分析基础技能表
各种分析参考
- 分析:Linux watchdogs感染性隐藏挖矿病毒入侵还原
安全研究威胁情报
举例
- 威胁快讯:Log4j漏洞已经被用来组建botnet,针对Linux设备
Term
IoC
IOC, Indicators of Compromise, 感染指标,也叫IOC情报。
情报来源
国内外各大安全机构都有自己的威胁情报引擎,对于普通安全研究人员来说是信息收集的首选。
| URL | Comments |
|---|---|
| threat-intelligence | 专注于收集会释放威胁情报的网站 |
| APTnotes | 公开的APT报告,涵盖08到19年,近年来未更新 |
| 微步在线 | 微步在线威胁情报社区 |
安全研究代码审计
Java代码审计
0.配置环境是第一道坎儿 - 如何利用Maven构建项目? - 如何把项目部署到Tomcat中然后启动? - 如何反编译JAR包看源码? - 如何进行动态调试?
1.大量复现并分析已经曝出的漏洞,高质量的漏洞分析是提升自己技能的最简单、最直接的方式。
- Java代码审计注重知识的积累,建议多分析大型的开源项目漏洞,如:Struts2、Jenkins、FastJson等。
- 学习利用链,如分析要ysoserial中的反序列化利用链、JNDI利用流程等。
- 分析过程中多问为什么,尽力解释清楚整个漏洞的调用链,尝试动手写出自己的poc。
- 进行大量漏洞分析时,要让自己的思路跳出过于细节的执行流程,从整体层面去思考框架是如何实现这个流程的,这个过程在框架中到底发生了什么,自己能否将执行流的每个步骤都解释清楚。
2.深入理解Java的运行机制和设计模式。
重复上述过程,量变引起质变。
经典漏洞Struts2
REF:
-
从零带你看struts2中ognl命令执行漏洞
-
Struts2 漏洞exp从零分析
下面2个微信打开才能看到图片
-
S2-057(CVE-2018-11776)流程分析
-
浅析OGNL的攻防史
Struts2框架接收请求后的内部执行过程(一图胜千言):
- Struts2学习(1):Struts2框架结构详解
- struts2请求过程源码分析
- struts2详解系列(6篇)
Java代码审计
- Java代码审计汇总系列(一)——SQL注入 -- 这个系列文章真的不错
- Spring Boot Vulnerability Exploit Check List -- SprintBoot打点必备
PHP代码审计
Python代码审计
- Python中从服务端模板注入到沙盒逃逸的源码探索 (一)
DDoS和Botnet
本来想分开写的,但考虑到实际分析中两者关系比较紧密,目前先记录到一起。
Botnet僵尸网络
DGA随机性
@宫一鸣
搞botnet的想必都知道DGA,已有的DGA实现基本都依赖日期这种变化但可预测的变量作为输入来生成域名,有时会结合种子,
但我们跟了1年多的一个名为 #Orchard# 的botnet家族最近开始使用中本聪的创世比特币账号交易信息来作为DGA生成依据,这个因为交易的不确定跟日期比就很难预测了。
这招算是DGA方面的一个小“创新”吧,我们文章里面做了详细分析,并且很厚道的给出了DGA算法原理和实现代码,感兴趣的可以戳戳: ***.com
文章有点长,需要点耐心,因为除了DGA,还介绍了这个 #Orchard 家族过去1年多的3个版本发展,当然还有跟其它维度数据的碰撞,全是干货。
数据安全
Data Security 数据安全
推荐阅读
其实各大厂在安全会议上的PPT是不错的学习材料。
- 中华人民共和国数据安全法
- 《数据安全架构设计与实战》 -- 着重讲解数据安全设计的书籍,虽然先于
数据安全法出版,但是依然值得阅读。
物联网安全
物联网(The Internet of Things,简称IOT)是指通过 各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。
智能家庭设备
车载网络
USB设备开发
- USB 设备开发:从入门到实践指南(一)
- USB 设备开发:从入门到实践指南(二)
- USB 设备开发:从入门到实践指南(三)
- USB 设备开发:从入门到实践指南(四)
BadUSB
- 物理黑客工具 Bad USB 制作教程 - 用Raspberry Pi Pico制作BadUSB
- pico-ducky -- 制作教程
- 文件下载地址 ***.com/u/hMLv3HQe
REF
- 物联网安全Wiki - Tide安全团队
- IoT安全测试指北
- RouterSploit
- 一些经典IoT漏洞的分析与复现(新手向)
- 从零开始复现 DIR-815 栈溢出漏洞
- 物联网设备安全测试指南
- IoTSecurity101
- RTSP协议分析
云原生安全
一般多指云原生安全(cloud native security)
靶场
- Red Team K8S Adversary Emulation Based on kubectl
- Metarget 主要用于快速、自动化搭建从简单到复杂的脆弱云原生靶机环境。Metarget的设计理念和技术目标
REF
- 云原生安全白皮书中文版
- 云原生安全:攻防实践与体系构建
- 里应外合:借容器root提权
- k0otkit: Hack K8s in a K8s Way 备用连接
区块链安全
常见术语
REF
- Knowledge Base 慢雾安全团队知识库
- 区块链安全入门笔记
- 区块链黑暗森林自救手册
- 智能合约安全分析和审计指南
Android安全
学习路线
- Android安全学习建议
推荐书籍
- 丰生强的《Android软件安全与逆向分析》
- 姜维的《Android应用安全防护和逆向分析》
app测试
adb常用指令
# 连接夜神模拟器
adb connect 127.0.0.1:62001
# 连接逍遥模拟器
adb connect 127.0.0.1:21503
# 查看连接设备
adb devices
# 进入shell (未root的设备可能会没有权限)
adb shell
# 从移动设备上下载文件到本地电脑
adb pull /tmp/a.txt c:\Downloads\a.txt
# 上传本地电脑文件到移动设备
adb push c:\Downloads\b.txt /data/b.txt
推荐视频
- app与小程序安全测试
- 安卓逆向这档事 - 52pj的,比较全面,有文章和视频配套
- Android逆向学习
浏览器安全
REF
- UAF之CVE-2012-4969漏洞分析 推荐学习,这个复现流程和报告模板都很好。
- v8漏洞学习之issue1195777&issue1196683
API安全
API Security API安全
推荐阅读
- API安全技术与实战
- 如何利用API对AI发动攻击?
Python安全
Python因为简单易学的原因,使用者众多(虽然其中使用Python开发黑客工具写PoC/Exp的比例更大),日常关注度很高。
而近年来,Python内置库和基于Python开发的框架都爆出过不少漏洞,值得关注和学习。
资讯
- Python Security -- Python官方记录安全问题修复的参考
CVE
CVE-2020-26116: http.client: HTTP Header Injection in the HTTP method
JS安全
js逆向
Tools
- AST Explorer
ref
- 《反爬虫AST原理与还原混淆实战》总结
C语言
以前是没概念,现在才知道在安全开发领域,C语言的压倒性地位。
日常Linux开发,但偶尔也要在Windows上调试,故留此笔记备用。
常见问题
linux平台交叉编译Windows程序
ref: linux平台交叉编译Windows程序
文章编译测试环境是Ubuntu18.04,本人实际用Kali2022.2也是正常可以做交叉编译的。
1.安装相关工具
sudo apt-get update
sudo apt-get install mingw-w64 mingw-w64-tools mingw-w64-i686-dev mingw-w64-x86-64-dev
2.装完之后写个简单的helloword.c测试是否能正常交叉编译
i686-w64-mingw32-gcc -o hello.exe hello.c
已试过将exe放到windows能正常运行。
3.安装wine以便能在Linux上运行.exe
# 现在默认安装的是wine64
apt-get install wine
# 要安装wine32需要执行这个语句
dpkg --add-architecture i386 && apt-get update && apt-get install wine32:i386
PS:安装完执行还是报错orz