Skip to content

⚔ Tool Usage

Rainer Christian Björn Herold edited this page Sep 1, 2024 · 19 revisions

⚔ Basic Usage

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              💀
💀                                                       💀
💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀

Warning

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

Warning

If there are problems with the above version, the version must be switched to the stable release by using the following instructions.

Visit the page Releases and download the latest version.

Caution

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




⚔ Help Section

-------------------------------------------------------------------------------------
|  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
                          - smb

                        ---------------------------------------------------------------
  -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.

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




⚔ Category Types

After the initial start of the program, a selection from several categories should be displayed.

The selection can be made either with the full name of the category or the corresponding number.

Important

It is currently only possible to choose between one main category!

💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀💀
💀                                                       💀
💀                      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




⚔ Pentesting Categories

In this chapter it is possible to choose between one or multiple pentesting areas.

The selection can be made either with the full name of the category or the corresponding 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

Multiple categories can be selected as in the example below using the number notation, whereby they are separated by a ,.

Note

The same effect occurs if the full name is separated by a comma (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




⚔ Installation Types

Important

This selection area appears only if Infrastructure or Forensic was selected 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




⚔ 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.

Tip

The part can be skipped the next time by using 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




⚔ Configuration of the 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




⚔ Best Practice Settings

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

Tip

The part can be skipped the next time by using 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




⚔ 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




⚔ 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




⚔ 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.service

○ Yggdrasil_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