惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
U
Unit 42
B
Blog RSS Feed
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
腾讯CDC
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - 聂微东
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta

Black Hills Information Security, Inc.

Bad Habits: An ANTISOC Operation Same Problem, Different Angles: When Red Team and Blue Team Actually Talk to Each Other How to Identify and Exploit New Vulnerabilities Swapper – A Pure Regex Match/Replace Burp Extension A Practical Guide to BloodHound Data Collection Network Engineering Basics Signed, Trusted, and Abused: Proxy Execution via WebView2 Getting Started In Pentesting – Advice From The BHIS Pentest Lead Cloud Security: Tips and Resources for Securing the Cloud Lessons From A Chatbot Incident How to Lead Effective Tabletops Understanding GRC: How to Navigate Risks and Compliance Standards The “P” in PAM is for Persistence: Linux Persistence Technique Malware Analysis: How to Analyze and Understand Malware OSINT: How to Find, Use, and Control Open-Source Intelligence What to Do with Your First Home Lab When the SOC Goes to Deadwood: A Night to Remember Social Engineering and Microsoft SSPR: The Road to Pwnage is Paved with Good Intentions Common Cyber Threats Finding the Right Penetration Testing Company Deceptive-Auditing: An Active Directory Honeypots Tool The Curious Case of the Comburglar How to Set Smart Goals (That Actually Work For You) Inside the BHIS SOC: A Conversation with Hayden Covington Abusing Delegation with Impacket (Part 3): Resource-Based Constrained Delegation Why You Got Hacked – 2025 Super Edition Abusing Delegation with Impacket (Part 2): Constrained Delegation Abusing Delegation with Impacket (Part 1): Unconstrained Delegation GoSpoof – Turning Attacks into Intel Model Context Protocol (MCP)
How To: Applied Purple Teaming Lab Build on Azure with Te...
BHIS · 2020-08-03 · via Black Hills Information Security, Inc.

Jordan Drysdale & Kent Ickler //



tl;dr

Ubuntu base OS, install AZCLI, unpack terraform, gather auth tokens, run script, enjoy new domain. 

https://github.com/DefensiveOrigins/APT-Lab-Terraform

For those of you who have been diligently following along – three webcasts now, a four-hour intro training session on a Saturday, our students who have attended the virtual courses – it has been written. The labs are now available for your use and deployment on Azure with a few reasonable steps. The instructions below will spin up three systems on Azure with Terraform to mirror the classroom environment we preach (DC + member + HELK). They have the same IPs, same creds, everything you’ve gotten used to. 

The steps are listed below and assume you have an account on Microsoft Azure. If you do not already have one, visit here and claim your $200 in credits: https://azure.microsoft.com/en-us/free/

If my math is close, you can run the lab built by the instruction set below for about 30 days on just the credits. Anyway, thanks for reading, following along, and keeping up with our efforts.

Step 1

New Ubuntu 18.04 on Digital Ocean at $5/month

Step 2 

Install AZCLI

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

Step 3

Gather up the terraform binaries, unpack, and add to PATH. An old habit I learned from a fella named Fletch was to add packages and tools to /opt/. Also, be careful, binary locations change over time. Grab the latest terraform package location here: https://www.terraform.io/downloads.html

cd /opt/

wget https://releases.hashicorp.com/terraform/0.12.29/terraform_0.12.29_linux_amd64.zip

Unzip terraform_0.12.29_linux_amd64.zip

mv terraform /usr/local/bin/

Terraform should now be operational! 

terraform -v

Step 4

This step is a bit more complicated and is likely to cause some trouble on the path to deployment. We need to gather the necessary token information to authenticate via AZCLI to our Azure subscriptions. 

az login

This command should prompt us for authentication on the AZ cloud. I simply accessed an existing Azure session and followed the instructions. 

The next command is used to set your authenticated AZ CLI session to the appropriate subscription.

az account set --subscription="YOUR_SUBSCRIPTION_ID"

The next command will create a service principal with role-based access controls for this deployment.

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/YOUR_SUBSCRIPTION_ID"

This command will output some sensitive information, as indicated by zeroes in the following screenshot, which was lifted from a Microsoft article linked as a reference. Each of these values will be inserted into your LabBuilder.py script. 

(appId is the client_id)

(password is the client_secret)

(tenant is the tenant_id)

Step 5

Gather the repo and configure the LabBuilder script for your subscription and service principal.

git clone https://github.com/DefensiveOrigins/APT-Lab-Terraform.git

cd APT-Lab-Terraform

vi/vim/nano/emacs/word/textpad/mousepad/leafpad/notepad/ LabBuilder.py

Step 6

Build! 

python3 LabBuilder.py -m <publicIP>

Right now, I am guessing a complete build will be done in 27 minutes. 

This build finished in a modest 23 minutes, 53.8 seconds. 

The output as shown is just a public IP address from Microsoft’s allocations. That address has a listening remote desktop service available to the labs.local\itadmin user. The password is “APTClass!” no quotes. Please recognize that at this point, the optics stack is unconfigured (you will not see a thing in Elastic, no Sysmon is installed, nada). 

A fantastic description of the code base itself, all the underlying systems, services, users, etc is available on the git repo. A high level overview of the lab environment at this point is listed below. This information is also documented on the git repo. 

Windows DC: 10.10.98.10

Public IP restricted to the provided public IP will land on the Windows member system.

Windows WS: 10.10.98.14

HELK: 10.10.98.20 

  • Kafka on 9092, etc
  • Logstash on 5044
  • Elastic on 443
  • SSH on 22

In our experience, this lab runs between six and eight bucks a day ($6.00 – $8.00 / day) on Azure (AWS is more than twice this cost in testing thus far). Which, for newcomers to Azure, you are eligible for $200 in credits. 

https://github.com/DefensiveOrigins/APT-Lab-Terraform

https://github.com/Cyb3rWard0g/HELK

https://defensiveorigins.com

https://www.terraform.io/downloads.html

https://www.terraform.io/docs/providers/azurerm/guides/service_principal_client_secret.html

Next up: using two individual scripts to install the entire Windows optics stack and ship logs. Once you run these scripts, the listening Apache Kafka broker will do its thing and you will start seeing log data in Elastic. This will get turned loose in the same repo. 

Want to learn more mad skills from the person who wrote this blog?

Check out these classes from Jordan and Kent: