Introduction

Contrairement à p0f, nepenthes ne se contente pas d'écouter le réseau : si une machine lui propose un fichier à télécharger, il le fait, met le fichier dans un répertoire spécifique et enregistre l'action dans un fichier log. On sait ainsi ce que nous voulaient ces machines : nous envoyer des logiciels malveillants. Nepenthes montre que ma machine, avec un système mal sécurisé, aurait rejoint un botnet[1] en certainement moins d'un 1/4 d'heure...

Installer nepenthes est un jeu d'enfant pour les utilisateurs de Debian Etch ou Ubuntu : c'est un paquet officiel du système. À l'installation, nepenthes ne demande rien à personne vu que la configuration par défaut lance le service nepenthes et permet d'enregistrer immédiatement logs et fichiers téléchargés. Le seul souci potentiel est qu'il utilise le port 25 pour simuler des vulnérabilités donc, si on consulte les mails locaux du système, le serveur de mail local ne peut plus démarrer. Dans le cas de Postfix, il suffit de lui changer son port par défaut en remplaçant smtp par un numéro de port dans la première ligne du fichier /etc/postfix/master.cf.

Les fichiers téléchargés

D'un point de vue quantitatif, nepenthes a téléchargé 165 fichiers sur seulement 2 heures, soit environ un toutes les 45 secondes ! Rappelons qu'on a environ une tentative de connexion toutes les 10 secondes, donc 1 sur 5 essaie incontestablement d'envoyer des fichiers (malveillants) aux autres.

Nepenthes ayant enregistré les fichiers téléchargés, on peut savoir facilement à quelle plate-forme s'adressent ces fichiers :

$ file -b /var/lib/nepenthes/binaries/* | sort -u
MS-DOS executable, MZ for MS-DOS
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit
MS-DOS executable, PE for MS Windows (GUI) Intel 80386 32-bit
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, PECompact2 compressed
MS-DOS executable PE  for MS Windows (GUI) Intel 80386 32-bit, UPX compressed

Aucun doute[2] : il s'agit de programmes Windows®. Se pourrait-il donc qu'ils contiennent des logiciels malveillants ? Là encore c'est assez facile à savoir :

$ clamscan /var/lib/nepenthes/binaries/
[...]
Known viruses: 86170
Engine version: 0.88.7
Scanned directories: 1
Scanned files: 105
Infected files: 75
Data scanned: 17.63 MB
Time: 15.111 sec (0 m 15 s)

ClamAV nous trouve 75 fichiers assurément malicieux sur 105[3], soit presque 75%. Les 25% restant peuvent ne pas être malicieux, mais peuvent aussi ne pas être détectés par ClamAV malgré sa base de signatures parfaitement à jour. En effet les antivirus ne détectent pas 100% des virus comme indiqué dans le billet Se protéger contre Internet[4]. Notez qu'un Norton antivirus à jour donne aussi 75 fichiers assurément infectés, la crédibilité de ClamAV n'est donc pas en cause. Reste à savoir de quels logiciels malveillants il s'agit :

$ clamscan -i --no-summary /var/lib/nepenthes/binaries/ | grep -oe ' .*' | sort -u
Exploit.DCOM.Gen FOUND
Trojan.Eggdrop FOUND
Trojan.IRCBot-722 FOUND
Trojan.IRCBot-776 FOUND
Trojan.Ircbot-795 FOUND
Trojan.Mybot-6096 FOUND
Trojan.Mybot-6427 FOUND
Trojan.Mybot-7272 FOUND
Trojan.Mybot-7380 FOUND
Trojan.Mybot-7408 FOUND
Trojan.Mybot-7681 FOUND
Trojan.Mybot-8305 FOUND
Trojan.Mybot-8395 FOUND
Trojan.Poebot-38 FOUND
Trojan.Poebot-39 FOUND
Trojan.Rbot-10 FOUND
Trojan.SdBot-1078 FOUND
Trojan.Sdbot-3424 FOUND
Trojan.Sdbot-3428 FOUND
Trojan.Sdbot-3430 FOUND
Trojan.Sdbot-3487 FOUND
Trojan.Sdbot-3656 FOUND
Trojan.Sdbot-3900 FOUND
Trojan.SdBot-4167 FOUND
Trojan.SdBot-4168 FOUND
Trojan.SdBot-4169 FOUND
W32.Virut.A FOUND
Worm.Bobax-4 FOUND

On voit qu'il s'agit essentiellement de logiciels en relation avec des botnets. Les conclusions sont toujours les mêmes : Windows® + mauvaise sécurisation = gros ennuis ! L'histoire dira sur le long terme s'il y a d'autres plate-formes que Windows® qui sont la cible de logiciels malveillants[5].

Exemple d'activité enregistrée

Le journal de nepenthes est aussi facilement consultable. On y trouve adresse IP de l'émetteur[6], port utilisé, nom du fichier et signature MD5 car les noms peuvent différer malgré un fichier envoyé identique :

$ less /var/log/nepenthes/logged_submissions
[2007-01-05T21:59:55] ftp://1:1@82.241.xxx.xxx:22704/winksas.exe f057cd17de2dde21e64a14c477eb8a3c
[2007-01-05T22:00:10] ftp://1:1@203.121.xxx.xxx:2900/u.exe 703a8118b285f85622db82e7350c16da
[2007-01-05T22:00:19] link://82.241.xxx.xxx:51602/4uFS0A== 03d68f4b9aa5c7be29064d6ee2212d3b
[2007-01-05T22:01:07] ftp://1:1@82.241.xxx.xxx:4144/svchstras.exe 551d79edb02a95d405e3505438ac4a8d
[2007-01-05T22:01:19] link://82.241.xxx.xxx:22145/RHYlhQ== fd9bb722eb95913f45179fc3b7a8481d
[2007-01-05T22:01:37] link://82.241.xxx.xxx:44304/j+2WZQ== ed82850e0ff267b4bf662425ba1a6f1f
[2007-01-05T22:01:53] ftp://1:1@82.241.xxx.xxx:25777/lnternet.exe 5647fff7a7b08210ed18e642165aead2
[...]

La dernière ligne est très intéressante puisqu'elle contient un fichier dénommé "lnternet.exe". Notez bien l'erreur volontaire sur la première lettre (qui est bien un L et non un I) pour induire en erreur. Une petite recherche Google avec ce nom de programme montre qu'on tombe effectivement sur des problèmes de machines Windows® vérolées et qui ont certainement dû récupérer "lnternet.exe" d'une manière similaire à mon pot de miel. Et chez vous ? ;-)

Notes

[1] réseau de machines corrompues par des pirates, consulter sur ce sujet le billet Pourquoi pirater le PC de Monsieur Tout Le Monde ?

[2] file est un outil standard sous Linux qui devine le type d'un fichier en lisant ses premiers octets, donc quelle que soit l'extension

[3] nepenthes ne conserve qu'une seule version de chaque fichier, il y en a donc nécessairement moins que les 165 cités précédemment

[4] par exemple le fichier de signature MD5 0aed645b9f55084303b4af4cd5014b47 enregistré par nepenthes n'est détecté que par 2 antivirus sur 15 sur le site http://virusscan.jotti.org/

[5] a priori non, ce sont plutôt les intrusions directes de pirates qui guettent les autres systèmes (voir le billet Évaluer les risques sur Internet), mais bon...

[6] j'ai masqué les adresses IP des machines en cause pour des raisons évidentes