elastic / SWAT

Simple Workspace Attack Tool (SWAT) is a tool for simulating malicious behavior against Google Workspace in reference to the MITRE ATT&CK framework.
Apache License 2.0
137 stars 6 forks source link

OnWeek: Project Standup and Feature Development #1

Closed terrancedejesus closed 11 months ago

terrancedejesus commented 1 year ago

OnWeek Dates: May 8-12th

Overview

This is the very first issue for SWAT! As an Elastic OnWeek project, the goal of this issue is to scope obtainable work to be completed for the week regarding the standup and development of SWAT. In addition to tool development, a testing lab will need to be created for Google Workspace and GCP.

This OnWeek requires both Threat Research and Developer hats to be successful.

Project Roles

Threat Research Role: Responsible for surveying Google Workspace threat landscape, previous campaigns abusing or targeting GWS, known vulnerabilities, etc. This will be critical to determining what technique simulation should be built into the tool for OnWeek and how to accomplish them within the lab and via the tool. A good start is the Google Workspace Detection Rules from Elastic.

Developer Role: Responsible for developing the SWAT tool feature enhancements, bugs and working with Threat Researcher roles to understand technique simulation to develop the capability within the tool.

Important References

Google Workspace Lab Google Workspace Detection Rules SWAT Documentation - Wiki | GDoc

#### Lab Setup
- [x] Create Domain Registered to Google Workspace
- [x] Setup Google Workspace and Purchase License
- [x] Setup Cloud Stack with Google Workspace Integration Linked to Organization
- [x] Setup Elastic Agent and Confirm Logging from Google Workspace and GCP
- [x] Enable Required Google Workspace APIs and Create SWAT Credentials
- [x] Document Lab Setup and Requirements
#### Modular Shell Framework
- [x] Develop Modular Skeleton for SWAT Code
- [x] Determine How to Setup Debugger for Shell Application
- [x] Develop Logging Capabilities for SWAT
- [x] Develop Google Workspace Administration Capabilities for SWAT
- [x] Develop Cleanup Capability in SWAT
- [x] Develop Autocompletion
- [x] Load Possible `emulate` Commands
- [x] `help` on emulate commands shows parameter options
#### ATT\&CK Technique Simulations with SWAT
- [ ] https://github.com/elastic/SWAT/issues/4
- [ ] https://github.com/elastic/SWAT/issues/5
- [ ] https://github.com/elastic/SWAT/issues/6
- [ ] https://github.com/elastic/SWAT/issues/3
#### OnWeek Deliverables
- [x] 3-5 Minute Video Demo
terrancedejesus commented 1 year ago

⚡ May 9, 2023 Update

This is just a brief update of what has been accomplished so far based on everyones hard work. Reminder we are tracking everything in the #1 or the gdoc. Whatever you prefer.

Lab Setup

SWAT Documentation

SWAT Framework

Adversary Behavior Analysis

Existing Goals

terrancedejesus commented 1 year ago

⚡ May 10, 2023 Update

There has been some incredible progress made on the SWAT project so far this week. Thanks everyone for all the effort and work so far.

Recap

Feedback

Existing Goals

terrancedejesus commented 1 year ago

⚡ May 11, 2023 Update

Today I will be reviewing some of the enhancements submitted by @brokensound77 for the core of SWAT and implementing some quick wins. Hopefully this only takes the first half of the morning. At 1PM EST, I will be sending out a meeting invite to everyone.

The agenda is the following:

After the meeting I will leave the zoom room open and be in there for the rest of the week. Feel free to come and go as you please!

The demo for May 15th, 2023 is expected to be ~5 minutes long so we will only be able to demo 1 actual emulation. This does not limit our effort though for the rest of the week.

terrancedejesus commented 1 year ago

⚡ May 12, 2023 Update

Today is officially the last day of OnWeek 😢

First I would like to thank everyone for a job well done and all the contributions, 4AM sessions, scholarly documentation review and more! A few moments ago, I dropped in chat a video of a simple "emulation" from swat for adding a user account (t1136) by a third-party desktop application with the help of SWAT. Breadcrumbs are user license assigned + OAuth token for third-party desktop application.

From this I also learned I have to get some bug-fixing code merged into main for us to build more modules. I apologize for the oversight on passing an active authentication session into each module for use. I will get this in ASAP. Accomplishments 🥳

What's Left 🤷🏽

We have accomplished a lot! The SWAT tool still has a long way to go, but for OnWeek purposes we will be able to demonstrate at least 1 decent emulation module. I will not be using the user account creation module for the demo, but instead shift attention to building out one of the phishing modules for the OnWeek demo.

If I can finish the phishing module and have a demo available by this afternoon, I am hoping to setup our final meeting to discuss for feedback and anything else anyone has.

Post-OnWeek

I invite anyone and everyone to continue contributing to SWAT if they have interest, whether that be via research, new module requests, new feature requests, etc. (No bug bounties, sorry pockets are shallow 😓)

terrancedejesus commented 11 months ago

Closing this as complete!