Home

Awesome

BloodHound automation

Automatically run and populate a new instance of BH CE. Tested on Ubuntu 22.04 and MacOS.

How to run

usage: bloodhound-automation.py [-h] {list,start,data,stop,delete} ...

Automatically deploy a bloodhound instance and populate it with the SharpHound data

positional arguments:
  {list,start,data,stop,delete,clear}
                        Action to run
    list                List existing projects
    start               Create a new project or start an existing one
    data                Feed data into an existing project
    stop                Stop a running project (Not implemented yet)
    delete              Delete a project
    clear               Clear a project

options:
  -h, --help            show this help message and exit

You can edit the docker file in the template folder for more customization.

By default, it starts three containers. When the script is done, you can shutdown both the web and the postgresql containers if you only wish to keep the neo4j one.

Example

Create and start project

$ python3 bloodhound-automation.py start -bp 10001 -np 10501 -wp 8001 my_project

[*] Created ***/bloodhound-automation/projects directory
[*] Created my_project directory
[+] Docker setup done
[*] Launching BloodHound...
The docker log are accessible in the */bloodhound-automation/projects/my_project/logs.txt file
[+] Found admin temporary password : Hq2gYOOGgcRDfqk9xutVoU7LAQ4O0W2x
[+] Web server launched successfully
[+] Found JWT token : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDA4NzM3NTcsImp0aSI6IjEiLCJpYXQiOjE3MDA4NDQ5NTcsInN1YiI6IjZiM2JmMDc2LTE0YmEtNDE5Mi05OTNkLTQ4ZjBmMDljMDI3MyJ9.jwD8mGxAPIExOP_Xd1S1fWou85N2KqRGpXduH6AIWcc
[+] UserID found : 6b3bf076-14ba-4192-993d-48f0f09c0273
[+] Changed admin password to : Chien2Sang<3

        #############################################################################
        #                                                                           #
        #              Your neo4j instance was successfully populated               #
        #                        and is now accessible at :                         #
        #                             localhost:10001                               #
        #                             username : neo4j                              #
        #                             password : neo5j                              # 
        #                                                                           #
        #                 The BloodHound Web GUI is accessible at :                 #
        #                         http://localhost:8001                             #
        #                     with the following credentials :                      #
        #                         username : admin                                  #
        #                         password : Chien2Sang<3                           #
        #                                                                           #
        #############################################################################
          

Import data

$ python3 bloodhound-automation.py data -z test.zip my_project

[+] Refreshed JWT token : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDExMDYxMTQsImp0aSI6IjIiLCJpYXQiOjE3MDEwNzczMTQsInN1YiI6IjFhZWY2ZGVmLWFlNWEtNDAxMC1hZDcxLTFmZWNiYzFjZDE2OSJ9.qOUAEc1Bxm6AoNMEunR1j_kQayawkm9kdUJzTsLDb58
[*] Starting json upload...
   [+] Started new upload batch, id : 1
   [+] Successfully uploaded 20230828025505_groups.json
   [+] Successfully uploaded 20230828025505_computers.json
   [+] Successfully uploaded 20230828025505_domains.json
   [+] Successfully uploaded 20230828025505_users.json
   [+] Successfully uploaded 20230828025505_gpos.json
   [+] Successfully uploaded 20230828025505_containers.json
   [+] Successfully uploaded 20230828025505_ous.json
   [*] Waiting for BloodHound to ingest the data. This could take a few minutes.
[+] The JSON upload was successful

Delete and clear the data

$ python3.9 bloodhound-automation.py delete my_project
[*] Deleting my_project project...
[+] The project my_project has been successfuly deleted
$ python3.9 bloodhound-automation.py clear my_project
[+] Neo4j database cleared successfully

Requirements

You need docker installed.

Dependencies

Configure a virtualenv to ensure compatibility between packages.

virtualenv venv
source venv/bin/activate
pip3 install --upgrade pip
pip3 install -r requirements.txt