除开亲自挖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 模糊测试

详见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框架的内部执行过程_转载

  • 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安全学习建议

推荐书籍

  1. 丰生强的《Android软件安全与逆向分析》
  2. 姜维的《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