# 章节1：课程介绍



# 【免责声明】

因为该课程是 2 年多前以前编写的，有些内容现在看会稍显过时，并且那时候能力也不比现在。话虽如此，因为高度体系化，我还是有信心比很多同类课程的教材更全面和通透的。

此外不接受批评和建议，不是因为我自大或者玻璃心，而是因为我不会再对其进行更新，维护，纠错了。

教材是有配置靶场的，但目前只能作为教材和操作手册，读者还实操不了。不过我用immersive labs(无需硬件，一人独享靶场)复刻了这个靶场，之后可以考虑出售靶场访问。

[![image.png](https://raven-medicine.com/uploads/images/gallery/2025-04/scaled-1680-/dMZVGOpxeuzhJb0H-image.png)](https://raven-medicine.com/uploads/images/gallery/2025-04/dMZVGOpxeuzhJb0H-image.png)

# 课程规划

## **课程规划**

我们一起看一下该课程的章节内容规划，从第2章开始，本课程正式进入技术部分：

#### **章节2：C2基础设施搭建** 

VPS选择  
域名与证书选择  
C2的选择  
C2侧写  
使用Azure CDN实现域前置  
Azure函数应用转发器  
Azure API管理服务转发器  
课程所用C2服务器配置  
【旧版】反向代理  
课后作业

#### **章节3：外部侦查** 

目标站点与子域名  
公开服务  
OSINT信息搜集  
子域名接管  
邮件服务器安全  
社会工程学信息搜集  
案例分析 Chater Communication 电信公司  
课后作业

#### **章节4：初始入侵** 

利用公开exp   
利用常见web漏洞   
代码审计突破边界   
配置不当的网络服务  
配置不当的云设施   
社会工程学攻击   
课后作业

#### **章节5：本地侦查以及特权提升** 

本地侦查思路  
敏感文件  
保存的凭证   
服务提权  
AlwaysInstallElevated提权  
SeImpersonatePrivilege提权  
UAC绕过  
CVE漏洞提权   
安全控制枚举  
课后作业

#### **章节6：本地持久化** 

计划任务  
启动与登陆出发  
服务  
DLL劫持与代理  
Linux 持久化  
其他方法

#### **章节7：域侦查** 

历史CVE漏洞  
用户与组  
主机  
OU与GPO  
内部服务访问  
域信任  
使用 SharpHound 枚举  
在 Linux 上的枚举  
DACL  
Kerberos 委派  
ADCS  
会话、进程与令牌  
课后作业

#### **章节8：当前域的利用** 

Kerberos认证与利用  
Kerberos委派的利用  
MSSQL的利用  
ADCS的利用  
GPO的利用  
DACL的利用历史  
CVE 漏洞的利用  
课后作业

#### **章节9：Windows凭证理论** 

NTLM认证  
SAM 安全账户管理器  
LSA 机密  
LSASS 本地安全机构子进程  
PPL  
Credential Guard 凭据保护  
域缓存凭证  
DPAPI 数据保护应用接口  
GPP 密码  
NTDS.DIT  
Windows 认证理论  
哈希传递 PASS THE HASH  
密钥传递 OVERPASS THE HASH  
票据传递 PASS THE TICKET  
LAPS 本地管理员密码解决方案  
gMSA 组托管服务密码  
课后作业

#### **章节10：代理与跳板** 

Socks代理  
端口转发  
多重跳板  
LLMNR中毒与中继攻击  
课后作业

#### **章节11：横向移动** 

PsExec  
WinRM  
DCOM  
WMI  
SSH劫持  
RDP劫持  
VNC  
第三方应用  
课后作业

#### **章节12：DevOps** 

Ansible  
供应链攻击  
课后作业

#### **章节13：支配域与森林** 

DCSync  
黄金票据  
钻石票据  
跨域理论  
双向信任  
入口信任  
出口信任  
AdminSDHolder  
万能钥匙  
恶意认证包  
黄金证书攻击  
课后作业

#### **章节14：恶意软件开发基础**

Windows架构、API 与编程调用  
PE文件  
动态链接库文件  
进程与线程  
x64汇编  
WinDBG使用  
Shellcode编写 (一)  
Shellcode编写 (二)  
课后作业

#### **章节15：安全控制突破** 

<div class="pointer-container" id="bkmrk-%C2%A0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="复制链接" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>应用程序白名单  
约束语言模式  
杀毒软件与EDR原理  
反病毒扫描接口  
Windows事件追踪  
父进程欺骗  
沙箱检测  
进程与线程线程操纵  
反射式PE加载  
Hooking  
直接与间接syscall  
编写规避性载荷  
案例分析：CobaltStrike绕过检测  
案例分析：从LSASS.EXE导出凭证  
案例分析：Word宏绕过检测  
案例分析：APT的初始访问TTP  
课后作业

### **概述**

第 2 章节会讲解如何搭建 OPSEC 安全 的 C2 基础设施，避免在互联网上被威胁猎人给追踪到。我会从选择VPS 厂商、证书、域名开始，到使用 Azure 的多项云服务搭建看起来可信安全的基础设施。

在第 3 章，我们会学习如何进行外部信息搜集。这时候，我们已经有了一个目标企业了，并且掌握着一些信息，可能是主域名，可能是 IP 地址段，可能是公司名等。利用各种手段，将有限的信息扩大到足够我们发起一场入侵。

在第 4 章，我们会讨论各种常见的突破边界的方法与手段，即从外部网络打进企业内部网络，方法多种多样。

在第 5 章，假设我们已经成功突破了边界，获得了第一个 shell，无论是普通用户还是特权用户权限，我们下一步怎么做？本地侦查是十分重要的。

在第 6 章，我们会学习一些主机本地持久化的方法，这是个抛砖引玉，因为持久化的方法可以更加有创意且层出不穷。为什么要实现主机持久化呢，假如我们是通过社会工程学来突破边界的，那我们很难用同一种方法再次突破。

在第 7 章，我们会讨论如何去枚举当前主机所在的域网络。95% 的前 500 强企业都有部署 Active Directory，因此其自然是重点攻击对象。

在第 8 章，我们会就枚举所得到的信息进行充分利用，利用历史漏洞或者不当配置进行域渗透。

在第 9 章，我们会讨论 Windows 凭证相关的话题。凭证，是在行动中的重点战利品，因为凭证与权限是几乎直接挂钩的，但是，要怎么尽可能多地发现与利用呢？

在第 10 章，我们会讲述代理与跳板技术，企业网络中往往包含多个子网以及存在网络隔离的情况，我们可能需要在限制性的环境下进行后续的行动。

在第 11 章，我们会讲解常见的横向移动的技术和技巧，也包括 Linux 平台的。

第 12 章会涉及 DevOps 的利用，如果我们能污染 DevOps 的供应链，能带来严重的影响，从而导致大量主机沦陷。

在第 13 章，假定我们已经拿下了至少 1 个域了，接下来要做的是拿下更多的域与森林，蔓延我们的进攻之火。同时，保持对沦陷域的持久访问与特权，

第 14 章，我们开始学习恶意软件开发基础。作为红队成员，一味依赖现成工具会让我们处于被动之中，因此我们需要动手去开发解决特定需求。

在第 15 章，我们将利用第 14 章中所教授的基础来反制与规避可能遇到的安全控制措施，包括对杀毒软件的对抗。

# 师生交互与问题答疑

## **师生交互**

课堂内外，师生交互是重要的组成部分。在课堂中，能让我了解学生的实时学习状态：当前内容学生是否能跟上、难度过渡是否平滑、当前内容学生掌握程度等。在课后时间，能让我了解学生的课后学习规划：是否有持续学习、学习中遇到了哪些困难、当前状态是亢奋还是懈怠等。

为了能够让交互更加高效，以下是课堂内外的一些建议：

### **课堂中**

一堂课市场 2 小时，即 120 分钟。绝大部分时候是我在讲新课，因为课程的进度是需要得到时长保证的。但在讲课过程中，如果学生有任何疑问或者想要补充的，可以在 **Zoom 聊天框**发送全体信息，或者**语音**提醒我。有的时候，我会布置课堂任务，会分配 5-10 分钟，之后询问进展与成果。

一节课的结尾阶段，我会预留 5 分钟左右全体性地询问掌握情况以及解答问题。如果我没有能帮助当场解决，会在课后研究学生的问题，并在群里或者私聊该学生进行跟进与解答。

### **课后**

在每节课结束之后，学生往往能有新的**课后作业**去练习以用于巩固，而且**理解与消化课堂中的教学**也需要时间。根据第一期中较为勤奋积极的同学的反馈，每周往往需要**多个小时**来理解新的教学内容、阅读补充材料、完成课后作业。也就是说，如果想要较好地吸收与利用该课程的内容，是需要花较多时间的，如果想要能追上一周一次的教学进度而不掉队，是会感受到一定的压迫感。

靶场是练习学习到的知识的重要资源，与挑战型靶场的单一攻击路径不同，为了容纳尽可能多的攻击手法，靶场的攻击路线是多种多样且相互交织的，学生的目标不是拿到域控制器，而是尝试每一种可能的攻击路线。考虑到靶场比较庞大，如果认为自己遇到了 BUG 或者错误，请通知我，我会对靶场进行干净快照恢复。

课后时间，大家可以通过私聊、QQ 群、微信群与我或其他学员进行讨论与请教。我很欣赏勤奋主动的学生，对于被请教的问题，看到消息后，我在看到后会尽可能能解释到让学生理解。为了让提问更加高效，以下是一点小建议：

1\. 能尊重彼此的隐私与生活。对于我来说，我看到了就会处理与回复，不存在故意视而不见。

2\. 问题尽可能具体化。我不介意被问所谓简单的问题，不过对于能轻松 Google 到的问题，还是尝试搜索一下看看。善用搜索、甄别资源等能力，是我们网络安全人员的重要软技能之一。

### **课前**

建议在每周上课前，能花一些时间进行充分预习，包括但不局限于：提前阅读教材、下载所需工具、回忆前置知识点。

# 资源访问

## **资源访问**

本课程配套了相应的资源，不仅包含了教材，还有一套自治的靶场。靶场具有 5 个域，总计 13 台主机，共同模拟了一家虚构制药公司 Raven Medicine (渡鸦制药)。其中，个别服务器对外网开放特定端口与服务。

### **域与主机分布**

以下是5个域以及域内主机的分布：

#### **prod.raven-med.local**

- web01.prod.raven-med.local (边界1)
- file01.prod.raven-med.local
- srv01.prod.raven-med.local
- dc01.prod.raven-med.local

#### **raven-med.local**

- mon01.raven-med.local
- dc02.raven-med.local

#### **med-factory.local** 

- cert01.med-factory.local
- dc03.med-factory.local

#### **med-deal.local**

- srv02.med-deal.local
- dc04.med-deal.local

#### **white-bird.local**

- web02.white-bird.local (边界2)
- dev01.white-bird.local
- dc05.white-bird.loca

## **域信任**

**med-factory.local** 信任 **raven-med.local**

**raven-med.local** 信任 **white-bird.local**, 并且 **white-bird.local** 信任 **raven-med.local**

**med-deal.local** 信任 **med-factory.local**

**white-bird.local** 信任 **med-deal.local**

### **外部突破口**

考虑到服务器有安全产品保护着，所以不要轻易扫描主机以及应用。下文提供了从外部突破的入口，也正好省去了大家扫描主机的时间

ftp://raven-medicine

[http://raven-medicine.org](http://raven-medicine.org)

[http://raven-medicine.org:3000](http://raven-medicine.org:3000)

[http://raven-medicine.org:8090](http://raven-medicine.org:8090)

[http://white-bird.org:8080](http://white-bird.org:8080)

其中 raven-medicine.org 服务器对外运行着 FTP 服务，以及 3 个 Web 应用。white-bird.org 服务器对外只开放 1 个Web应用。虽然鼓励学生自行探索这些对外服务都是什么样的，我依旧在这里简单描述一下这些服务的类型和作用。

FTP 服务：Raven Medicine 公司配置不当的网络服务，不应当被暴露在公共网络

[http://raven-medicine.org](http://raven-medicine.org) 是 Raven Medicine 公司的主页，一个 PHP 站点

[http://raven-medicine.org:3000](http://raven-medicine.org:3000) 是一个基于 NodeJS 的内部聊天应用，似乎也不应该暴露在公开网络

[http://raven-medicine.org:8090](http://raven-medicine.org:8090) 是基于 noVNC 的火狐浏览器 Kiosk 模式

[http://white-bird.org:8080](http://white-bird.org:8080) 是一个基于 .NET 的数据库查询应用