Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
BlueTeam.Lab — 블루팀 탐지 연구소 - Terraform과 Ansible을 사용하여 Azure에서 생성됨. | Kitploit
도구/GitHubGitHub/op7ic/blueteam.lab
Defensive ToolsConfiguration AuditingDigital ForensicsPenetration TestingCloud SecurityIntrusion DetectionLearning & EducationIncident ResponseLog AnalysisLabs & Practice
GitHubop7ic/blueteam.lab

BlueTeam.Lab

187231년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

블루팀 탐지 연구소 - Terraform과 Ansible을 사용하여 Azure에서 생성됨.

저장소 보기

BlueTeam.Lab

BlueTeam.Lab

목적

이 프로젝트는 오케스트레이션된 BlueTeam Lab을 생성하기 위한 Terraform 및 Ansible 스크립트 세트를 포함합니다. 이 프로젝트의 목표는 레드 팀과 블루 팀이 최신 Windows 환경에서 다양한 공격 및 포렌식 아티팩트를 테스트하기 위해 임시 탐지 랩을 배포하고, 생성된 데이터에 대한 'SOC와 유사한' 관점을 얻을 수 있도록 하는 것입니다.

참고: 이 랩은 의도적으로 안전하지 않게 설계되었습니다. 이 시스템을 중요하게 생각하는 네트워크에 연결하지 마십시오.


랩 구성


사전 요구 사항

이 설정을 사용하려면 시스템에 여러 기능이 설치되어 있어야 합니다.

root@kitploit:~
# 1단계 - Azure CLI 설치. 자세한 내용은 https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt 참조
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

# 2단계 - Terraform 설치. 자세한 내용은 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

# 3단계 - Ansible 설치. 자세한 내용은 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

# 4단계 - 마지막으로 원격 연결 및 기타 활동에 필요한 Python 및 다양한 패키지 설치
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

BlueTeam.Lab 구축 및 배포

모든 사전 요구 사항이 설치된 후 다음 단계를 수행하십시오:

root@kitploit:~
# 액세스 토큰이 유효한지 확인하기 위해 명령줄에서 Azure에 로그인
az login

# 저장소 복제 및 BlueTeam.Lab 폴더로 이동
git clone https://github.com/op7ic/BlueTeam.Lab.git && cd BlueTeam.Lab

# Terraform 초기화 및 계획 시작
terraform init && terraform plan

# 다음 명령을 사용하여 랩 생성
terraform apply -auto-approve

# Ansible을 사용하여 환경 구성 확인
cd ansible && ANSIBLE_CONFIG=./ansible.cfg ansible-inventory --graph -i inventory.azure_rm.yml -vvv && cd ../

# 개별 호스트의 IP 및 기타 설정 세부 정보를 보려면 다음 명령 사용:
cd ansible && ANSIBLE_CONFIG=./ansible.cfg ansible-inventory -i inventory.azure_rm.yml -vvv --list && cd ../

# 완료 후 다음 명령을 사용하여 랩 제거:
terraform destroy -auto-approve

# 실행 시간을 측정하려면 다음 명령 사용:
start_time=`date +%s` && terraform apply -auto-approve && end_time=`date +%s` && echo execution time was `expr $end_time - $start_time` s

#참고: 선택한 하드웨어에 따라 전체 구성에 약 2시간이 소요됩니다.

다양한 Windows 버전 배포

Terraform 변수는 이 배포에 사용되는 운영 체제 유형을 설정합니다. 런타임 변수를 간단히 수정하여 전체 Active Directory(AD)를 실행할 다른 OS를 지정할 수 있습니다. 기본 옵션은 워크스테이션에 Windows 10 Enterprise를 사용하고 도메인 컨트롤러에 Windows Server 2019 Datacenter를 사용하는 것입니다. 다음은 전체 환경을 다른 OS 버전으로 수정하는 데 사용할 수 있는 몇 가지 일반적인 구성 옵션의 예입니다:

root@kitploit:~
# 워크스테이션에는 Windows 10 Enterprise, DC에는 Server 2019 Datacenter 사용 (기본 옵션)
terraform apply -auto-approve

# 워크스테이션에는 Windows 11 Enterprise, DC에는 Server 2019 Datacenter 사용
terraform apply -auto-approve  -var="workstation_os=Windows-11" -var="workstation_SKU=win11-21h2-ent" -var="workstations_vm_size=Standard_DC2s_v2" 

# 워크스테이션에는 Windows 11 Enterprise, DC에는 Server 2012 Datacenter 사용
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"

# 워크스테이션에는 Windows 11 Enterprise, DC에는 Server 2016 Datacenter 사용
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"

# 워크스테이션에는 Windows 10 Pro N, DC에는 Server 2012 Datacenter 사용
terraform apply -auto-approve -var="workstation_os=Windows-10" -var="workstation_SKU=21h1-pron" -var="dc_os=WindowsServer" -var="dc_SKU=2012-Datacenter"

명령어 az vm image list를 사용하여 배포에 사용 가능한 다양한 OS 버전을 확인할 수 있습니다.


기능

  • 기본 구성에서 Windows 도메인에 연결된 두 개의 워크스테이션이 있는 Windows AD.
  • 유연한 도메인 구성 파일로 기본 구성을 쉽게 변경할 수 있습니다.
  • CIS 가이드를 기반으로 구성된 감사 정책으로 Windows 인프라 전반의 이벤트 가시성을 높입니다. Auditpol을 사용하여 추가 설정을 구성하고 PowerShell Transcript 로그가 활성화됩니다.
  • 최신 SwiftOnSecurity 구성을 사용하는 Sysmon64가 Windows 장치에 배포됩니다.
  • Wazuh Server가 구성되어 장치에서 로그를 수집합니다.
  • Wazuh Agents가 인프라 전반에 구성되어 Wazuh 서버에 데이터를 공급합니다.
  • 방화벽이 자신의 IP만 배포된 시스템에 액세스할 수 있도록 구성됩니다.
  • OSQuery 및 FleetDM이 인프라 전반에 설치되며 Palantir의 구성 템플릿을 사용합니다.
  • Velocidex Velociraptor 서버가 구성되어 작동합니다.
  • Velocidex Velociraptor 에이전트가 인프라 전반에 구성되어 Velociraptor 서버에 데이터를 공급합니다.
  • WinLogBeat가 Elastic 인스턴스에 데이터를 기록하도록 구성됩니다.
  • LokiToWinEventLog Loki 스캐너가 3시간마다 Windows 이벤트 로그에 데이터를 기록하고 Wazuh Server와 함께 설치된 Elastic 인스턴스로 데이터를 전송하도록 구성됩니다.
  • Pe-SieveToWinEventLog Pe-Sieve 스캐너가 3시간마다 Windows 이벤트 로그에 데이터를 기록하고 Wazuh Server와 함께 설치된 Elastic 인스턴스로 데이터를 전송하도록 구성됩니다.

문서

다음 섹션에서는 이 랩을 구성하는 다양한 구성 요소와 설정을 수정하기 위해 구성 파일을 변경하는 방법에 대한 세부 정보를 설명합니다:

  • OSQuery 및 Fleetdm 서버
  • Wazuh 서버 및 Wazuh 에이전트
  • Sysmon
  • WinLogBeat
  • Velociraptor 서버 및 Velociraptor 에이전트
  • 도메인 멤버

자격 증명

랩이 구축되면 Terraform이 시스템의 실제 위치와 관련 자격 증명을 출력합니다. 아래 예시 출력을 확인할 수 있습니다.

root@kitploit:~
Network Setup:

Domain Controller = xx.xx.xx.xx
Workstation DETECTION1: xx.xx.xx.xx
Workstation DETECTION2: xx.xx.xx.xx
Wazuh Server IP = xx.xx.xx.xx
Wazuh Web Interface = https://xx.xx.xx.xx:443/
Velociraptor Web Inteface: = https://xx.xx.xx.xx:10000/
FleetDM Web Interface: = https://xx.xx.xx.xx:9999/

Credentials:

Domain Admin:
    blueteam.lab\blueteam BlueTeamDetection0%%%
Local Admin on Workstations:
    blueteam BlueTeamDetection0%%%
Wazuh Server SSH Login:
    blueteam BlueTeamDetection0%%%
Wazuh Logins:
    wazuh  BlueTeamDetection0%%%
    admin  BlueTeamDetection0%%%
    kibanaserver  BlueTeamDetection0%%%
    kibanaro  BlueTeamDetection0%%%
    logstash  BlueTeamDetection0%%%
    readall  BlueTeamDetection0%%%
    snapshotrestore  BlueTeamDetection0%%%
    wazuh_admin  BlueTeamDetection0%%%
    wazuh_user  BlueTeamDetection0%%%
Velociraptor Web Inteface Login:
    blueteam BlueTeamDetection0%%%
FleetDM Web Inteface Login:
    [email protected] BlueTeamDetection0%%%

RDP to Domain Controller:
xfreerdp /v:xx.xx.xx.xx /u:blueteam.lab\\blueteam '/p:BlueTeamDetection0%%%' +clipboard /cert-ignore

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

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

방화벽 구성

다음 표는 기본 구성에서 BlueTeamLab 환경 전반에 적용된 방화벽 규칙 세트를 요약합니다. 필요에 따라 방화벽 규칙 설정 섹션의 main.tf 파일을 수정하여 새 방화벽 규칙을 추가하십시오.

내부적으로 이 환경의 기본 구성에서는 10.0.0.0/16 범위의 다음 정적 IP 및 호스트 이름이 사용됩니다:


사용자 구성

설치 중에 다음 기본 자격 증명이 생성됩니다. 전체 배포 프로세스가 완료된 후 실제 구성된 자격 증명의 출력이 표시됩니다.

기본 자격 증명을 수정하려면 domain_setup.yml 파일에서 사용자 이름과 비밀번호를 변경하십시오.

스크린샷

기여

기여, 수정 및 개선 사항은 이 프로젝트에 GitHub 이슈 또는 풀 리퀘스트로 직접 제출할 수 있습니다.

디렉토리 구조

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

  • Disk wks-1-os-disk already exists in resource group BLUETEAM-LAB. Only CreateOption.Attach is supported. 또는 이와 유사한 오류가 발생합니다.

    • terraform 명령어 terraform destroy -auto-approve && terraform apply -auto-approve를 다시 실행하여 랩을 제거하고 다시 만드십시오. 이 오류는 Azure가 모든 디스크를 제대로 정리하지 않아 동일한 이름의 리소스가 남아 있을 때 발생하는 것으로 보입니다.
  • 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). 또는 이와 유사한 오류가 발생합니다.

    • terraform 명령어 terraform destroy -auto-approve && terraform apply -auto-approve를 다시 실행하여 랩을 제거하고 다시 만드십시오. 이 오류는 Azure가 모든 리소스를 제대로 정리하지 않아 이름 또는 위치 충돌로 인해 랩 생성 전에 제거해야 할 잔여 리소스가 남아 있을 때 발생하는 것으로 보입니다.
  • Network security group windows-nsg cannot be deleted because old references for the following Nics 또는 이와 유사한 오류가 발생합니다.

    • terraform 명령어 terraform destroy -auto-approve && terraform apply -auto-approve를 다시 실행하여 랩을 제거하고 다시 만드십시오. 이 오류는 Azure가 모든 리소스를 제대로 정리하지 않아 이름 또는 위치 충돌로 인해 랩 생성 전에 제거해야 할 잔여 리소스가 남아 있을 때 발생하는 것으로 보입니다.
  • 왜 Azure인가요?

    • 평가판 계정으로 무료 크레딧 사용 가능

영감의 원천과 감사

이 코드의 상당 부분은 Christophe Tafani-Dereeper의 Adaz에서 차용하여 수정했습니다. 이 랩 환경을 설계할 수 있는 기반을 마련해 주신 것에 대해 큰 감사를 드립니다.

도구 다운로드
규칙 이름네트워크 보안 그룹소스 호스트소스 포트대상 호스트대상 포트
Allow-RDPwindows-nsg내 공인 IP*PDC-1, DETECTION1, DETECTION23389
Allow-WinRMwindows-nsg내 공인 IP*PDC-1, DETECTION1, DETECTION25985
Allow-WinRM-securewindows-nsg내 공인 IP*PDC-1, DETECTION1, DETECTION25986
Allow-SMBwindows-nsg내 공인 IP*PDC-1, DETECTION1, DETECTION2445
Allow-SSHwazuh-nsg내 공인 IP*Wazuh22
Allow-Wazuh-Managerwazuh-nsg내 공인 IP*Wazuh1514-1516
Allow-Wazuh-Elasticsearchwazuh-nsg내 공인 IP*Wazuh9200
Allow-Wazuh-APIwazuh-nsg내 공인 IP*Wazuh55000
Allow-Elasticsearch-Clusterwazuh-nsg내 공인 IP*Wazuh9300-9400
Allow-Wazuh-GUIwazuh-nsg내 공인 IP*Wazuh443
Allow-Velociraptor-Client-Connectionswazuh-nsg내 공인 IP*Wazuh8000
Allow-Velociraptor-GUIwazuh-nsg내 공인 IP*Wazuh10000
Allow-Fleet-GUIwazuh-nsg내 공인 IP*Wazuh9999
호스트역할내부 IP
PDC-1기본 도메인 컨트롤러10.0.10.10
WazuhWazuh Server, Velocidex Velociraptor 설치 및 FleetDM도 호스팅10.0.10.100
DETECTION1Windows 10 워크스테이션 110.0.11.11
DETECTION2Windows 10 워크스테이션 210.0.11.12
호스트로그인비밀번호역할
PDC-1blueteam.lab\blueteamBlueTeamDetection0%%%blueteam.lab 도메인의 도메인 관리자
DETECTION1localadministratorBlueTeamDetection0%%%DETECTION1 워크스테이션의 로컬 관리자
DETECTION2localadministratorBlueTeamDetection0%%%DETECTION2 워크스테이션의 로컬 관리자
WazuhblueteamBlueTeamDetection0%%%Wazuh 서버 SSH 자격 증명
WazuhwazuhBlueTeamDetection0%%%Wazuh 관리자
WazuhadminBlueTeamDetection0%%%Wazuh 관리자
WazuhkibanaserverBlueTeamDetection0%%%Wazuh 서비스 계정
WazuhkibanaroBlueTeamDetection0%%%Wazuh 서비스 계정
WazuhlogstashBlueTeamDetection0%%%Wazuh 서비스 계정
WazuhreadallBlueTeamDetection0%%%Wazuh 서비스 계정
WazuhsnapshotrestoreBlueTeamDetection0%%%Wazuh 서비스 계정
Wazuhwazuh_adminBlueTeamDetection0%%%Wazuh 서비스 계정
Wazuhwazuh_userBlueTeamDetection0%%%Wazuh 서비스 계정
WazuhblueteamBlueTeamDetection0%%%Velociraptor 웹 포털 로그인
Wazuh[email protected]BlueTeamDetection0%%%FleetDM 웹 포털 로그인
  • 네트워크 세그먼트, 배포 규모 또는 기타 변수를 어떻게 수정하나요?

    • Terraform 변수 파일을 수정하여 설정을 변경하십시오. 또는 각 변수는 terraform apply에 -var를 추가하여 런타임 중에 변경할 수 있습니다. 예를 들어, terraform apply --auto-approve -var="region=East US 2"는 변수 파일에 설정된 기본값과 다른 지역으로 수정합니다. 모든 설정(네트워크 범위, 운영 체제 및 VM 크기 포함)은 -var 매개변수 체인을 사용하여 변경할 수 있습니다.
  • 특정 배포에 대한 SKU를 찾는 방법은 무엇인가요?

    • Azure 명령어 az vm list-skus --location westeurope --all --output table을 사용하여 배포에 사용 가능한 SKU를 찾으십시오.
  • 시스템 구축 중에 Max retries exceeded with url: /wsman 오류가 발생하고 연결이 거부됩니다.

    • 안타깝게도 WinRM 제한으로 인해 WinRM이 예상대로 작동하지 않고 연결이 중단되는 경우가 있습니다. 결과적으로 실행이 제대로 작동하지 않습니다. terraform apply -auto-approve를 다시 실행하여 손상된 호스트를 복구하십시오.