Skip to content

Commit

Permalink
Merge pull request #82 from ShutdownRepo/dev Exegol refacto 4.0.0
Browse files Browse the repository at this point in the history
Exegol refactoring 4.0.0
  • Loading branch information
Dramelac authored Apr 30, 2022
2 parents 325988e + ad54276 commit 1cd921c
Show file tree
Hide file tree
Showing 92 changed files with 5,550 additions and 6,264 deletions.
File renamed without changes
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes
Binary file added .assets/exegol-help.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .assets/exegol-info.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .assets/exegol-start.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes.
File renamed without changes
File renamed without changes
103 changes: 102 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,111 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# pyenv
.python-version

# celery beat schedule file
celerybeat-schedule

# SageMath parsed files
*.sage.py

# dotenv
.env

# virtualenv
.venv
venv/
ENV/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/

# Personal shared volume
shared-data-volumes/
shared-resources/

# PyCharm and Python workspace
.idea/
venv

# Build logs for debugging
.build.log
8 changes: 8 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[submodule "sources"]
path = exegol-docker-build
url = https://github.com/ShutdownRepo/Exegol-images.git
branch = main
[submodule "exegol-resources"]
path = exegol-resources
url = https://github.com/ShutdownRepo/Exegol-resources
branch = main
44 changes: 16 additions & 28 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,17 @@
# General
- the `master` branch is the stable version. Please work and submit PR on the `dev` branch only. It's the most up-to-date. Once the new features are good to go, I merge the `master` and `dev` branches once in a while.
- `exegol.py` is the python wrapper to manage the image/container from the host
- by default, the wrappers pulls the latest DockerHub pre-built image for the install and updates
- DockerHub automatic builds are configured as follows : automatic build for each commit on the `master` branch (`latest` tag), manual builds for the `dev` branch (`dev` tag)
- if you want to locally build your image with your changes, run the wrapper with the following options: `python3 exegol.py --mode sources install`. This will operate a `git pull` in order to make sure you have the latest code base (but your local edits shouldn't be overwritten). once the `git pull` is over, the wrapper will run a `docker build`
- `sources/install.sh` is the install script ran during the build process, it installs tools, downloads resources and so on
# Wrapper & images
- the `master` branch is the stable version. Only Pull Requests are allowed on this branch.
- the `dev` branch is used for active development. This is the bleeding-edge version, but is sometimes not as stable as the `master` (depending on the development cycle).
- the `Exegol` repository includes the exegol.py wrapper code base, and features a `exegol-docker-images` submodule tracking [Exegol-images](https://github.com/ShutdownRepo/Exegol-images).
- changes to the images/dockerfiles/tools/installs must be done on the [Exegol-images](https://github.com/ShutdownRepo/Exegol-images) repo.
- by default, the wrapper pulls the latest DockerHub pre-built image for the install and updates
- DockerHub automatic builds are configured as follows
- `nightly` image is built using the base Dockerfile whenever a commit is made on [Exegol-images](https://github.com/ShutdownRepo/Exegol-images) `dev` branch.
- `full` image is built using the base Dockerfile whenever a new tag is pushed on [Exegol-images](https://github.com/ShutdownRepo/Exegol-images).
- `ad`, `osint`, `web` and `light` images are built using specific Dockerfiles whenever a new tag is pushed on [Exegol-images](https://github.com/ShutdownRepo/Exegol-images).
- if you want to locally build your image with your changes, run `exegol install local`. If you have local changes to the dockerfiles, they won't be overwritten.
- any addition/question/edit/pull request to the wrapper? Feel free to raise issues on this repo, or contribute on the dev branch!
- any addition/question/edit/pull request to the docker images? GOTO [Exegol-images](https://github.com/ShutdownRepo/Exegol-images).

# Tools
- tools are installed in `/opt/tools`
- if the tools you want to add are GUI-based, you can create the install function of your tool and then call that function in `install_tools_gui()`
- if the tools you want to add are not GUI-based, you can do the install function for the tool and then call it in `install_tools()`
- make sure to start the install function with : `colorecho "[EXEGOL] Installing {name of the tool}"`
- make sure to add the tool to the list in `README_long.md` in the format : name of the tool (repo link)

# Resources
*(e.g. a tool that cannot be used in Exegol but on the target for example, like Rubeus, mimikatz and so on)*
- resources are installed in `/opt/resources`
- just like the tools, make your install function, and then call it in `install_resources()`, start the function with the `colorecho`, report the new resource in `README_long.md`

# Aliases
- you can set alias in the `sources/zsh/aliases` file
- aliases can point to binaries or script that are not in the path for example

# History
- you can add history to the `sources/zsh/history` file
- the history is a helper to the users. Let's say I start to write "`secretsdump`", they'll be able to go through the commands in the history and then replace the placeholders with their values. I often rely on this history when I forget a tool or something, it can be helpful

And last thing, if you want to add anything else that is not a tool, a resource, history, aliases, config or whatever, feel free to ask for it :) the idea behind Exegol is to have the perfect, community-driven, hacking environment :rocket:
Any other idea that falls outside this scope?
Any question that is left unanswered?
Feel free to reach out, I'll be happy to help and improve things, Exegol is a community-driven toolkit :rocket:
44 changes: 0 additions & 44 deletions Dockerfile

This file was deleted.

Loading

0 comments on commit 1cd921c

Please sign in to comment.