Fondamentaux offensifs
Linux pour le hacker
Linux est le terrain de jeu du pentester : distributions offensives, shells omniprésents et machines cibles fonctionnent dessus. Cette fiche condensée réunit les gestes indispensables — naviguer, gérer les permissions, comprendre les privilèges, sonder le réseau, chercher vite et scripter. Chaque commande tient dans un bloc à copier, expliquée en une phrase.
Cadre légal & éthique
Quelques commandes ci-dessous (recherche de binaires SUID, netcat, énumération de privilèges) relèvent de l'audit offensif. N'utilisez ces techniques que sur des systèmes qui vous appartiennent ou pour lesquels vous disposez d'une autorisation écrite. En France, l'accès ou le maintien frauduleux dans un système de traitement automatisé de données est réprimé (art. 323-1 et suivants du Code pénal). Entraînez-vous dans votre propre laboratoire ou sur des plateformes prévues à cet effet.
🔐 Permissions (chmod / chown / SUID)
Comprendre et modifier les droits UNIX est central : c'est là que se cachent bien des chemins d'escalade.
ls -l fichierLit les permissions rwx du propriétaire, du groupe et des autres.
chmod 750 script.shRestreint l'exécution au propriétaire et aux membres du groupe.
chmod +x maintenance.shRend un script exécutable pour pouvoir le lancer directement.
chmod u+s binairePositionne le bit SUID : le binaire s'exécute avec les droits de son propriétaire.
chown root:secops /srv/outilsAssigne la propriété d'un dossier à un utilisateur et un groupe.
umask 027Définit les permissions retirées par défaut aux nouveaux fichiers.
getfacl fichierAffiche les ACL étendues au-delà des droits UNIX classiques.
find / -perm -4000 -type f 2>/dev/nullRecherche les binaires SUID, piste classique d'élévation de privilèges.
👥 Utilisateurs & privilèges
Savoir qui vous êtes, ce que vous pouvez faire et par où grimper vers root.
whoamiVérifie l'utilisateur effectif avant d'agir.
idAffiche UID, GID et groupes pour comprendre vos droits.
sudo -lListe les commandes autorisées en sudo, souvent une voie d'escalade.
sudo <commande>Exécute une commande avec les privilèges root après authentification.
su - analysteOuvre une session sous un autre compte utilisateur.
sudo useradd analysteCrée un nouveau compte sur le système.
passwd analysteInitialise ou change le mot de passe d'un compte.
cat /etc/passwdÉnumère les comptes locaux et leurs shells de connexion.
groups analysteAffiche les groupes d'un utilisateur pour cerner ses accès.
🌐 Réseau (ip, ss, netcat)
Cartographier les interfaces, repérer les ports ouverts et manipuler des connexions brutes.
ip aListe toutes les interfaces et leurs adresses IP.
ip routeAffiche la table de routage et la passerelle par défaut.
ss -tulpnMontre les ports en écoute et les processus associés.
ss -tan state establishedListe les connexions TCP actives en cours.
nc -lvnp 4444Ouvre un listener netcat en attente d'une connexion entrante.
nc -vz 10.0.0.5 22Teste rapidement si un port distant est ouvert.
curl -s ifconfig.meRécupère l'adresse IP publique vue depuis l'extérieur.
scp rapport.txt user@10.0.0.5:/srv/Transfère un fichier chiffré vers un serveur distant.
ssh user@10.0.0.5Ouvre une session distante chiffrée sur un hôte.
🔎 Recherche (find / grep)
Trouver un fichier, filtrer une chaîne, isoler l'information utile dans le bruit.
find /var/log -name "*.log"Repère tous les journaux d'un répertoire par motif de nom.
find / -writable -type d 2>/dev/nullListe les dossiers modifiables, utiles pour déposer un payload.
find . -mtime -1Trouve les fichiers modifiés dans les dernières 24 heures.
grep -Ri "password" /etc 2>/dev/nullCherche récursivement des secrets en clair dans la configuration.
grep -n "error" app.logAffiche les lignes contenant « error » avec leur numéro.
grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}" fichierExtrait toutes les adresses IPv4 d'un fichier via une regex.
locate sshd_configRetrouve instantanément un fichier via l'index système.
which python3Indique le chemin de l'exécutable trouvé dans le PATH.
⚙️ Processus & services
Observer ce qui tourne, piloter les services systemd et couper un processus au besoin.
ps aux | headAffiche un aperçu des processus actifs classés par utilisateur.
ps -ef | grep sshFiltre les processus liés à un service précis.
topSurveille en direct la charge CPU, mémoire et tâches.
systemctl status sshContrôle l'état du service SSH et son dernier journal.
systemctl restart nginxRedémarre un service après modification de configuration.
systemctl list-units --type=serviceÉnumère les services chargés pour repérer l'inhabituel.
kill -9 1234Termine un processus récalcitrant par son PID.
nohup ./tache.sh &Lance une tâche en arrière-plan qui survit à la fermeture du shell.
🧩 Scripting bash de base
Automatiser une routine et enchaîner des commandes : la brique de tout outillage maison.
nano maintenance.shÉdite rapidement un script shell léger.
#!/bin/bashShebang à placer en première ligne pour désigner l'interpréteur.
for ip in $(cat ips.txt); do ping -c1 $ip; doneBoucle sur une liste d'hôtes pour un test de disponibilité.
if [ -f fichier ]; then echo "présent"; fiTeste l'existence d'un fichier avant d'agir.
./maintenance.shLance le script courant une fois rendu exécutable.
crontab -ePlanifie une tâche récurrente pour automatiser vos routines.
alias ll='ls -lah'Crée un raccourci de commande pour la session courante.
watch -n5 'ss -tulpn'Réexécute une commande toutes les cinq secondes pour un suivi.
🧾 Journaux & traces
Lire les logs, quantifier l'activité et suivre les événements en temps réel.
journalctl -u ssh --since "15 min ago"Consulte les logs récents d'un service ciblé.
tail -f /var/log/syslogSuit en direct les journaux système pour réagir vite.
grep "Failed password" /var/log/auth.logRepère les tentatives de connexion SSH échouées.
wc -l /var/log/auth.logCompte les lignes d'un log pour estimer l'activité.
awk -F: '{print $1, $3}' /etc/passwdAffiche les couples utilisateur/UID en une ligne d'awk.
sort ips.txt | uniq -c | sort -nr | head -5Compresse les doublons et sort les cinq IP les plus fréquentes.
last -n 10Liste les dernières connexions au système.
history | tail -20Rappelle les vingt dernières commandes pour documenter.
Pour aller plus loin