Bonjour,
tout le monde. Avec l'aide de l'IA, pour être honnête .J'ai trouvé un script bash pour tester les hashs des programmes sous linux;
Au cas où l'IA est trop chère,ça permet de démocratiser les astuces
pour le rendre executable commencez par faire ceci :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 #!/usr/bin/env bash # inventaire-systeme.sh Inventaire des programmes, noyaux, versions et hashs SHA-256 # Usage : sudo bash inventaire-systeme.sh [dossier_de_sortie] set -uo pipefail if [[ $EUID -ne 0 ]]; then echo "Lance ce script avec sudo (les fichiers de /boot ne sont lisibles que par root)." >&2 exit 1 fi VRAI_USER="${SUDO_USER:-root}" VRAI_HOME=$(getent passwd "$VRAI_USER" | cut -d: -f6) BASE="${1:-$VRAI_HOME/inventaire}" DIR="$BASE/$(hostname)_$(date +%Y-%m-%d_%H%M%S)" mkdir -p "$DIR" echo "Inventaire dans : $DIR" # 1. Système { echo "Date : $(date --iso-8601=seconds)" echo "Hôte : $(hostname)" echo "Noyau : $(uname -r)" uname -a echo; cat /etc/os-release } > "$DIR/01-systeme.txt" # 2. Noyaux installés (paquets) + hashs des fichiers de /boot { echo "Noyau en cours d'exécution : $(uname -r)"; echo dpkg-query -W -f='${db:Status-Abbrev}\t${Package}\t${Version}\n' \ 'linux-image-*' 'linux-modules-*' 'linux-headers-*' 2>/dev/null \ | awk -F'\t' '$1 ~ /^ii/ {print $2 "\t" $3}' | sort } > "$DIR/02-noyaux.txt" sha256sum /boot/vmlinuz-* /boot/initrd.img-* /boot/config-* /boot/System.map-* \ 2>/dev/null > "$DIR/02-noyaux-sha256.txt" # 3. Modules noyau chargés + hash de leur fichier + DKMS (ex. NVIDIA) { lsmod | awk 'NR>1 {print $1}' | sort | while read -r m; do f=$(modinfo -n "$m" 2>/dev/null) v=$(modinfo -F version "$m" 2>/dev/null) if [[ -f "$f" ]]; then printf '%s\t%s\t%s\n' "$m" "${v:--}" "$(sha256sum "$f" | cut -d' ' -f1) $f" else printf '%s\t%s\t%s\n' "$m" "${v:--}" "(intégré au noyau ou fichier introuvable)" fi done } > "$DIR/03-modules-charges.tsv" command -v dkms >/dev/null && dkms status > "$DIR/03-dkms.txt" 2>&1 # 4. Paquets .deb installés avec version dpkg-query -W -f='${db:Status-Abbrev}\t${Package}\t${Version}\t${Architecture}\n' \ | awk -F'\t' '$1 ~ /^ii/ {print $2 "\t" $3 "\t" $4}' | sort > "$DIR/04-paquets-deb.tsv" # 5. Autres gestionnaires : snap, flatpak, pipx (utilisateur) command -v snap >/dev/null && snap list > "$DIR/05-snap.txt" 2>&1 command -v flatpak >/dev/null && flatpak list --columns=application,version,branch,origin \ > "$DIR/05-flatpak.txt" 2>&1 command -v pipx >/dev/null && sudo -u "$VRAI_USER" pipx list --short \ > "$DIR/05-pipx.txt" 2>&1 # 6. Hash SHA-256 de tous les exécutables système find /usr/bin /usr/sbin /usr/lib/systemd /usr/libexec -xdev -type f -perm /111 \ -exec sha256sum {} + 2>/dev/null | sort -k2 > "$DIR/06-executables-systeme-sha256.txt" # 7. Exécutables HORS paquets (installés à la main : les plus à surveiller) find /usr/local/bin /usr/local/sbin /opt "$VRAI_HOME/.local/bin" -type f -perm /111 \ -exec sha256sum {} + 2>/dev/null | sort -k2 > "$DIR/07-executables-hors-paquets-sha256.txt" # 8. Fichiers de paquets modifiés par rapport à Ubuntu (si debsums est installé) if command -v debsums >/dev/null; then echo "Vérification debsums (quelques minutes)..." debsums -s 2>&1 | grep -v 'no md5sums' > "$DIR/08-debsums-modifies.txt" fi # 9. Empreinte de l'inventaire lui-même + archive ( cd "$DIR" && sha256sum ./*.t* > SHA256SUMS ) tar -czf "$DIR.tar.gz" -C "$BASE" "$(basename "$DIR")" sha256sum "$DIR.tar.gz" > "$DIR.tar.gz.sha256" chown -R "$VRAI_USER": "$BASE" echo "Terminé." echo "Archive : $DIR.tar.gz" echo "Empreinte: $(cut -d' ' -f1 "$DIR.tar.gz.sha256")"
puis l'éxécuter comme ceci :Code:
1
2 sudo chmod +x ./inventaire-systeme.sh
Qu'est ce que vous en pensez ? Nhésitez surtout pas à critiquer si besoinCode:
1
2
3
4 sudo apt install debsums aide sudo ./inventaire-systeme.sh sudo aideinit && sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Cordialement
Alexandre M
