Bikash-Raya/Azure-Honeynet-Live-Attack-Detection-NSG-SQL-Microsoft-Sentinel
GitHub: Bikash-Raya/Azure-Honeynet-Live-Attack-Detection-NSG-SQL-Microsoft-Sentinel
该项目通过在 Azure 上构建故意暴露的蜜罐环境,结合 Microsoft Sentinel SIEM 实现对 RDP、SSH、SQL 暴力破解等真实攻击的日志采集与威胁检测。
Stars: 0 | Forks: 0
# 🍯 Azure 蜜网 - 使用 NSG、SQL 和 Microsoft Sentinel 进行实时攻击检测



**编写者:** Bikash Raya
**项目类型:** 蜜网 · 实时攻击模拟 · SOC 监控
## 📁 仓库结构
| 文件 | 描述 |
| --- | --- |
| [HoneyNet_Project.pdf](./HoneyNet_Project.pdf) | 包含截图的完整项目文档 |
| README.md | 项目概述 |
## 📋 概述
本仓库记录了一个实时 Azure 蜜网的设计与实施——这是一个故意配置为易受攻击的云环境,旨在吸引现实世界中的网络攻击者,捕获其活动,并使用 Microsoft Sentinel 作为 SIEM 来检测威胁。
该实验通过以下方式模拟真实的攻击场景:
* 🪟 **Windows 11 VM** — 暴露于 RDP 暴力破解和 SQL 攻击的蜜罐
* 🐧 **Linux VM** — 暴露于 SSH 暴力破解攻击的蜜罐
* 💥 **攻击者 VM** — 独立的 Azure VM(日本东部),用于模拟外部威胁行为者
* 🔓 **开放的 NSG** — 允许所有入站流量以最大化攻击面
* 🗄️ **SQL Server 2019** — 安装并配置审计日志,以捕获失败/成功的登录
* 📊 **Microsoft Sentinel** — 用于日志提取、丰富和检测的中央 SIEM
* 🌍 **GeoIP 监视列表** — 对攻击者 IP 地址进行地理丰富
## 🛠️ 使用的技术
* Microsoft Azure
* Microsoft Sentinel
* Azure 网络安全组 (NSG)
* NSG 流日志
* Log Analytics Workspace (LAW)
* 数据收集规则 (DCR)
* Azure Monitor Agent (AMA)
* Microsoft Defender for Cloud
* SQL Server 2019 + SSMS 20.1
* Azure Key Vault
* Azure 存储账户
* Microsoft Entra ID
* KQL (Kusto Query Language)
* Windows 事件查看器
* Linux auth.log / Syslog
## 🧪 实验组件
| 资源 | 角色 | 位置 |
| --- | --- | --- |
| Windows-VM | Windows 蜜罐 — RDP 和 SQL 攻击目标 | 澳大利亚东部 |
| Linux-VM | Linux 蜜罐 — SSH 攻击目标 | 澳大利亚东部 |
| Attacker-VM | 外部威胁行为者模拟 | 日本东部(独立 VNet) |
| LAW-RG-soc-honeynet-Lab | Log Analytics Workspace | 澳大利亚东部 |
| Microsoft Sentinel | SIEM 平台 | 澳大利亚东部 |
| Windows-VM-nsg / Linux-VM-nsg | 故意开放的 NSG | 澳大利亚东部 |
| labstorageac123 | 用于 NSG 流日志的存储账户 | 澳大利亚东部 |
| testkeyv aultbikash | Azure Key Vault | 澳大利亚东部 |
| RG-SOC-Honeynet-Lab | 主资源组 | 澳大利亚东部 |
| RG-Attacker | 攻击者资源组 | 日本东部 |
## 🌐 解决方案架构
```
[Internet / Real-World Attackers]
↓
[Open NSGs — Any/Any inbound rules]
↓
[Windows-VM] [Linux-VM]
RDP Port 3389 SSH Port 22
SQL Server 1433 auth.log
Windows Event Viewer
↓
[NSG Flow Logs → Storage Account]
↓
[Data Collection Rule (DCR) + AMA]
↓
[Log Analytics Workspace (LAW)]
↓
[Microsoft Sentinel]
↓
[GeoIP Watchlist Enrichment]
↓
[KQL Detection Queries → Alerts → Incidents]
```
## 🔓 阶段 1 — 基础设施与故意暴露
* 创建了资源组:**RG-SOC-Honeynet-Lab**(澳大利亚东部)
* 在 **lab-vnet** 内部署了 **Windows-VM** 和 **Linux-VM**
* 编辑了两个 NSG 以允许 **任何源 / 任何目标 / 任何端口 / 任何协议** 的入站流量
* 在 Windows-VM 上禁用了跨域、专用和公用网络配置文件的 **Windows Defender 防火墙**
* 这使得两台 VM 成为对整个互联网可见的实时蜜罐
## 🗄️ 阶段 2 — SQL Server 安装与审计日志记录
* 在 Windows-VM 上安装了带有混合模式身份验证的 **SQL Server 2019 评估版**
* 安装了 **SQL Server Management Studio (SSMS) 20.1**
* 配置了 SQL 审计日志记录到 **Windows 安全日志**,通过以下方式实现:
* `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security` 的注册表权限
* 使用 `auditpol` 命令启用应用程序生成的事件:
```
auditpol /set /subcategory:"application generated" /success:enable /failure:enable
```
* 设置 SSMS 服务器属性 → 登录审核 → **失败和成功的登录**
* 验证了 SQL 登录失败在 Windows 事件查看器中显示为 **EventID 18456**
## 💥 阶段 3 — 攻击模拟
在 **日本东部** 部署了一个独立的 **Attacker-VM**,并使用其自己隔离的 VNet 来模拟外部威胁行为者。
### 模拟的攻击
| 攻击类型 | 目标 | 方法 |
| --- | --- | --- |
| RDP 暴力破解 | Windows-VM | 使用错误凭据进行远程桌面登录 |
| SQL 暴力破解 | Windows-VM SQL Server | 使用错误凭据进行 SSMS 连接 |
| SSH 暴力破解 | Linux-VM | 使用无效用户名的 PowerShell SSH 登录 |
### 确认的日志
* **Windows 事件查看器 → 安全日志** — EventID 4625(RDP 登录失败),工作站:Attacker-VM
* **Windows 事件查看器 → 应用程序日志** — EventID 18456(SQL 登录失败),客户端 IP:Attacker-VM
* **Linux auth.log** — 数百次来自互联网 IP 的真实 SSH 暴力破解尝试,通过以下方式确认:
```
cat /var/log/auth.log | grep password
```
## 📊 阶段 4 — SIEM:Log Analytics 与 Microsoft Sentinel
* 部署了 **Log Analytics Workspace**:MicrosoftLogAnalyticsOMS
* 将 **Microsoft Sentinel** 添加到工作区
* 上传了 **GeoIP CSV 监视列表**(命名为:network)— 将 IP 范围映射到国家/城市以进行告警丰富
* 启用了 **Microsoft Defender for Cloud** — 启用了服务器计划,数据收集设置为 **所有事件**
* 配置了 **连续导出**,将 Defender 警报流式传输到 Log Analytics
* 创建了**存储账户**:labstorageac123,用于存储 NSG 流日志
* 为 Windows-VM-nsg 和 Linux-VM-nsg 部署了 **NSG 流日志**
* 部署了包含两个数据源的**数据收集规则 (DCR)**:
* Windows 事件日志
* Linux Syslog
* 安装了 Sentinel **内容中心**连接器:通过 AMA 获取的 Windows 安全事件、Microsoft Entra ID、Azure Activity
* 配置了转发到 LAW 的**存储账户诊断日志**
* 创建了 **Azure Key Vault**:testkeyv aultbikash
* 将测试用户添加到 **Entra ID 全局管理员** 角色以生成审计日志事件
## 🔍 阶段 5 — KQL 威胁检测
### 心跳 — 确认两台 VM 均已报告
```
Heartbeat
| summarize LastSeen=max(TimeGenerated) by Computer
| order by LastSeen desc
```
✅ 已确认 Linux-VM 和 Windows-VM 均已向 LAW 报告
### Linux 失败的 SSH 登录
```
Syslog
| where SyslogMessage contains "Failed password"
| project TimeGenerated, Computer, ProcessName, SyslogMessage
| order by TimeGenerated desc
```
✅ 已确认真实的 SSH 暴力破解尝试正在流式传输到 Sentinel
### Windows Defender 恶意软件检测
```
Microsoft-Windows-Windows Defender/Operational!*[System[(EventID=1116 or EventID=1117)]]
```
### Windows 防火墙篡改检测
```
Microsoft-Windows-Windows Firewall With Advanced Security/Firewall!*[System[(EventID=2003)]]
```
## 🎯 展示的技能
* Azure 基础设施配置(VM、VNet、NSG、存储、Key Vault)
* 网络安全组规则管理和流日志配置
* SQL Server 安装和安全审计日志配置
* Linux 管理和日志分析(auth.log、grep、Syslog)
* 蜜网设计 — 故意暴露攻击面
* 跨 RDP、SSH 和 SQL 攻击向量的攻击模拟
* Microsoft Sentinel 部署和连接器配置
* 使用 Azure Monitor Agent (AMA) 设置数据收集规则 (DCR)
* 使用 KQL (Kusto Query Language) 进行威胁狩猎和日志分析
* Microsoft Defender for Cloud 配置和连续导出
* 通过 Sentinel 监视列表进行 GeoIP 丰富
* Microsoft Entra ID 审计日志收集
* Azure Key Vault 部署和监控
## 🎯 关键要点标签:AMSI绕过, Azure, PE 加载器, 威胁检测, 红队行动, 网络安全, 蜜罐系统, 隐私保护