Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setting up repo for 2.0.0 #1

Merged
merged 10 commits into from
Apr 25, 2022
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# PyCharm and Python workspace
.idea/
20 changes: 20 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Tools
- tools are installed in `/opt/tools`
- make sure to start the install function with : `colorecho "[EXEGOL] Installing {name of the tool}"`

# Resources
- "Exegol resources" are, for instance, tools that won't be used in Exegol but on a target system (e.g. Rubeus, mimikatz and so on)
Dramelac marked this conversation as resolved.
Show resolved Hide resolved
- resources are installed in `/opt/resources`

# Aliases
- for the time being, aliases must be set in the `sources/zsh/aliases` file instead of using symbolic links.
- aliases can point to binaries or scripts that are not in the path for example

# History
- it is advised to include command examples in the `sources/zsh/history` file in order to facilitate the use of tools.
- the history is a helper to the users. Let's say they start to write "`secretsdump`", they'll be able to go through the commands in the history and then replace the placeholders with their values.
- when using zsh (default, comes with preset plugins in exegol), the history can be easily search with Ctrl+r.

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:
4 changes: 3 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ LABEL org.exegol.tag="${TAG}"
LABEL org.exegol.version="${VERSION}"
LABEL org.exegol.build_date="${BUILD_DATE}"
LABEL org.exegol.app="Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol-images"

RUN echo "${TAG}-${VERSION}" > /opt/.exegol_version

ADD sources /root/sources
RUN chmod +x /root/sources/install.sh
Expand Down
21 changes: 19 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,21 @@
# exegol-images

Docker images from https://github.com/ShutdownRepo/Exegol
> **📌 This repository hosts code for Exegol images, a submodule of the Exegol project.
> If you were looking for Exegol, go to [the main repo](https://github.com/ShutdownRepo/Exegol)**
___

# Exegol images

This repository hosts Dockerfiles for each Exegol image, an installation script, and various assets needed during the install (custom configurations, a history file, an aliases file, etc.). These files can be used to locally build the docker images, there is however a set of automatic build rules configured on a Docerkhub repo ([here](https://hub.docker.com/repository/docker/nwodtuhs/exegol)) offering the official, pre-built, compressed Exegol images.
Users are strongly advised to rely on Dockerhub to download images, this will be way faster than building them locally.
The Dockerhub automatic build includes build and push procedures that are overridden by hooks hosted here.

Below are the different Exegol images and their purpose.

| Image name | Description |
|------------|----------------------------------------------------------------------------------------------------|
| full | Includes all the tools supported by Exegol (warning: this is the heaviest image) |
| nightly | (for developers and advanced users) contains the latest updates. This image can be unstable! |
| ad | Includes tools for Active Directory / internal pentesting only. |
| web | Includes tools for Web pentesting only. |
| light | Includes the lightest and most used tools for various purposes. |
| osint | Includes tools for OSINT. |
3 changes: 3 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- find a better way to install the tools (exegol repo?)
- improve history and aliases so that only those of installed tools are present
- find a better solution to aliases (/opt/tools/bin for symbolic links and aliases for commands with preset args?)
4 changes: 3 additions & 1 deletion ad.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ LABEL org.exegol.tag="${TAG}"
LABEL org.exegol.version="${VERSION}"
LABEL org.exegol.build_date="${BUILD_DATE}"
LABEL org.exegol.app="Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol-images"

RUN echo "${TAG}-${VERSION}" > /opt/.exegol_version

ADD sources /root/sources
RUN chmod +x /root/sources/install.sh
Expand Down
2 changes: 2 additions & 0 deletions hooks/build
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/bin/bash
# Exit on error
set -e

echo "Running build hook !"
TAG_COMMAND="-t $IMAGE_NAME"
Expand Down
2 changes: 2 additions & 0 deletions hooks/push
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/bin/bash
# Exit on error
set -e

echo "Running push hook !"
echo "Pushing every tag for docker repo $DOCKER_REPO"
Expand Down
4 changes: 3 additions & 1 deletion light.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ LABEL org.exegol.tag="${TAG}"
LABEL org.exegol.version="${VERSION}"
LABEL org.exegol.build_date="${BUILD_DATE}"
LABEL org.exegol.app="Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol-images"

RUN echo "${TAG}-${VERSION}" > /opt/.exegol_version

ADD sources /root/sources
RUN chmod +x /root/sources/install.sh
Expand Down
4 changes: 3 additions & 1 deletion osint.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ LABEL org.exegol.tag="${TAG}"
LABEL org.exegol.version="${VERSION}"
LABEL org.exegol.build_date="${BUILD_DATE}"
LABEL org.exegol.app="Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol-images"

RUN echo "${TAG}-${VERSION}" > /opt/.exegol_version

ADD sources /root/sources
RUN chmod +x /root/sources/install.sh
Expand Down
15 changes: 5 additions & 10 deletions sources/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,6 @@ function install_impacket() {
colorecho "Installing Impacket scripts"
git -C /opt/tools/ clone https://github.com/SecureAuthCorp/impacket
cd /opt/tools/impacket/
# 1063: [ntlmrelayx] User-defined password for LDAP attack addComputer
# 1090: [secretsdump] added custom ldap filter argument
# 1135: [GetUserSPNs] Improved searchFilter for GetUserSPNs
# 1154: [ntlmrelayx] Unfiltered SID query when operating ACL attack
Expand All @@ -302,24 +301,19 @@ function install_impacket() {
# 1201: [describeTicket] Added describeTicket
# 1202: [getST] Added self for getST
# 1224: [renameMachine] Added renameMachine.py
# 1241: [ntlmrelayx] Multiple HTTP listeners at the same time
# 1249: [ntlmrelayx] Shadow Credentials in ntlmrelayx.py
# 1253: [ntlmrelayx] Added LSA dump on top of SAM dump for ntlmrelayx
# 1256: [tgssub] Added tgssub script for service substitution
# 1267: [Get-GPPPasswords] Better handling of various XML files in Group Policy Preferences
# 1270: [ticketer] Fix ticketer duration to support default 10 hours tickets
# 1273: [ntlmrelayx] Added flag --disable-multi
# 1275: [ntlmrelayx] Only dump AD CS once
# 1280: [machineAccountQuota] added machineAccountQuota.py
# 1288: [ntlmrelayx] LDAP attack: bypass computer creation restrictions with CVE-2021-34470
# 1289: [ntlmrelayx] LDAP attack: Add DNS records through LDAP
# 1290: [ntlmrelayx] Adds the creation of a new machine account through SMB
# 1291: [dacledit] New example script for DACL manipulation
git config --global user.email "exegol@install.er"
git config --global user.name "Exegol installer"
# failing PRs: 1177 1241 1289 1290
prs="1063 1090 1135 1154 1171 1184 1201 1202 1224 1249 1253 1256 1267 1270 1273 1275 1280 1288 1291"
for pr in $prs; do git fetch origin pull/$pr/head:pull/$pr && git merge --no-edit pull/$pr; done
prs="1090 1135 1154 1171 1177 1184 1201 1202 1224 1253 1256 1267 1270 1280 1288 1289 1290 1291"
for pr in $prs; do git fetch origin pull/$pr/head:pull/$pr && git merge --strategy-option theirs --no-edit pull/$pr; done
python3 -m pip install .
cp -v /root/sources/grc/conf.ntlmrelayx /usr/share/grc/conf.ntlmrelayx
cp -v /root/sources/grc/conf.secretsdump /usr/share/grc/conf.secretsdump
Expand Down Expand Up @@ -720,7 +714,7 @@ function gf_install() {
gf -save redirect -HanrE 'url=|rt=|cgi-bin/redirect.cgi|continue=|dest=|destination=|go=|out=|redir=|redirect_uri=|redirect_url=|return=|return_path=|returnTo=|rurl=|target=|view=|from_url=|load_url=|file_url=|page_url=|file_name=|page=|folder=|folder_url=|login_url=|img_url=|return_url=|return_to=|next=|redirect=|redirect_to=|logout=|checkout=|checkout_url=|goto=|next_page=|file=|load_file='
}

function rockyou() {
function decompress_rockyou() {
colorecho "Decompressing rockyou.txt"
gunzip -d /usr/share/wordlists/rockyou.txt.gz
}
Expand Down Expand Up @@ -2070,6 +2064,7 @@ function install_wordlists_tools() {
fapt cewl # Wordlist generator
fapt cupp # User password profiler
install_pass_station # Default credentials database
decompress_rockyou
}

# Package dedicated to offline cracking/bruteforcing tools
Expand Down Expand Up @@ -2498,7 +2493,7 @@ function install_resources() {
mimipy
plink
deepce
rockyou
decompress_rockyou
webshells
mailsniper
ysoserial_net
Expand Down
4 changes: 3 additions & 1 deletion web.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,9 @@ LABEL org.exegol.tag="${TAG}"
LABEL org.exegol.version="${VERSION}"
LABEL org.exegol.build_date="${BUILD_DATE}"
LABEL org.exegol.app="Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol"
LABEL org.exegol.src_repository="https://github.com/ShutdownRepo/Exegol-images"

RUN echo "${TAG}-${VERSION}" > /opt/.exegol_version

ADD sources /root/sources
RUN chmod +x /root/sources/install.sh
Expand Down