GithubHelp home page GithubHelp logo

despratesparten / angrypuppy Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vysecurity/angrypuppy

0.0 0.0 0.0 103 KB

Bloodhound Attack Path Automation in CobaltStrike

License: Other

Shell 35.11% PowerShell 64.89%

angrypuppy's Introduction

ANGRYPUPPY


Bloodhound Attack Path Execution for Cobalt Strike

Authors:

Calvin Hedler (@001SPARTaN) and Vincent Yiu (@vysecurity)

Special Thanks:

  • armitagehacker: Raphael Mudge for the COBALTSTRIKE framework
  • wald0: Andy Robbins: Large amounts of assistance with Cypher queries

Beta Testers:

  • bspence7337
  • rasta_mouse
  • st3r30byt3
  • merrillmatt011
  • plissken
  • benheise
  • nuttsmare

And more! We had initially attempted to keep track but now there's way too many of you :)

Change Log:

  • [11/07/2017]: Initial push
  • [13/07/2017]: Finished Automated Attack Logic
  • [14/07/2017]: Revamp to polling mode attack logic
  • [15/07/2017]: Revamp code
  • [16/07/2017]: Added import JSON and aliasing

Getting Started:

ANGRYPUPPY is a tool for BloodHound attack path execution in Cobalt Strike.

Before you use ANGRYPUPPY, you will require two things:

Once you have obtained these, clone the ANGRYPUPPY repository. Due to limitations in Aggressor's Java import, we have included PowerShell and Linux/MacOS shell scripts to make the appropriate changes to the path we are importing json.jar from.

Once you have run the appropriate script for your operating system, you're ready to get started.

ANGRYPUPPY assumes that you will have a foothold on the target network. Once you have a foothold on the target network, run BloodHound collection, and import the data into BloodHound. After that, you must identify the attack path that you wish to use, for which purpose we've included the cypher beacon alias. Typing cypher will generate Cypher queries for all the users and computers that you have access to in Cobalt Strike, and post them to the event log. If any of these users or computers have a valid attack path to Domain Admin, these Cypher queries will return the best path. Paste the appropriate Cypher query into BloodHound's "raw query" field, and you will see the attack path displayed.

With a valid attack path displayed in BloodHound, you must export this to a json file, so that ANGRYPUPPY can import it. This file can go anywhere, and ANGRYPUPPY will prompt you for it when you run the command.

After that, simply run the angrypuppy beacon alias in any of your active sessions. ANGRYPUPPY will prompt you for the path to your graph, the lateral movement method, and the listener. ANGRYPUPPY will then parse the BloodHound attack path, and automatically execute, based on the nodes in the attack path. For every User node, ANGRYPUPPY will run Mimikatz on the last Computer node, and for every Computer node, ANGRYPUPPY will use the last User node's credentials and move to the next Computer node.

Currently, ANGRYPUPPY supports psexec, psexec_psh, wmi, or winrm lateral movement methods. We are planning to add the DCOM lateral movement method in the future.

Video:

ANGRYPUPPY - Development: https://youtu.be/yxQ8Q8itZao

To-do:

  • Access Control List attack path automation with automated fixing
  • Rework to use BloodHound REST API, automate end-to-end
  • Implement DCOM lateral movement

angrypuppy's People

Contributors

001spartan avatar vysec avatar vysecurity avatar

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.