Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
BlueTeam.Lab — Blue Team-Erkennungslabor erstellt mit Terraform und Ansible in Azure. | Kitploit
Tools/GitHubGitHub/op7ic/blueteam.lab
DefensivwerkzeugeKonfigurationsprüfungDigitale ForensikPenetrationstestsCloud-SicherheitEinbruchserkennungLernen & BildungIncident ResponseLog-AnalyseLabs & Praxis
GitHubop7ic/blueteam.lab

BlueTeam.Lab

18723vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Blue Team-Erkennungslabor erstellt mit Terraform und Ansible in Azure.

Repository anzeigen

BlueTeam.Lab

BlueTeam.Lab

Zweck

Dieses Projekt enthält eine Reihe von Terraform- und Ansible-Skripten, um ein orchestriertes BlueTeam-Labor zu erstellen. Das Ziel dieses Projekts ist es, den roten und blauen Teams die Möglichkeit zu geben, ein Ad-hoc-Erkennungslabor bereitzustellen, um verschiedene Angriffe und forensische Artefakte in der neuesten Windows-Umgebung zu testen und dann eine „SOC-ähnliche“ Ansicht der generierten Daten zu erhalten.

HINWEIS: Dieses Labor ist bewusst unsicher gestaltet. Bitte verbinden Sie dieses System nicht mit einem Netzwerk, das Ihnen wichtig ist.


Labor-Layout


Voraussetzungen

Auf Ihrem System müssen eine Reihe von Funktionen installiert sein, um dieses Setup verwenden zu können.

root@kitploit:~
# Step 1 - Install Azure CLI. More details on https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# Step 2 - Install Terraform. More details on https://learn.hashicorp.com/tutorials/terraform/install-cli
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform

# Step 3 - Install Ansible. More details on https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt update
sudo apt install ansible

# Step 4 - Finally install python and various packages needed for remote connections and other activities
sudo apt install python3 python3-pip
pip3 install pywinrm requests msrest msrestazure azure-cli
pip3 install -r https://raw.githubusercontent.com/ansible-collections/azure/refs/heads/dev/requirements.txt

Erstellen und Bereitstellen von BlueTeam.Lab

Sobald alle Voraussetzungen installiert sind, führen Sie die folgenden Schritte aus:

root@kitploit:~
# Log in to Azure from command line to ensure that the access token is valid
az login

# Clone Repository and move to BlueTeam.Lab folder
git clone https://github.com/op7ic/BlueTeam.Lab.git && cd BlueTeam.Lab

# Initialize Terraform and begin planning
terraform init && terraform plan

# Create your lab using the following command. 
terraform apply -auto-approve

# Verify the layout of your environment using Ansible
cd ansible && ANSIBLE_CONFIG=./ansible.cfg ansible-inventory --graph -i inventory.azure_rm.yml -vvv && cd ../

# To see IPs of individual hosts and other setup details use the following command: 
cd ansible && ANSIBLE_CONFIG=./ansible.cfg ansible-inventory -i inventory.azure_rm.yml -vvv --list && cd ../

# Once done, destroy your lab using the following command:
terraform destroy -auto-approve

# If you would like to time the execution us following command:
start_time=`date +%s` && terraform apply -auto-approve && end_time=`date +%s` && echo execution time was `expr $end_time - $start_time` s

#NOTE: It will take about two hours to configure it all, depending on your selected hardware.

Bereitstellen verschiedener Windows-Versionen

Terraform Variablen legen den Typ der für diese Bereitstellung verwendeten Betriebssysteme fest. Eine einfache Änderung der Laufzeitvariablen ermöglicht es, verschiedene Betriebssysteme für die gesamte Active Directory (AD) auszuführen. Die Standardoption ist die Verwendung von Windows 10 Enterprise für Workstations und Windows Server 2019 Datacenter für Domain Controller. Hier sind Beispiele für einige gängige Konfigurationsoptionen, die verwendet werden können, um die gesamte Umgebung auf verschiedene Betriebssystemversionen zu ändern:

root@kitploit:~
# Use Windows 10 Enterprise for Workstations and Server 2019 Datacenter for DC (default option)
terraform apply -auto-approve

# Use Windows 11 Enterprise for Workstations and Server 2019 Datacenter for DC
terraform apply -auto-approve  -var="workstation_os=Windows-11" -var="workstation_SKU=win11-21h2-ent" -var="workstations_vm_size=Standard_DC2s_v2" 

# Use Windows 11 Enterprise for Workstations and Server 2012 Datacenter for DC
terraform apply -auto-approve -var="workstation_os=Windows-11" -var="workstation_SKU=win11-21h2-ent" -var="workstations_vm_size=Standard_DC2s_v2" -var="dc_os=WindowsServer" -var="dc_SKU=2012-Datacenter"

# Use Windows 11 Enterprise for Workstations and Server 2016 Datacenter for DC
terraform apply -auto-approve -var="workstation_os=Windows-11" -var="workstation_SKU=win11-21h2-ent" -var="workstations_vm_size=Standard_DC2s_v2" -var="dc_os=WindowsServer" -var="dc_SKU=2016-Datacenter"

# Use Windows 10 Pro N for Workstations and Server 2012 Datacenter for DC
terraform apply -auto-approve -var="workstation_os=Windows-10" -var="workstation_SKU=21h1-pron" -var="dc_os=WindowsServer" -var="dc_SKU=2012-Datacenter"

Der Befehl az vm image list kann verwendet werden, um verschiedene Betriebssystemversionen für die Bereitstellung zu identifizieren.


Funktionen

  • Windows AD mit zwei Arbeitsstationen, die in der Standardkonfiguration mit der Windows-Domäne verbunden sind.
  • Flexible Domänenkonfigurationsdatei, die einfache Änderungen an der zugrunde liegenden Konfiguration ermöglicht.
  • Überwachungsrichtlinien, die basierend auf dem CIS-Leitfaden konfiguriert sind, um die Ereignissichtbarkeit in der gesamten Windows-Infrastruktur zu erhöhen. Auditpol wird verwendet, um zusätzliche Einstellungen zu konfigurieren, und PowerShell-Transkriptprotokolle sind aktiviert.
  • Sysmon64 wird in der gesamten Infrastruktur mit der neuesten SwiftOnSecurity-Konfiguration für Windows-Geräte bereitgestellt.
  • Wazuh-Server konfiguriert und betriebsbereit, um Protokolle von Geräten zu sammeln.
  • Wazuh-Agenten in der gesamten Infrastruktur konfiguriert, die Daten an den Wazuh-Server senden.
  • Firewall so konfiguriert, dass nur Ihre eigene IP-Adresse Zugriff auf die bereitgestellten Systeme hat.
  • OSQuery und FleetDM in der gesamten Infrastruktur installiert, unter Verwendung von Konfigurationsvorlagen von Palantir.
  • Velocidex Velociraptor-Server konfiguriert und betriebsbereit.
  • Velocidex Velociraptor-Agenten in der gesamten Infrastruktur konfiguriert, die Daten an den Velociraptor-Server senden.
  • WinLogBeat konfiguriert, um Daten in die Elastic-Instanz zu protokollieren.
  • LokiToWinEventLog Loki-Scanner konfiguriert, um Daten alle 3 Stunden in das Windows-Ereignisprotokoll zu protokollieren und Daten an die mit installierte Elastic-Instanz zu senden.

Dokumentation

Im folgenden Abschnitt werden die verschiedenen Komponenten dieses Labors sowie Details zur Änderung der Konfigurationsdateien beschrieben, um das Setup anzupassen:

  • OSQuery- und Fleetdm-Server
  • Wazuh-Server und Wazuh-Agent
  • Sysmon
  • WinLogBeat
  • Velociraptor-Server und Velociraptor-Agent
  • Domänenmitglieder

Anmeldeinformationen

Sobald das Labor erstellt ist, gibt Terraform den tatsächlichen Standort der Systeme und die zugehörigen Anmeldeinformationen aus. Ein Beispiel für die Ausgabe finden Sie unten.

root@kitploit:~
Netzwerk-Setup:

Domänencontroller = xx.xx.xx.xx
Workstation DETECTION1: xx.xx.xx.xx
Workstation DETECTION2: xx.xx.xx.xx
Wazuh-Server-IP = xx.xx.xx.xx
Wazuh-Weboberfläche = https://xx.xx.xx.xx:443/
Velociraptor-Weboberfläche: = https://xx.xx.xx.xx:10000/
FleetDM-Weboberfläche: = https://xx.xx.xx.xx:9999/

Anmeldeinformationen:

Domänenadministrator:
    blueteam.lab\blueteam BlueTeamDetection0%%%
Lokaler Administrator auf Workstations:
    blueteam BlueTeamDetection0%%%
Wazuh-Server-SSH-Anmeldung:
    blueteam BlueTeamDetection0%%%
Wazuh-Anmeldungen:
    wazuh  BlueTeamDetection0%%%
    admin  BlueTeamDetection0%%%
    kibanaserver  BlueTeamDetection0%%%
    kibanaro  BlueTeamDetection0%%%
    logstash  BlueTeamDetection0%%%
    readall  BlueTeamDetection0%%%
    snapshotrestore  BlueTeamDetection0%%%
    wazuh_admin  BlueTeamDetection0%%%
    wazuh_user  BlueTeamDetection0%%%
Velociraptor-Weboberflächen-Anmeldung:
    blueteam BlueTeamDetection0%%%
FleetDM-Weboberflächen-Anmeldung:
    [email protected] BlueTeamDetection0%%%

RDP zum Domänencontroller:
xfreerdp /v:xx.xx.xx.xx /u:blueteam.lab\\blueteam '/p:BlueTeamDetection0%%%' +clipboard /cert-ignore

RDP zur Workstation DETECTION1: xx.xx.xx.xx
xfreerdp /v:xx.xx.xx.xx /u:blueteam '/p:BlueTeamDetection0%%%' +clipboard /cert-ignore

RDP zur Workstation DETECTION2: xx.xx.xx.xx
xfreerdp /v:xx.xx.xx.xx /u:blueteam '/p:BlueTeamDetection0%%%' +clipboard /cert-ignore

Firewall-Konfiguration

Die folgende Tabelle fasst eine Reihe von Firewall-Regeln zusammen, die in der Standardkonfiguration in der gesamten BlueTeamLab-Umgebung angewendet werden. Bitte ändern Sie die Datei main.tf, um bei Bedarf neue Firewall-Regeln im Abschnitt Firewall-Regel-Setup hinzuzufügen.

Intern werden in dieser Umgebung in der Standardkonfiguration die folgenden statischen IPs und Hostnamen im Bereich 10.0.0.0/16 verwendet:


Benutzerkonfiguration

Die folgenden Standard-Anmeldeinformationen werden während der Installation erstellt. Die tatsächlichen konfigurierten Anmeldeinformationen werden nach Abschluss des gesamten Bereitstellungsprozesses angezeigt.

Um die Standard-Anmeldeinformationen zu ändern, ändern Sie Benutzernamen und Passwörter in der Datei domain_setup.yml.

Screenshots

Mitwirken

Beiträge, Fehlerbehebungen und Verbesserungen können direkt als GitHub-Issue oder Pull-Request für dieses Projekt eingereicht werden.

Verzeichnisstruktur

root@kitploit:~
| - ansible
|  | - ansible.cfg
|  | - domain-controller.yml
|  | - domain-member.yml
|  | - domain_setup.yml
|  | - group_vars
|  |  | - all
|  |  | - wazuh
|  | - inventory.azure_rm.yml
|  | - roles
|  |  | - domain-controller
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  | - domain-member
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  | - fleetserver
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  |  | - templates
|  |  |  |  | - config.yml.j2
|  |  |  |  | - ssl.crt
|  |  |  |  | - ssl.key
|  |  |  |  | - systemd-fleetm.service.j2
|  |  | - monitor
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  | - osqueryagent
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  |  | - templates
|  |  |  |  | - osquery.conf
|  |  |  |  | - osquery.flags.j2
|  |  |  |  | - osquery.key.j2
|  |  |  |  | - ssl.crt
|  |  |  |  | - ssl.key
|  |  |  | - vars
|  |  |  |  | - main.yml
|  |  | - sysmon
|  |  |  | - handlers
|  |  |  |  | - main.yml
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  |  | - vars
|  |  |  |  | - main.yml
|  |  | - velociraptorclient
|  |  |  | - tasks
|  |  |  |  | - main.yaml
|  |  |  | - templates
|  |  |  |  | - clientconfig.yml.j2
|  |  |  | - vars
|  |  |  |  | - main.yml
|  |  | - velociraptorserver
|  |  |  | - tasks
|  |  |  |  | - main.yaml
|  |  |  | - templates
|  |  |  |  | - serverconfig.yml.j2
|  |  |  |  | - systemd-velociraptor.service.j2
|  |  |  | - vars
|  |  |  |  | - main.yml
|  |  | - wazuhagent
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  |  | - templates
|  |  |  |  | - ossec.conf.j2
|  |  |  | - vars
|  |  |  |  | - main.yml
|  |  | - wazuhserver
|  |  |  | - tasks
|  |  |  |  | - main.yaml
|  |  |  | - templates
|  |  |  |  | - sysmon_rules.xml
|  |  |  |  | - unattended-installation.sh
|  |  |  |  | - wazuh-passwords-tool.sh.j2
|  |  | - winlogbeat
|  |  |  | - tasks
|  |  |  |  | - main.yml
|  |  |  | - templates
|  |  |  |  | - config.yml.j2
|  |  |  | - vars
|  |  |  |  | - main.yml
|  | - wazuh-server.yml
| - documentation
|  | - osquery.md
|  | - pic
|  |  | - map.png
|  |  | - wazuh-logs.PNG
|  |  | - wazuh-pdc.PNG
|  |  | - winlogbeat.PNG
|  | - sysmon.md
|  | - velociraptor.md
|  | - wazuh.md
|  | - winlogbeat.md
|  | - winmember.md
| - main.tf
| - README.md
| - terraform.tfstate
| - terraform.tfstate.backup
| - variables.tf

FAQ

  • Ich erhalte Disk wks-1-os-disk already exists in resource group BLUETEAM-LAB. Only CreateOption.Attach is supported. oder eine ähnliche Fehlermeldung.

    • Führen Sie die Terraform-Befehle terraform destroy -auto-approve && terraform apply -auto-approve erneut aus, um das Labor zu zerstören und neu zu erstellen. Dieser Fehler tritt scheinbar auf, wenn Azure nicht alle Datenträger ordnungsgemäß bereinigt und Restressourcen mit demselben Namen zurückbleiben.
  • Ich erhalte Operation 'startTenantUpdate' is not allowed on VM 'domain-controller' since the VM is marked for deletion. You can only retry the Delete operation (or wait for an ongoing one to complete). oder eine ähnliche Fehlermeldung.

    • Führen Sie die Terraform-Befehle terraform destroy -auto-approve && terraform apply -auto-approve erneut aus, um das Labor zu zerstören und neu zu erstellen. Dieser Fehler tritt scheinbar auf, wenn Azure nicht alle Ressourcen ordnungsgemäß bereinigt und Reste übrig bleiben, die zerstört werden müssen, bevor das Labor aufgrund von Namens- und/oder Standortkonflikten erstellt wird.
  • Ich erhalte Network security group windows-nsg cannot be deleted because old references for the following Nics oder eine ähnliche Fehlermeldung.

    • Führen Sie die Terraform-Befehle terraform destroy -auto-approve && terraform apply -auto-approve erneut aus, um das Labor zu zerstören und neu zu erstellen. Dieser Fehler tritt scheinbar auf, wenn Azure nicht alle Ressourcen ordnungsgemäß bereinigt und Reste übrig bleiben, die zerstört werden müssen, bevor das Labor aufgrund von Namens- und/oder Standortkonflikten erstellt wird.

Quellen der Inspiration und Danksagungen

Ein guter Teil dieses Codes wurde von Christophe Tafani-Dereepers Adaz entliehen und angepasst. Vielen Dank für den Aufbau der Grundlage, die es mir ermöglichte, diese Laborumgebung zu entwerfen.

Tool herunterladen
Wazuh-Server
  • Pe-SieveToWinEventLog Pe-Sieve-Scanner konfiguriert, um Daten alle 3 Stunden in das Windows-Ereignisprotokoll zu protokollieren und Daten an die mit Wazuh-Server installierte Elastic-Instanz zu senden.
  • RegelnameNetzwerksicherheitsgruppeQuellhostQuellportZielhostZielport
    Allow-RDPwindows-nsgIhre öffentliche IP*PDC-1, DETECTION1, DETECTION23389
    Allow-WinRMwindows-nsgIhre öffentliche IP*PDC-1, DETECTION1, DETECTION25985
    Allow-WinRM-securewindows-nsgIhre öffentliche IP*PDC-1, DETECTION1, DETECTION25986
    Allow-SMBwindows-nsgIhre öffentliche IP*PDC-1, DETECTION1, DETECTION2445
    Allow-SSHwazuh-nsgIhre öffentliche IP*Wazuh22
    Allow-Wazuh-Managerwazuh-nsgIhre öffentliche IP*Wazuh1514-1516
    Allow-Wazuh-Elasticsearchwazuh-nsgIhre öffentliche IP*Wazuh9200
    Allow-Wazuh-APIwazuh-nsgIhre öffentliche IP*Wazuh55000
    Allow-Elasticsearch-Clusterwazuh-nsgIhre öffentliche IP*Wazuh9300-9400
    Allow-Wazuh-GUIwazuh-nsgIhre öffentliche IP*Wazuh443
    Allow-Velociraptor-Client-Connectionswazuh-nsgIhre öffentliche IP*Wazuh8000
    Allow-Velociraptor-GUIwazuh-nsgIhre öffentliche IP*Wazuh10000
    Allow-Fleet-GUIwazuh-nsgIhre öffentliche IP*Wazuh9999
    HostRolleInterne IP
    PDC-1Primärer Domänencontroller10.0.10.10
    WazuhWazuh-Server, hostet auch Velocidex Velociraptor-Installation und FleetDM10.0.10.100
    DETECTION1Windows 10 Workstation 110.0.11.11
    DETECTION2Windows 10 Workstation 210.0.11.12
    HostAnmeldenamePasswortRolle
    PDC-1blueteam.lab\blueteamBlueTeamDetection0%%%Domänenadministrator für die Domäne blueteam.lab
    DETECTION1localadministratorBlueTeamDetection0%%%Lokaler Administrator der Workstation DETECTION1
    DETECTION2localadministratorBlueTeamDetection0%%%Lokaler Administrator der Workstation DETECTION2
    WazuhblueteamBlueTeamDetection0%%%SSH-Anmeldeinformationen für den Wazuh-Server
    WazuhwazuhBlueTeamDetection0%%%Wazuh-Administrator
    WazuhadminBlueTeamDetection0%%%Wazuh-Administrator
    WazuhkibanaserverBlueTeamDetection0%%%Wazuh-Dienstkonto
    WazuhkibanaroBlueTeamDetection0%%%Wazuh-Dienstkonto
    WazuhlogstashBlueTeamDetection0%%%Wazuh-Dienstkonto
    WazuhreadallBlueTeamDetection0%%%Wazuh-Dienstkonto
    WazuhsnapshotrestoreBlueTeamDetection0%%%Wazuh-Dienstkonto
    Wazuhwazuh_adminBlueTeamDetection0%%%Wazuh-Dienstkonto
    Wazuhwazuh_userBlueTeamDetection0%%%Wazuh-Dienstkonto
    WazuhblueteamBlueTeamDetection0%%%Anmeldung für das Velociraptor-Webportal
    Wazuh[email protected]BlueTeamDetection0%%%Anmeldung für das FleetDM-Webportal
  • Warum Azure?

    • Mit einem Testkonto sind kostenlose Guthaben verfügbar
  • Wie kann ich Netzwerksegmente, die Bereitstellungsgröße oder andere Variablen ändern?

    • Ändern Sie die Terraform Variablen-Datei, um Ihr Setup anzupassen. Alternativ kann jede Variable während der Laufzeit geändert werden, indem Sie -var an terraform apply anhängen. Zum Beispiel würde terraform apply --auto-approve -var="region=East US 2" eine Region ändern, die sich von der in der Variablen-Datei festgelegten Standardeinstellung unterscheidet. Das gesamte Setup, einschließlich Netzwerkbereiche, Betriebssysteme und VM-Größe, kann mithilfe einer Kette von -var-Parametern geändert werden.
  • Wie finde ich SKUs für eine bestimmte Bereitstellung?

    • Verwenden Sie den Azure-Befehl az vm list-skus --location westeurope --all --output table, um SKUs zu finden, die für Ihre Bereitstellung verfügbar sind.
  • Ich erhalte Max retries exceeded with url: /wsman und dann wird die Verbindung beim Erstellen eines Systems verweigert.

    • Leider bedeuten WinRM-Einschränkungen, dass WinRM gelegentlich einfach nicht mehr wie erwartet funktioniert und stattdessen Verbindungen einfrieren. Infolgedessen funktioniert die Ausführung nicht ordnungsgemäß. Führen Sie terraform apply -auto-approve erneut aus, um den beschädigten Host zu reparieren.