dirkjanm / ROADtools

A collection of Azure AD/Entra tools for offensive and defensive security purposes
MIT License
1.8k stars 254 forks source link

roadrecon gather segmentation fault #76

Closed bill-e-ghote closed 8 months ago

bill-e-ghote commented 9 months ago

Please advise.

image

dirkjanm commented 9 months ago

It might be an issue with cpython in this case, so I'll keep this open to investigate, but since it mentions "ROADrecon gather executed", the data gathering process is complete so the data should all be there without any problems. Which Python version is this?

bill-e-ghote commented 9 months ago

Python 3.11.6 within Msys2 running in MINGW64 shell. $ uname -a MINGW64_NT-10.0-19045 ETG-HP840-30X0T 3.4.9.x86_64 2023-09-15 12:15 UTC x86_64 Msys

bill-e-ghote commented 9 months ago

I tried going forward.

image

bill-e-ghote commented 9 months ago

Not sure these notes will help anyone, but here goes.

Incidentally, I had several issues building from source in this environment. It would not build in Msys2 shell. I had to play tricks to continue past compilation and runtime errors. pyca/cryptography was especially troublesome. The pacman installed version was not being recognized by your apps. 'pip install' would not succeed due to linker errors. I had to build it incrementally from source - I'm not a cmake wizard by any means - but was able to get it past the goalposts. I won't go into those details here as I think it would be more appropriate as an issue on that app's github page. Along the way, I learned way more about rust programming and building than I had intended to pursue.

This page offered a helpful suggestion that got me past the pyca/cryptography hump and past the "plat-name must be one of..." errors I was encountering: https://stackoverflow.com/questions/76079590/error-plat-name-must-be-one-of-win32-win-amd64-win-arm32-win-arm6 To wit: SETUPTOOLS_USE_DISTUTILS=stdlib pip install

I also had to work around certificate issues due to our intermediate signer (company internal) not being included in the chain. I appended our signers to certifi/cacert.pem and made sure it was accessible with this: export SSL_CERT_FILE=/usr/lib/python3.11/site-packages/certifi-2023.7.22-py3.11.egg/certifi/cacert.pem

I initially thought the certificate errors I was seeing was due to my using Burp Suite to debug apps rather than the device certificate, but a little extra reading brought me back on track.

dirkjanm commented 9 months ago

Thanks for the detailed information. I don't think there is something I immediately can do about this since you're running it in a bit of an odd environment.

However, as I mentioned previously, the gathering phase was completed before the segmentation fault occured. The line "ROADrecon gather executed in X seconds" is only shown once the entire process is completed. So you should now have the database with all the data and be able to launch the gui, explore the data, run plugins etc.