Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
GoFetch and Bloodhoud - Active Directory and credentials attacks
GoFetch and Bloodhoud - Active Directory and credentials attacks
Use Bloodhound to get a picture of the AD network and then use GoFetch to try and get the credentials using mimikatz.

About BloodHound

To get started with BloodHound, check out the BloodHound Github Wiki.

BloodHound is a single page Javascript web application, built on top of Linkurious, compiled with Electron, with a Neo4j database fed by a PowerShell ingestor.

BloodHound uses graph theory to reveal the hidden and often unintended relationships within an Active Directory environment. Attackers can use BloodHound to easily identify highly complex attack paths that would otherwise be impossible to quickly identify. Defenders can use BloodHound to identify and eliminate those same attack paths. Both blue and red teams can use BloodHound to easily gain a deeper understanding of privilege relationships in an Active Directory environment.


GoFetch is a tool to automatically exercise an attack plan generated by the BloodHound application.

GoFetch first loads a path of local admin users and computers generated by BloodHound and converts it to its own attack plan format. Once the attack plan is ready, GoFetch advances towards the destination according to plan step by step, by successively applying remote code execution techniques and compromising credentials with Mimikatz.

Watch Invoke-GoFetch in action

GoFetch has two different versions:

Chain reaction:

Invoke-GoFetch (written in PowerShell to avoid Python installation prereq), implements a recursion that reads the full path, dumps the relevant credentials with Invoke-Mimikatz, and then copy and execute itself using Invoke-PsExec on the next relevant machine guided by the network path.

One computer to rule them all:

Python based code (a video of this version demonstrated at BlackHat Europe 2016), using a technique where one centralized computer is doing the job of connecting to each computer in the path, in the right order, to steal credentials (using Mimikatz), and use them to connect to the next machine in the path.

Getting started with Invoke-GoFetch

Place GoFetch folder on the first machine of the attack path, in a session of the first user.


-PathToGraph - Path to the BloodHound exported Graph which includes a path between two users.

-PathToPayload (optional) -
Path to local payload file .exe/.bat/.ps1 to run on next nodes in the path.


Usage to get the credentials along the path:
.\Invoke-GoFetch.ps1 -PathToGraph .\pathFromBloodHound.json
Usage to get the credentails along the path and execute additional payload on each:
.\Invoke-GoFetch.ps1 -PathToGraph .\graphExample.json -PathToPayload .\payload.exe

Invoke-GoFetch is able to run from any version of Windows through Windows 7 that has PowerShell v2 or higher installed and .Net 3.5 or higher.
Invoke-Mimikatz - is included with a change in the Mimikatz DLL which allows the execution of the PowerShell file with additional arguments.
Invoke-Psexec - is included without changes.

Forum Jump:

Users browsing this thread: 1 Guest(s)