Comment effacer ses traces...
Règle de Survie 1 : protéger toute donnée en la cryptant
Contre :
les administrateurs systèmes lisant les courriers électroniques :Comment :
les autorités enregistrant les numéros de téléphone
la justice saisissant votre ordinateur avec les données de hack
Les débutants n'ont besoin que de PGP, d'un logiciel de cryptographie de fichers et de disque dur
Crypteur de disque dur
Quoi ? :
Une tentative d'intrusion peut être détectée. Il ne faut pas que l'intrus puisse être identifié et retrouvé
Contre :
Tout administrateur système peut très facilement identifier un intrus en :
Utiliser un serveur d'attaque entre le serveur d'origine et le serveur cible
A utiliser
Contre :
les administrateurs du serveur sur lequel se trouve le compte utilisateurComment :
Quoi ? :
Fichiers d'historique de lancement du Shell Unix
Toute commande peut être mémorisée dans un fichier
d'historique : il est recommandé de lancer deux shells à
la connexion pour vérifier les données enregistrées
dans ce fichier.
Fichiers concernés selon la version d'Unix
sh: | .sh_history |
csh: | .history |
ksh: | .sh_history |
bash: | .bash_history |
zsh: | .history |
Fichiers de sauvegarde (backup) Unix
dead.letter, *.bak, *~
Contre :
les analyses d'activités d'utilisateurs par les administrateurs du serveur
Comment :
Lister tous les éléments modifiés avant de se déconnecter : ls -altr
Utiliser les commandes csh suivantes pour effacer les données d'historique sans laisser de traces.
mv .logout save.1 echo rm .history>.logout echo rm .logout>>.logout echo mv save.1 .logout>>.logoutLa recommendation
'The first command you should enter after logging in with a hacked account is a shell different from the one you are currently running as login shell. The purpose is to disable history saving of the commands you'll type in while hacking. A history check by the real user or sysadmin reveils your presence and what you did!! If you are running a CSH then execute a SH and vice versa. "
Règle de Survie 5 : comprendre et nettoyer les "logs" des serveurs
Quoi ? :
Sous Unix il faut connaître au minimum 3 fichiers de log importants :
D'autres existent, qui seront abordésci-dessous. Toute connexion par telnet, ftp, rlogin ou rsh est enregistrée dans ces fichiers .Contre :
l'administrateur du serveur cible peut analyser ces fichiers ou utiliser des commandes statistiques (lastlogin par exemple) pour savoir :
a) quant l'intrusion a eu lieu
b) le serveur d'origine de l'intrusion
c) le temps et une estimation de l'impact de l'intrusion
Comment :
Effacer les traces de son passage des fichiers logs de base WTMP, UTMP, LASTLOG.
Localisation par défaut des fichiers logs : (variable selon les distributions d'Unix)
UTMP : /etc or /var/adm ou /usr/adm ou /usr/var/adm ou /var/logIl est stupide d'effacer ces fichiers sur le serveur cible : l'administrateur saura immédiatement que l'intrusion a eu lieu
WTMP : /etc or /var/adm ou /usr/adm ou /usr/var/adm ou /var/log
LASTLOG : /usr/var/adm ou /usr/adm ou /var/adm ou /var/log ou HOME/.lastlog
Il est recommandé d'utiliser un programme de modification de ces fichiers logs.
Autorisation nécessaire :
Normalement ces modifications ne sont possibles que par ROOT
Si l'accès ROOT n'a pas été obtenu, il suffit pour certaines versions d'Unix de faire un rlogin lors de votre connexion sur le serveur pour modifier - le LASTLOG, - les données UTMP (effacées)
Trouver et manipuler tous les autres fichers log
Trouver tous les fichiers ouverts
Comme tous les fichiers log écrivent quelque part, utiliser
le programme LSOF - LiSt Open Files - pour identifier tous les fichiers
ouverts, vérifier leur contenu et éventuellement le modifier
Trouver tous les fichiers modifiés après la connexion
Juste après la connexion faire "touch /tmp/check" avant
de continuer à travailler.
Par la suite faire "find / -newer /tmp/check -print" ou "find
/ -ctime 0 -print" ou "find / -cmin 0 -print", vérifier
les fichiers, identifier les fichiers d'audit et les modifier.
Vérifier les répertoires par défaut
/usr/adm, /var/adm ou /var/log.
Vérifier les serveurs distants recevant les logs (messages
envoyés à @loghost)
Problème : pénétrer le serveur de logs et manipuler
la messagerie...très compliqué
Pour éliminer le nom d'intrusion des messages à expédier
: "grep -v evil.host.com messages > /tmp/tmpfile; mv /tmp/tmpfile messages"
Vérifier la configuration des syslogs
Le programme syslog enregistre les logs dans des fichiers spéciaux.
Son fichier de configuration est /etc/syslog.conf. :
Les entrées kern.*, auth.* and authpriv.* doivent être vérifiéesManipuler les logs sous format texte
Les sorties paramétrées doivent être vérifiées
- les fichiers peuvent être modifiés
- les serveurs distants sont identifiés
- les utilisateurs destinataires sont définis : dans ce cas il faut générer de faux logs pour noyer les vôtres : "echo 17:04 12-05-85 kernel sendmail[243]: can't resolve bla.bla.com > /dev/console".
Manipuler les logs sous format données
Identifier le programme gérant les données
obtenir le programme
trouver la structure du fichier de données
adapter zap, clear, cloak,... pour produire des fichiers structurés
de la même manière
Manipuler les logs de comptabilisation
utiliser acct-cleaner de zhart
Obtenir les programmes nécessaires
LISTE DES PROGRAMMES DE MODIFICATION DES LOGS | |
---|---|
ah-1_0b.tar | Change les entrées des logs de comptabilisation |
clear.c | Effacement des entrées dans utmp, wtmp, lastlog et wtmpx |
cloak2.c | Changement des entrées dans utmp, wtmp et lastlog |
invisible.c | Réécrit utmp, wtmp et lastlog avec des valeurs prédéfinies. |
marryv11.c | Edite utmp, wtmp, lastlog et données de comptabilisation -*** |
wzap.c | Effacement des entrées dans wtmp |
wtmped.c | Effacement des entrées dans wtmp |
zap.c | Réécrit utmp, wtmp, lastlog - Attention : détectable !!! |
"Pour modifier le LASTLOG sans toucher au fichier, une fois connecté, lancer un rlogin "serveur cible" avec le login et pass du compte utilisateur hacké. Cela a pour effet d'enregistrer un LASTLOGIN à partir du serveur et non à partir de l'extérieur..."
Règle de Survie 6 : comprendre et manipuler les programmes de sécurité installés
Quoi ? :
Sur les serveurs sécurisés, les programmes de sécurité sont lancés à intervalles périodiques par cron.Ces programmes vérifient les tailles de fichiers ou analysent les logs serveurs. Ils peuvent être également stockés dans les répertoires adm ou ~bin (pour les sniffers)
Contre :
Les détections automatisées de programmes espions installés (sniffers, programmes remplacés ou chevaux de troie) par l'intrus
Comment :
Accéder aux paramètres de cron.
Le répertoire par défaut des crontabs est /var/spool/cron/crontabs.
Vérifier toutes les entrées, surtout les fichiers "root"
et analyser les programmes lancés.
Faire par exemple "crontab -l root".
Les programmes d'audit peuvent être : tiger, cops, spi, tripwire,
l5,binaudit, hobgoblin, s3,...
Il s'agit de savoir ce qu'ils enregistrent et si ils enregistrent...
Si ils sont actifs pour enregistrer les fichiers sniffers installés
par les intrus , faire ...
Programme | Localisation par défaut | Nom de l'éxé |
---|---|---|
tripwire | /usr/adm/tcheck, /usr/local/adm/tcheck | databases, tripwire |
binaudit | /usr/local/adm/audit | auditscan |
hobgoblin | ~user/bin | hobgoblin |
raudit | ~user/bin | raudit.pl |
l5 | compile directory | l5 |
En cas de remplacement d'un programme standard, utiliser la commande "touch" pour modifier les atime and mtime.ctime ne peut être changé que par écriture sur le disque...
En cas d'installation d'un sniffer, crypter les données de sortie...
Règle de Survie 7 :connaître les administrateurs système
Qui est root ?
Pour trouver les 1 à 6 administrateurs système, vérifier le fichier .forward, les entrées d'alias, les sulog pour root, les groupes "administration", le fichier des mots de passe.
Vérifier les mesures de sécurité de root
Après être rentré dans leur répertoire, vérifier les fichiers .history/.sh_history/.bash_history pour retrouver les commandes habituelles, vérifier les fichiers .profile/.login/.bash_profile pour repérer les aliases, vérifier que des auto-security checks ou logging ne sont pas effectués, vérifier les répertoires ~/bin à la recherche des programmes d'audit (ls -alR ~/ ou ls -alH sous HP UX)
Toutes ces informations ne vous sont proposées qu'à titre pédagogique...