Skip to content

⚔ Tool Usage

Rainer Christian Björn Herold edited this page Jan 26, 2024 · 19 revisions

⚔ Download And Start The Tool

The first step is to download the tool, in the way over git clone this is practically the BETA for the upcoming release. This means that errors may occur in rare cases, as not all newly implemented features have yet been fully tested.

The easiest way to recognize it is by looking at the banner when you start the tool, as the highest version is noted there.

🗡️ Example - Stable Release

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9b      <--             💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀

🗡️ Example - Beta Release

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9c      <--             💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀

⚠️ The above version numbers may differ in newer releases and are for illustrative purposes only.


🗡️ Downloading Yggdrasil

# Download
sudo git clone https://github.com/Jarl-Bjoern/Yggdrasil/

# Switch_To_Folder
cd Yggdrasil

# Start_Yggdrasil
sudo python3 yggdrasil.py

⚠️ If you encounter problems with the above version, you must switch to the stable release using the following instructions.

Visit the page Releases and download the latest version.

⚠️ The following command chain is only an example, this does not mean that the version shown here is necessarily the latest version.

# Download
wget https://github.com/Jarl-Bjoern/Yggdrasil/archive/refs/tags/V0.9b.zip

# Unzip_And_Remove_The_Archive
unzip V0.9b.zip ; rm -f V0.9b.zip

# Switch_To_Folder
cd Yggdrasil-0.9b

# Start_Yggdrasil
sudo python3 yggdrasil.py




⚔ Using The Help Section To See Which Parameters Are Available

-------------------------------------------------------------------------------------
|  Created by Rainer Christian Bjoern Herold                                        |
|  Copyright 2022-2024. All rights reserved.                                        |
|                                                                                   |
|  Please do not use the program for illegal activities.                            |
|                                                                                   |
|  If you got any problems don't hesitate to contact me so I can try to fix them.   |
-------------------------------------------------------------------------------------

optional arguments:
  -aL [ACCEPT_LICENSES], --accept-licenses [ACCEPT_LICENSES]
                        This parameter is required to accept licenses and the popups
                        from firefox during the installation of extensions.

                        Extensions:
                          - Firefox

                        Licenses:
                          - Veracrypt

                        ---------------------------------------------------------------
  -aW ADD_WORKSPACE, --add-workspace ADD_WORKSPACE
                        This parameter specifies your default workspace location.

                        Default: /opt/workspace

                        ---------------------------------------------------------------
  -cD CUSTOM_DAYS, --custom-days CUSTOM_DAYS
                        This parameter specifies the max days for the shredding script.

                        Default:
                          - 90 Days

                        ---------------------------------------------------------------
  -cP CUSTOM_PATH, --custom-path CUSTOM_PATH
                        This parameter specifies the target path of your custom scripts
                        or tools.

                        Example:
                          - python3 yggdrasil.py -cP /opt/yggdrasil/Custom

                        It's also possible to select a single file.
                                                                                                                                                                                                                                            
                        Example:                                                                                                                                                                                                            
                          - python3 yggdrasil.py -cP /opt/yggdrasil/Custom/old-kali-wallpapers.sh

                        ---------------------------------------------------------------
  -hN HOST_NAME, --host-name HOST_NAME
                        This parameter specifies the hostname of the kali machine.

                        Default:
                          - pentest-kali
                          - forensic-kali

                        ---------------------------------------------------------------
  -sC [SKIP_CONFIG], --skip-config [SKIP_CONFIG]
                        This parameter skips the configs part.
                        
                        Best practice settings:
                          - Automated Updates (APT|Cargo|Docker|Git Packages|Pip|Rust)
                          - Custom Configs (alias|bashrc|zshrc)
                          - screenrc
                          - vim
                          - repo-change (rolling-release to last-snapshot)
                          - automated shredding task

                        ---------------------------------------------------------------
  -sH [SKIP_HARDENING], --skip-hardening [SKIP_HARDENING]
                        This parameter skips the hardening part.

                        Hardening:
                          - Firewall
                          - Operating System
                          - SSH
                          - Apache
                          - nginx

                        ---------------------------------------------------------------
  -sbI [SKIP_BASIC_INSTALLATION], --skip-basic-installation [SKIP_BASIC_INSTALLATION]
                        This parameter skips the basic tools installation part.

                        ---------------------------------------------------------------
  -sI [SKIP_INSTALLATION], --skip-installation [SKIP_INSTALLATION]
                        This parameter skips the installation part.

                        ---------------------------------------------------------------
  -sU [SKIP_URLS], --skip-urls [SKIP_URLS]
                        This parameter skips the url opening part after the
                        installation process.
                                            
                        ---------------------------------------------------------------
  -tP TOOL_PATH, --tool-path TOOL_PATH
                        This parameter specifies your default tools location.

                        Default:
                          - /opt/pentest_tools
                          - /opt/forensic_tools

                        ---------------------------------------------------------------
  -v [VERBOSE], --verbose [VERBOSE]
                        This parameter shows all interaction messages during the apt
                        package manager installation process.

                        ---------------------------------------------------------------




⚔ Choose One Of The Available Category Types

After starting the program you should see the selection menu below, where you can now choose between several categories.

You can either use the full name of the category or the number.

Notice: Note that here you can only choose between one of the available categories.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9c                      💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


           Please choose between one category
-------------------------------------------------------------
|                                                           |
| [1] complete    :  installation of all          toolkits  |
| [2] custom      :  installation of custom       tools     |
| [3] forensic    :  installation of forensic     tools     |
| [4] pentest     :  installation of pentest      tools     |
| [5] hardening   :  installation of hardening    tools     |
| [6] training    :  installation of training     tools     |
| [7] red_teaming :  installation of red teaming  tools     |
| [8] development :  installation of development  tools     |
|                                                           |
-------------------------------------------------------------

Your Choice: pentest




⚔ Choose Between The Pentesting Categories

In this chapter you have the possibility to choose between one or multiple pentesting areas.

Furthermore, you can take either the full name of the category or the number.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9c                      💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


           Please choose between one category
----------------------------------------------------------
|                                                        |
| [1] infrastructure  :   tools for infra  pentesting    |
| [2] iot             :   tools for iot    pentesting    |
| [3] mobile          :   tools for mobile pentesting    |
| [4] web             :   tools for web    pentesting    |
| [5] cloud           :   tools for cloud  pentesting    |
|                                                        |
----------------------------------------------------------

Your Choice: infrastructure

❗Additional

You can take multiple categories in number notation as in the example below, use a , to separate them.

Notice: The same applies if you write out the name in full (e.g. infrastructure,web.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9                       💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


           Please choose between one category
----------------------------------------------------------
|                                                        |
| [1] infrastructure  :   tools for infra  pentesting    |
| [2] iot             :   tools for iot    pentesting    |
| [3] mobile          :   tools for mobile pentesting    |
| [4] web             :   tools for web    pentesting    |
| [5] cloud           :   tools for cloud  pentesting    |
|                                                        |
----------------------------------------------------------

Your Choice: 1,4




⚔ Choose One Of The Two Installation Types

Notice: This selection area appears only if you have selected the Infrastructure category or Forensic before.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.7b                      💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


          Please choose between one installation
----------------------------------------------------------
|                                                        |
|  [1] full          :    full    installation (GUI)     |
|  [2] minimal       :    minimal installation (CLI)     |
|                                                        |
----------------------------------------------------------

Your Choice: full




⚔ Choose Between The Hardening Options

In this chapter you can use the provided hardening measures, also here you have the possibility to choose either one or more settings.

Notice: If you want to skip this part in the future, use the parameter -sH when starting Yggdrasil.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.8                       💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀

----------------------------------------------------------
|                                                        |
| [1] complete         :   complete configuration        |
| [2] Firewall         :   firewall configuration        |
| [3] Sysctl (OS)      :   sysctl   hardening            |
| [4] SSH              :   SSH      hardening            |
| [5] Apache           :   Apache   hardening            |
| [6] nginx            :   nginx    hardening            |
|                                                        |
----------------------------------------------------------

Your Choice: 1




⚔ Configurate Your SSH IP-Address

If you selected SSH hardening in the previous step, then you will be prompted to select one of the available local IP addresses.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.8                       💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


           Please select an IP address to be used
                   for SSH configuration
----------------------------------------------------------

     eth0: 
       -  192.168.56.2 (IPv4)
       -  fe80::XXX:XXXX:XXXX:XXXX (IPv6)
----------------------------------------------------------

Your Choice: 192.168.56.2




⚔ Choose Between The Provided Best Practice Settings

Here you can use the best practice settings, also here it is possible that several can be selected.

Notice: If you want to skip this part in the future, use the parameter -sC when starting Yggdrasil.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9b                      💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


-----------------------------------------------------------
|                                                         |
|  [1] complete      :   complete configuration           |
|  [2] updates       :   automated updates                |
|                        (APT|Docker|Git Packages|Pip)    |
|  [3] alias         :   custom configs                   |
|                        (alias|.bashrc|.zshrc)           |
|  [4] screenrc      :   custom screenrc config           |
|  [5] vim           :   custom vim config                |
|  [6] repo          :   kali repository change           |
|  [7] shredder      :   workspace file shredding script  |
|                        (after 90 days [default])        |
|  [8] tmux          :   custom tmux config               |
|                                                         |
-----------------------------------------------------------

Your Choice: 1




⚔ Choose Between One Of The Two Screenrc Configs

If you selected the screenrc configuration in the previous step, you will now have the choice between two custom configurations.

Thanks here again to @HomeSen.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                            💀
💀                         Yggdrasil                          💀
💀                        Version 0.9b                        💀
💀              Rainer Christian Bjoern Herold                💀
💀                                                            💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


-----------------------------------------------------------------
|                                                               |
|  [1] homesen       :   custom screenrc config (@HomeSen)      |
|  [2] jarl-bjoern   :   custom screenrc config (@jarl-bjoern)  |
|                                                               |
-----------------------------------------------------------------

Your Choice: 2




⚔ Choose Between One Of The Two Vim Configs

If you selected the vim configuration in the previous step, you will now have the choice between two custom configurations.

Thanks here again to the people @HomeSen and @nayaningaloo.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                            💀
💀                         Yggdrasil                          💀
💀                        Version 0.9                         💀
💀              Rainer Christian Bjoern Herold                💀
💀                                                            💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


-----------------------------------------------------------------
|                                                               |
|  [1] homesen       :   custom vim config (@HomeSen)           |
|  [2] nayaningaloo  :   custom vim config (@nayaningaloo)      |
|                                                               |
-----------------------------------------------------------------

Your Choice: 1




⚔ Choose Between One Of The Two Task Settings

If you have selected either the Updater or the Shredder function, you will be redirected to the page below where you have the choice of creating the automated tasks as either a Cronjob or Systemd Unit.

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      Yggdrasil                        💀
💀                     Version 0.9                       💀
💀           Rainer Christian Bjoern Herold              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀


-----------------------------------------------------------
|                                                         |
|  [1] cronjob      :   cronjob configuration             |
|  [2] timer        :   systemd timer configuration       |
|                                                         |
-----------------------------------------------------------

Your Choice: 2




⚔ Installation Process

In the next step, the script will go through all the configured steps and install the tools like in the example below.




⚔ Update The Tool

There are various ways to update the program.

Reset the local git repo and renew it with a pull request.

cd /opt/yggdrasil
git reset --hard HEAD~1 ; git pull

Delete the tool and download again.

rm -rf /opt/yggdrasil
sudo git clone https://github.com/jarl-bjoern/yggdrasil




⚔ Monitoring The Systemd Units

In some cases it can be useful to check whether the units are working. The overview below and a sample excerpt of the command can be used for this purpose.

Unit Description
Yggdrasil_Cargo_Updater The script was designed to trigger the systemd unit to install cargo tool updates.
Yggdrasil_Container_Cleaner The script was designed to trigger the systemd unit to remove old container images.
Yggdrasil_Container_Updates The script was designed to trigger the systemd unit to install docker image updates.
Yggdrasil_GIT_Monitor_Cleaner The script was designed to trigger the systemd unit to remove tools from the update process of the git tools updater which was removed before.
Yggdrasil_GIT_Monitor The script was designed to trigger the systemd unit to monitor the tool path to add new tools to the upgrade process.
Yggdrasil_GIT_Updater The script was designed to trigger the systemd unit to install git tool updates.
Yggdrasil_PIP_Updater The script was designed to trigger the systemd unit to install pip package updates.
Yggdrasil_Rust_Updater The script was designed to trigger the systemd unit to upgrade rust.
Yggdrasil_System_Updates The script was designed to trigger the systemd unit to install system updates.

sudo systemctl status Yggdrasil_GIT_Monitor_Cleaner.serviceYggdrasil_GIT_Monitor_Cleaner.service - The script was designed to be able to install updates automatically via systemd services.
     Loaded: loaded (/lib/systemd/system/Yggdrasil_GIT_Monitor_Cleaner.service; static)
     Active: inactive (dead)

Dec 23 17:16:55 pentest-kali systemd[1]: Finished Yggdrasil_GIT_Monitor_Cleaner.service - The script was designed to be able to install updates automatically via systemd services..
Dec 23 17:18:43 pentest-kali systemd[1]: Starting Yggdrasil_GIT_Monitor_Cleaner.service - The script was designed to be able to install updates automatically via systemd services....
Dec 23 17:18:44 pentest-kali systemd[1]: Yggdrasil_GIT_Monitor_Cleaner.service: Deactivated successfully.
Dec 23 17:18:44 pentest-kali systemd[1]: Finished Yggdrasil_GIT_Monitor_Cleaner.service - The script was designed to be able to install updates automatically via systemd services..

Clone this wiki locally