Comment effacer ses traces...


Résumé
Tout hacker s'introduisant dans un système connecté (=attaquant puis intrus !! ) cherche à :
- masquer les traces de son passage
- ne pas se faire prendre suite à une intrusion .
Ci-après les méthodes proposées par van Hauser / THC (HTML-version by Markus Hübner).

Un bon hacker doit s'autodiscipliner si il veut durer
toute intrusion dans un système est considérée comme un délit en France et un comportement pénalement répréhensible partout ailleurs.
Règle de survie 1 : cryptage
Règle de survie 2 : organiser sa connexion
Règle de survie 3 : gérer le compte utilisateur
Règle de survie 4 : balayer derrière soi
Règle de survie 5 : manipuler les logs
Règle de survie 6 : manipuler les programmes de sécurité
Règle de survie 7 : qui est l'administrateur ?

--------------------------------------------------------------------------------

Règle de Survie 1 : protéger toute donnée en la cryptant

Contre :

les administrateurs systèmes lisant les courriers électroniques :
les autorités enregistrant les numéros de téléphone
la justice saisissant votre ordinateur avec les données de hack
Comment :
Les débutants n'ont besoin que de PGP, d'un logiciel de cryptographie de fichers et de disque dur

N'oubliez pas ! : l'utilisation des logiciels de cryptographie est encore interdit en France

Crypteur de disque dur

MsDos : SFS v1.17 ou SecureDrive 1.4b
Amiga : EnigmaII v1.5
Unix : CFS v1.33
Crypteur de fichier
Triple DES
IDEA
Blowfish
Crypteur d'e-mail
PGP v2.6.x
Crypteur de conversations téléphoniques
Nautilus v1.5a
Crypteur de sessions telnet
SSH
DES-Login
Sauvegardes des données cryptées
PK ou WIN ZIP
ARJ
Règle de Survie 2 : organiser son intrusion pour éviter d'être identifié
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 :

vérifiant les fichiers log enregistrant toute activité
analyser les fichiers espions (sniffers) installés par l'intrus
utiliser des programmes d'audit comme loginlog,
vérifier les connexions en cours avec "netstat"
Comment :
Utiliser un serveur d'attaque entre le serveur d'origine et le serveur cible

Le serveur d'origine :
serveur initial à partir duquel le hacker se connecte à Internet, généralement par appel téléphonique (accès dialup à un fournisseur d'accès par exemple)
règles :
le dialup ne rend pas nécessaire de modifier les logs d'activité sur le serveur d'origine (adresse IP allouée dynamiquement).
NE RIEN modifier sur ce serveur
utiliser plusieurs comptes utilisateurs
changer de fournisseur d'accès tous les deux mois
ne craquer les mots de passe QUE sur le PC ou la machine appelante

Le serveur d'attaque
serveur tampon sur lequel le hacker dispose d'un compte avec un accès ROOT.
En utilisant différents fournisseurs d'accès chaque jour il ne sera pas nécessaire d'utiliser un serveur d'attaque
règles :
localisé de préférence à l'étranger
modifier les fichiers log pour effacer les traces de son passage
changer de serveur d'attaque toutes les deux semaines sans réutilisation avant 1 mois
utiliser un programme de renvoi pour exécuter ISS, SATAN,.. : appelé sur un port spécial, ce programme ouvre automatiquement une connexion avec un autre serveur
ne lancer les programmes comme ypx, iss, satan ... qu'après les avoir renommés : ils n'apparaitront pas en clair dans la liste des processus en cours d'éxécution (PS -l sous Unix)
ne pas rentrer de paramètres dans les lignes de commandes de lancement des programmes comme Telnet, mais utiliser les commandes internes
"telnet" puis "open target.host.com" ...

Le serveur cible
serveur cible que le hacker cherche à pénètrer.
règles :
localisé De préférence à l'étranger
ne pas se créer un utilisateur sur un système cible mais plutôt laisser un programme à réinterroger ("bakdoor") comme ping, quota or login puis utiliser fix pour corriger le atime et mtime
faire un "w" pour examiner les utilisateurs connectés. Si l'adresse du serveur d'attaque apparaît dans les références, faire "rlogin serveur cible" pour que l'adresse se transforme en quelque chose comme "tty00"
Sécuriser l'organisation des modes de connexions
A utiliser

Hacker / Serveur d'origine : de préférence un accès via modem pour connexion par dialup.
Hacker / serveur d'attaque : telnet du serveur d'origine sur le serveur d'attaque
Hacker / serveur cible : telnet du serveur d'attaque sur le serveur cible
Règles
Le serveur d'origine peut connaître le numéro appelant.
Ne pas utiliser son numéro de téléphone réel mais passer par un système de rappel (carding/bluebox/hack d'un PABX) Cette précaution est parfois inutile car les compagnies de téléphone (privées - ATT -ou publique -Danemark -)

D'anciens clients telnet exportent la variable USER. En modifiant le telnetd un administrateur peut obtenir le nom de tous les connectés
Les nouvelles versions exportent les variables UID, MAIL and HOME
Avant tout telnet, il faut donc changer les variables USER, UID, MAIL et PWD,HOME.
La recommendation
Changer les variables d'environnement de votre Telnet :
sous win : accéder aux paramètres de configuration système et logiciel
sous Unix :
SH : <>=<_value>;export <> ; exemple : USER=nobody;export USER
CSH: setenv <> <_value>; exemple : setenv USER nobody
Règle de Survie 3 : gérer son compte utilisateur sur le serveur d'origine
Contre :

les administrateurs du serveur sur lequel se trouve le compte utilisateur
Comment :
Ne pas utiliser son compte utilisateur pour tout ce qui a trait aux activités de Hack
Ne pas laisser de fichiers ou outils de Hack sur son répertoire utilisateur
Systématiquement supprimer les messages électroniques reçus sur le serveur de messagerie (si POP3 utiliser get + delete)
Ne pas utiliser son adresse email réelle (commande EXPN de sendmail sous Unix !)
N'accepter de recevoir ou d'envoyer que des messages cryptés
Règle de Survie 4 : ne rien laisser dans les répertoires HOME ou TMP des serveurs
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>>.logout
La 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 :

WTMP - chaque connexion/déconnexion avec l'heure, le serveur et le terminal concernél
UTMP - tous les utilisateurs connectés à un moment donné
LASTLOG - origine des connexions
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