Git Product home page Git Product logo

davidprowe / badblood Goto Github PK

View Code? Open in Web Editor NEW
1.9K 48.0 269.0 666 KB

BadBlood by @davidprowe, Secframe.com, fills a Microsoft Active Directory Domain with a structure and thousands of objects. The output of the tool is a domain similar to a domain in the real world. After BadBlood is ran on a domain, security analysts and engineers can practice using tools to gain an understanding and prescribe to securing Active Directory. Each time this tool runs, it produces different results. The domain, users, groups, computers and permissions are different. Every. Single. Time.

Home Page: https://www.secframe.com/badblood

License: GNU General Public License v3.0

PowerShell 100.00%

badblood's Introduction

BadBlood

BadBlood by Secframe fills a Microsoft Active Directory Domain with a structure and thousands of objects. The output of the tool is a domain similar to a domain in the real world. After BadBlood is ran on a domain, security analysts and engineers can practice using tools to gain an understanding and prescribe to securing Active Directory. Each time this tool runs, it produces different results. The domain, users, groups, computers and permissions are different. Every. Single. Time.

BadBlood Icon

Commands

  • NONE: At this time all items of the script are configured in the .ps1 files. Files are outlined on the User Guide on Secframe.com

Acknowledgments

I'd like to send thanks to the countless people who wanted this as a product and waited while I made it!

Screenshots

BadBlood Intro

badblood start screen

Findings

IAM report

BadBlood Every Single Time

Sample Bloodhound Sample After Badblood

Installation

Requirements:

  • Domain Admin and Schema Admin permissions
  • Active Directory Powershell Installed

Running On Windows:

# clone the repo
git clone https://github.com/davidprowe/badblood.git
#Run Invoke-badblood.ps1
./badblood/invoke-badblood.ps1

Talk About the BadBlood

  1. Message or Follow me on twitter @ davidprowe
  2. Drop a note on secframe.com
  3. I am not responsible for cleanup if this is run in a production domain

License

This project is licensed under the gplv3 License - see the LICENSE.md file for details

Disclaimer

Please note: all tools/ scripts in this repo are released for use "AS IS" without any warranties of any kind, including, but not limited to their installation, use, or performance. We disclaim any and all warranties, either express or implied, including but not limited to any warranty of noninfringement, merchantability, and/ or fitness for a particular purpose. We do not warrant that the technology will meet your requirements, that the operation thereof will be uninterrupted or error-free, or that any errors will be corrected.

Any use of these scripts and tools is at your own risk. There is no guarantee that they have been through thorough testing in a comparable environment and we are not responsible for any damage or data loss or time loss incurred with their use.

You are responsible for reviewing and testing any scripts you run thoroughly before use in any non-testing environment. This tool is not designed for a production environment.

badblood's People

Contributors

davidprowe avatar drunkrhin0 avatar sussurro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

badblood's Issues

Feature suggestion: training feedback via known-good state of domain

Hi David,

I stumbled upon your tool while searching for training resources for blue teamers. I love the idea of creating a deliberately vulnerable Active Directory environment.
I would like to discuss a feature suggestion:

It would be interesting to work towards a known-good state of the domain. A predefined state of how the domain should look like in the end. This way trainees can reflect on gaps of their applied changes and the predefined result of the known-good state.

Usage of BadBlood in training sessions would look like this:

  1. Generate objects of known-good state in domain
  2. Apply randomize*-Scripts
  3. Trainee starts discovering domain
  4. Trainee applies changes to domain
  5. End training session, run check script / reflect on coverage of changes

I guess the problem on implementing a known-good state is, that the domain objects are not setup with any special permissions at the beginning. According to the current code in InvokeBadBlood.ps1 the permissions are set in the last step
(

write-host "Creating Permissions on Domain" -ForegroundColor Green
). This means the freshly generated AD-Objects before this line have no special permission setup and the setup does not represent any real world experience.

What do you think about this feature?

Issues with AD_Computers_Create\CreateComputers.ps1

i am able to install badblood without any error but when i look into the AD, i can see that no machine was added to my DC. is it just me facing this issue or everyone else is facing this too?? attached is a screenshot
image

Problems executing the script in Windows AD 2016

I downloaded the zip, extracted to desktop.
Then opened up powershell and executed the command .\invoke-badblood.ps1
I'm not sure if it's my problem or what but I can't get it to work in any way.

image

Question about user account passwords

Hello there,

First of all, I REALLY like what you're doing with Bad Blood. I've had it bookmarked forever and was super excited to give it a spin in the lab today. I have a fresh 2016 DC and ran BB on it and now my domain is very dirty - awesome.

Question for you on user credentials. For grins I used ntdsutil to dump out all the hashes and was having some folks test cracking passwords on those accounts. After not cracking a single password for quite a while, I looked at the CreateUsers.ps1 and can see the function for adding random/strong passwords to users.

To make this environment feel a little more like a typical customer network, I'd like to tweak that script to have a minimum length of 8 and maximum length of 12 character passwords. I think I see where to do that in the script, but ideally I'd also have the password itself come from a list of passwords I specify.

I'm not too sharp with PowerShell so if you have any advice please let me know, otherwise yes I'll certainly RTFM for PowerShell if that's the next best step ๐Ÿ‘

Thanks!
Brian

Configure password expiration

Maybe it's a good idea to add -passwordneverexpires $true to the New-ADUser cmdlet in AD_Users_Create/CreateUsers.ps1 in line 293.
Otherwise they will expire after about a month and that's usually not super realistic.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.