Vous êtes sur la page 1sur 4

Backdoors :

Ce nom est particulièrement explicite comme vous aurez pu le remarquer. Il s'agit


en effet d'une porte de derrière, quelque chose qui fait que vous puissiez rentrer
sur un serveur sans avoir à hacker ou à rehacker celui ci. Les backdoors
n'existent pas de base sur un système (même si certaines négligence d'admin
nous font des fois penser le contraire), elles sont crées par des hackers ce qui fait
que vous ne pourrez pénétrer un système de cette manière que si vous ou un
précédent visiteur en avez placé. Celà permet en fait de garder un accès à un
système si sa sécurité à été renforcé par la suite ou si le password du root a été
changé.
Il existe énormement de types de backdoors et les énoncer tous est impossible
mais je peux vous en résumer les principaux types et effets. Une backdoors
permet de garder un accès à la bécane précédement hackée alors vous avez tous
pensé au troyen. En effet moi j'incluerais les troyens comme un type de backdoor
bien que tous ne partagent pas mon avis la dessus. Mais vu que le but de ce
genre de programmes est le même je ne vois pas pourquoi ne pas le qualifier de
backdoors bien que souent les troyens et backdoors soient différencié dans les
discutions. Une backdoor peut en effet être beaucoup de choses. Un programme
(comme les troyens) ou une ligne de code dans un programme (agissant sur le
système des que celui est lancé) ou même une simple ligne de texte placé dans
des fichiers spécifiques comme les bien connu /etc/passwd ou /etc/shadow.
Tout ce qui peut permettre de créer un accès au serveur peut être qualifié de
backdoor. Bien souvent pour pouvoir en placer une il faut être root sur le serveur
sinon soit la backdoor est inéficasse (cas des scripts qui ecrivent dans fichiers
ayant le suid root comme le /etc/passwd) soit elle ne permet que l'accès à un
shell (ce qui est déjà pas mal vu qu'un shell est souvent la chose la plus dure à
obtenir). Donc ici nous admettrons que vous êtes passé root et que donc vous
avez été bombardé administrateur provisoir du serveur ;-). Et bien pour quelques
heures ou quelques jours ce serveur est le votre et votre but sera de faire des
modifications dans celui de manière à en afféblir la sécurité. Ici deux techniques
s'affrontent:
La première est de ne placer qu'une seule backdoor mais relativement bien
cachée et dont vous êtes très confiant en tout cas suffisement pour être sûr que
l'administrateur ne pourra la retrouver. L'intérêt de cette technique est que le
root (pas vous cette fois) ne soubsonne pas l'existance de celle ci même après
avoir vérifié le système.
La seconde est de placer le nombre le plus important de backdoor de tous types.
Cette fois l'administrateur devrait les découvrir, ou ou moins une mais l'interet ici
c'est qu'il ne les trouve pas toute, qu'il en laisse au moins une. Ceci a des
chances de marcher car l'administrateur n'a aucun moyen de savoir combien
vous en avez placé.
Ces deux techniques se défendent et ont leur partisants. Moi personnellement je
les utilise toutes les deux car je n'arrive jamais trop à faire mon choix. Dites vious
juste que si le serveur est secure il vaut mieux en mettre beaucoup et que si ce
n'est pas le cas de n'en mettre qu'une seule car un bon administrateur sera dira
plus facilement "bon ca doit être bon maintenant, j'en ai enlevé cinq" plutôt que
"tient j'ai été hacké, oh il a pas du mettre de backdoors".
Passons maintenant aux différents types de bacdoors. Moi personnellemnt j'adore
en programmer parce que cacher des programmes dans d'autres programmes
qui agissent sur d'autres programmes qui font encore d'autres actions c'est
vraiment ce que j'adore. C'est un peu confu à vu de nez mais c'est super simpa à
faire et je vous insite à le faire car cela vous pousse à trouver les endroits les plus
faibles d'un système ainsi qu'à apprendre sur son administration et aussi sur la
programmation. je vais citer les backdoors que je connais, à vous ensuite de faire
des mix et votre propre tambouille pour combiner tout et voir ou vous pourrez
cacher ça.
- Firewall: Si le serveur à un Firewall vous pouvez changer sa configuration pour le
rendre inactif ou bien lui demander d'accepter certaines requettes spécifiques ce
qui aura pour but de vous laisser un plus grand accès au serveur.
- Ftp: Vous pouvez ouvrir le port Ftp s'il n'est pas ouvert grace au fichier
/etc/inetd.conf et en enlevant le # devant la ligne concernant le Ftp ou même
créer un acces anonymous si cela n'a déja été fait.
- Telnet: Dans le cas ou les serveur utilisant le ssh vous pouvez ouvrir le telnet
pour pouvoir sniffer ensuite le réseau et récupérer les pass qui s'y baladent (ceux
ci ne seront pas cryptés contrairement au ssh).
- /etc/passwd: Vous pouvez rajouter une ligne au fichier /etc/passwd si celui ci
n'est pas shadow créant un nouvel user ce qui vous ouvrira un shell. Ne le faites
pas si le fichier ne contient qu'une vaingtaime de lignes mais je garanti le succès
si celui ci en contient plus de 300. Bien sûr ne rajoutez pas la ligne tout au début
ou à la fin mais noyez le dans la masse. De plus si le serveur est japonais ne
créez pas un user Dupont cela risquerait de faire tache au milieu des Hirotashi et
Mitoshu ;-) Une chose à ne jamais faire cependant c'est changer de passwd du
root ou des users. Du root surtout pas car l'administrateur sera bien embetté et
cela s'apprentra plus à du crashing en fait et en plus cela ne sera pas une
backdoor vu que le root soit le changera, soit réinstallera. Et non plus les users
même si c'est beaucoup moins grave car sur une pleinte de l'user,
l'administrateur changera le pass et votre backdoor sera efféce de par là même.
Vous pouvez éventuellement réouvrir des anciens accounts (les admin ne les
effacent pas tout le temps, il n'est pas rare de voir dans le fichier passwd des
lignes correspondants à des account fermés car le passwd a été remplacé par
une *. Je ne parle pas des fichier passwd si le serveur en contient des shadows
sinon vous vous demenderez pourquoi l'account du root est fermé (en vacance?)
;-)
- /etc/shadow: Même chose que pour le /etc/passwd si les passwords sont
shadows. Cependant le fichier n'est pas toujours dans ce répertoire. Reportez
vous à l'article "passwords shadows" pour voir l'endroit où ils se trouvent selon
les systèmes. Vous pouvez même désinstaller le prog qui fait que les fichiers
passwd deviennent shadows mais ça j'ai jamais fait et je doute que cela soit
possible. Bah ouais où est l'intéret pour un admin de baisser sa sécurité? Enfin
désinstaller je sais pas mais je pense que cela créera des problèmes (sûrement
comme le fait d'enlever les droits users au /etc/passwd).
- rlogin: Ceci est une fonction d'Unix qui permet d'avoir un shell si dans la
configuration de celui ci (voir /etc/hosts.equiv) il y a une ligne vous concernant. A
vous de la configurer en conséquence :-)
- rsh: Pareil que le rlogin à quelques différences près mais en gros c'est la même
chose alors la même ligne de conduite s'impose...
- rcp: A ne pas confondre avec "rpc" est la dernière commande r existante (et oui
ça s'appelle des commandes r). Elle est pareille que le rlogin et le rsh sauf qui le
si rlogin peu s'apparenter au telnet, rcp s'apparenterais plus au ftp vu qu'il
permet comme le ftp d'échanger des fichiers entre le serveur et l'ordinateur
correspondant à la configuration du /etc/host.equiv.
- ssh: J'en ai un peu parlé précédement quand j'ai abordé la backdoor au niveau
du telnet. Ce qui différencie ce service du telnet mis à part le cryptage de
données c'est que celui ci n'a pas besoin de mot de pass alors que le telnet va
chercher ses login/password dans le fichier /etc/passwd ou /etc/shadow. Ssh
serait alors plus apparenté au rsh sauf que les mot de pass transitants sur le
réseau sont cryptés. Et comme le rsh, la configuration se fait dans
/etc/host.equiv. On ne sait jamais, l'administrateur n'est pas obligé de se douter
que le ssh (Secure SHell) pourrait être une backdoor, surtout avec le nom que
celui ci se trimballe. Gage de sécurité non? arf ;-)
- Troyen: Bon ça tout le monde connait et j'ai fait un article dessus dans ce site
alors allez vous y référez. Sachez que bien sûr les troyens pour UNIX existent et
que si vous vouliez vous pourriez même en faire un vous même...
- Port: Affaiblir la sécurité passe aussi par le fait d'ouvrir des ports intéressants
comme le finger, le whois, le rpc ou encore d'autres...
- Cgi: Si le serveur a un serveur http vous pouvez installer des scripts cgi bugés
qui vous permetteront de faire différentes choses sur le serveur. Et vous pourriez
même, pourquoi pas, créer vos propres scripts cgi bugués à mort. Et même
pourquoi pas les lancer en temps que root ce qu'il ferait qu'ils auraient le suid
root et donc vous donnerait l'accès root directement.
- Nfs: La vous pouvez un UID/GID (le votre bien sûr) à accèder au serveur ce qui
fera que vous pourrez exporter des fichiers ou/et retrouver un shell la prochaine
fois via ce biais.
Voila ce sont les principales types de backdoors mais beaucoup de variables sont
possibles. Par exemple créer un account avec le même groupe que le root ce qui
permettrait de poouvoir se connecter directement en root. Toutes ces techniques
ou presque peuvent être faites manuellement mais l'interêt est de les inclure
dans un programme. Car cela a quelques avantages. Par exemple celui de
pouvoir refaire des modifications une fois que le root les ai effacé. Prenons
l'exemple d'un petit programme (6 lignes pas plus) qui est placé dans
/etc/rc.d/init.d et qui a pour but d'ecrire dans le fichier /etc/passwd. Vous lancez
ce programme en partant du serveur. Le root s'amène et voit qu'il a été hacké, il
cherche les backdoors et voit une ligne rajoutée dans le /etc/passwd. Ni une ni
deux, il la vire. Votre backdoor serait dead si vous n'aviez que mis une ligne dans
ce fichier manuellement mais là vous avez fait un programme. Alors si vous
rendez compte que votre backdoor ne marche plus, vous faites un DoS sur le
serveur, celui ci rebootera et comme les caractéristiques du répertoire
/etc/rc.d/init.d est que tout programme qui se trouve à l'intérieur est lancé à
chaque démarrage, votre programme sera relancé et une ligne dans /etc/passwd
recrée. Et voila votre backdoor rétablie. Bien sûr il est évident que le root, s'il voit
que la ligne est revenue ira dans le répertoire pour virer votre programme, d'où
l'interêt de le camoufler. Bien sûr vous devez arranger un peu vos backdoors de
manière à ce qu'elles verifient si votre ligne de code existe deja dans le
/etc/passwd parce que sinon si le root reboot 5 fois sans avoir trouvé votre
backdoor, le fichier /etc/passwd se retrouvera avec 5 mêmes lignes de pass ce
qui fait desordre surtout si vous voulez que votre backdoor dure longtemps et
que le root n'ait pas l'attention attirée par 5 lignes de codes pareilles ("elle est
restée 2 ans, l'admin s'en ai rendu compte quand il a vu 300000 lignes de pass
pâreil dans son fichier passwd, c'est sûr, des fichiers /etc/passwd de 3Mo c'est
pas très fréquant"). Il existe comme je viens de vous le dire des répertoires et ds
fichiers qui permettent de lancer des programmes au démarrage mais il existe
aussi des fonctions tres bien qui permettent à un programme de s'exécuter à une
date précise (bombe logique) ou encore dès qu'un interval de temps est dépassé.
Alors à chacun ses mix et faites votre tambouilles à votre gout. Le mien se porte
surtout sur une backdoor que j'ai inclu au programme gpm. Backdoor simpa. En
effet si l'admin désactive ma backdoor il désactive du même coup sa sourie ;-) De
plus ma backdoor foctionne tout le temps et est lancé sans faute à chaque
démarrage. Hé hé hé vous avez de quoi vous amuser, surtout que dans linux les
sources des programmes sont incluses. Vive le GNU :-)