Make it possible to use Bloodhound ingestor for the Community Edition version
Hello :hand:
Please Describe The Problem To Be Solved
Currently, when the flag --bloodhound is provided, it performs a data collection using the Bloodhound package from https://github.com/dirkjanm/BloodHound.py. However, the README clearly states that This version of BloodHound.py is only compatible with BloodHound 4.2 and 4.3, which means it might not work properly with Bloodhound CE : the generated ZIP archive won't be successfully ingested, or only partially (as far as I tested). It would therefore be great to add a way to specify that we want to use a collector compatible with Bloodhound CE, which is becoming more and more popular as it's getting improved.
One limitation is the bloodhound package itself. In order to use the version compatible with Bloodhound CE, as far as I understand, you have to install it from a specific branch (https://github.com/dirkjanm/BloodHound.py/tree/bloodhound-ce), instead of, for instance, simply having two imports such as bloodhound.legacy and bloodhound.ce.
(Optional): Suggest A Solution (Replace This Text: A concise description of your preferred solution. Things to address include:
- Provide a flag, for example
--bloodhound-ceto indicate which collector to use - An idea would be to keep having the bloodhound dependency as is, and add another one in the
pyproject.tomland name itbloodhoundceso that it doesn't conflict withbloodhound, for example a line likebloodhoundce = { git = "https://github.com/dirkjanm/BloodHound.py", branch = "bloodhound-ce" }(I hope it's possible) - Based on the provided flag (
--bloodhoundor--bloodhound-ce), the proper implementation will be called
Hi, yes I am aware of the problem but I did not find a solution yet. All import specific stuff (e.g. in the pyproject.toml file) depend on the package name you are importing/adding. Therefore, from my knowledge it is not possible to add another package with the same name to the toml file without renaming the source (that would have to be done by dirk-jan).
Thanks for your fast reply. I also tried to have both bloodhound packages at the same time (with one named bloodhound_ce from the bloodhound-ce branch) and it didn't work.
It would be great to help dirkjanm with that, a PR merging the code for bloodhound-ce into main and providing a way to select which one to use, so that it would be easy to implement in NetExec under a same bloodhound package ! Just posting the idea here, if someone has the time and the knowledge
Solved by #664