A quick little tool to manage which projects you're on and manage distrobox containers for each environment.
In order to use this tool you'll want to have distrobox set up and have a "template" box you've created that has all yoru tools installed and what not, you'll likely also want to have a folder full of your other custom tools that you get from git hub, this makes it easier.
The distroboxes it sets up will have the prjoect files folder for the project mounted at /pentest and folder you use for custom tools (like the ones you clone from github) at /tools so getting to your files for the project is as easy as cd /pentest
!
I'm not very good at organization. In order to keep track of all the things needed for pentest engagements and keep client data separated from other client data I worte this tool to do it for me. Basically I have a distrobox for each engagement, a folder to keep files related to the engagement, and a separate folder full of my markdown notes for the engagement. An example is below
Current engagements: client1 internal pentest, client 2 internal pentest
/home/pyro/
-
pentests
- current
- client1
- internal_pentest
- file_exfil
- exploit.py
- etc
- internal_pentest
- client2
- internal_pentest
- file_exfil
- exploits
- etc
- internal_pentest
- client1
- upcomming
- writing
- current
-
notes
- current
- client1
- internal_pentest
- general_notes.md
- to_do.md
- findings.md
- enumeration_notes.md
- attack_notes.md
- internal_pentest
- client2
- internal_pentest
- general_notes.md
- to_do.md
- findings.md
- enumeration_notes.md
- attack_notes.md
- internal_pentest
- client1
- upcomming
- writing
- current
-
tools
- bloodhound-linux-x86_64_4.3.1
- bofhound
- burp_extensions
- ek45
- etc
This tool automatically creates the file structure, and if you use the start_pentest option populates the markdown note files with the templates I use.
For example if I get a new internal pentest engagement for client 3 but it hasn't started yet I'll start by creating the folder and note structure using option 4 in the menu system. This would create the folder structure and notes templates in the /home/pyro/pentests/upcomming/client3/internal_pentest and /home/pyro/notes/upcomming/client3/internal_pentest folders respectively. It does not create the distrobox, but it does add it to the list of tracked projects, with a status of upcomming.
Once the engagement starts I'd run option 9 to promote a project from upcomming status to current status. This will automatically copy the needed files over, and will clean up the empty directory in the upcomming files directory, but the empty folder in the upcomming notes folder is still not cleaning correctly, I'm working on that.
It then will create a new distrobox and ask you if you need to set up cobalt strike for the project. if so it'll ask you for the path to your cobalt strike, it'll copy that into the project files folder so that you can run it if needed.
During the test I use the menu system to spawn new terminals in the distrobox created for the engagement, use the various file generation options to get data in easily usable format for attack operations, etc.
Once the project is done and I'm ready to clean up the distrobox I use option 7 "Remove Project" to delete the distrobox. Eventually this will also move the files to the writing folders, but I haven't implemented that yet.
- download the latest executable from the releases in github.
- copy this executable to a folder on your $PATH such as /usr/bin.
- ensure you have a folder to keep your project files in created.
- ensure you have a foldder to keep your notes in created.
- ensure you have a distrobox created with all the tools and configurations you want.
- run the tool and follow the on screen prompts.
- clone this repository
git clone https://github.com/Pyro57000/pentest_tool.git
- cd into the nested "pentest_tool" folder
cd pentest_tool/pentest_tool
- use cargo to build the release binary
cargo build --release
- copy the compiled binary to a folder on your path
sudo cp ./target/release/pentest_tool /usr/bin/
- follow the same installation instructions, skipping the step where you download the release binary.