Bed – Easy Fuzzing

Je vous présente en vitesse un petit tool intégré à Kali Linux nommé bed que j’ai testé cet aprem. Cet outil permet de faire du fuzzing très basique sur des serveurs utilisant l’un des protocoles suivant :

  • FTP
  • SMTP
  • POP
  • HTTP
  • IRC
  • IMAP
  • PJL
  • LPD
  • FINGER
  • SOCKS4
  • SOCKS5

Une fois lancé, bed tente de crasher le serveur en générant un gros buffer overflow sur l’application en écoute. Pour cela, bed va principalement surcharger les commandes ou les champs propres aux différents protocoles pris en charge. Par exemple les commandes GET/POST/HEAD et les champs Host/From/Pragma du protocole HTTP ; ou les commandes ACCT/DELE/EXEC du protocole FTP.

0x0ff fuzzing

Parce qu’il y avait peu de chance que bed fonctionne sur les dernières versions des applications les plus connues (Apache, vsftpd, tftpd, Postfix, etc…) , j’ai installé pour l’occasion un Ubuntu Server 5.10 avec quelques antiques packages ! Bon, j’aurais tendance à penser que ce genre de vulnérabilités sont extrêmement rare dans les solutions Open Source populaires. Pourtant ce n’est pas non plus impossible comme le prouve cet OSVDB : 90909 qui concerne Squid 3.2.5 (L’exploitation est expliquée ici) !

VSFTPD  2.0.3

0x0ff@kali:~# bed -s FTP -t 192.168.7.22 -u user1 -v user1

BED 0.5 by mjm ( www.codito.de ) & eric ( www.snake-basket.de )
+ Buffer overflow testing:
testing: 1 USER XAXAX ...........
testing: 2 USER user1PASS XAXAX ...........
+ Formatstring testing:
testing: 1 USER XAXAX .......
testing: 2 USER user1PASS XAXAX .......
* Normal tests
+ Buffer overflow testing:
testing: 1 ACCT XAXAX ...........
testing: 2 APPE XAXAX ...........
testing: 3 ALLO XAXAX ...........

...

Apache 2.0.54

0x0ff@kali:~# bed -s HTTP -t 192.168.7.22 -p 80 -o 1

BED 0.5 by mjm ( www.codito.de ) & eric ( www.snake-basket.de )
+ Buffer overflow testing:
testing: 1 HEAD XAXAX HTTP/1.0 ...........
testing: 2 HEAD / XAXAX ...........
testing: 3 GET XAXAX HTTP/1.0 ...........
testing: 4 GET / XAXAX ...........
testing: 5 POST XAXAX HTTP/1.0 ...........
testing: 6 POST / XAXAX ...........
testing: 7 GET /XAXAX ...........
testing: 8 POST /XAXAX ...........
+ Formatstring testing:
testing: 1 HEAD XAXAX HTTP/1.0 .......
testing: 2 HEAD / XAXAX .......
testing: 3 GET XAXAX HTTP/1.0 .......

...

Finalement, ni vsftpd ni Apache n’ont été perturbés par le travail de bed, un  peu décevant n’est-il pas ? Sans exclure totalement la possibilité que je sois à coté de mes pompes sur ces deux tests, je ne suis pas certain que cet échec soit bien surprenant… Il s’agit tout de même de deux solutions chacune entièrement dédiées à un protocole. Il parait donc normal que ces deux serveurs intègrent parfaitement les mécanismes de base de HTTP ou FTP. Peut-être, pouvons nous nous attendre à un plus haut taux de réussite en testant des appliances ou des solutions logiciels intégrant l’un des protocoles gérés par bed, mais de façon secondaire (par exemple, le portail web permettant la configuration d’un équipement)… Bref, si à l’occaz je tombe quelque chose avec cet outil, je vous le ferais savoir, mais pour le moment j’y crois pas trop ! ;)

Pour ceux que ça intéresse, voilà grosso modo à quoi ressemble les tests effectués par bed (FTP et HTTP)…

bed capture