Blog d'un libriste convaincu, utilisateur de GNU/Linux et auto-hébergeant ses services Internet.

Ettercap : Problème avec le Passive DNS support / Ettercap: Problem with Passive DNS support

Version Française

Note : cet article est majoritairement une traduction du rapport de bug que j'ai fait sur http://bugzilla.redhat.com/show_bug...

Actuellement, le Passive DNS Support n'est pas activé sur la version Fedora d'ettercap, à cause d'un problème (non spécifique à Fedora) sur le script configure (et sur le fichier acinclude.m4, qui est utilisé pour générer le script configure) : il vérifie la fonction dn_expand (incluse dans resolv.h, qui fait partie de la libc), mais dans le fichier resolv.h, elle est nommée __dn_expand et il y a un "#define dn_expand __dn_expand", donc elle est utilisée sous le nom dn_expand dans le code source d'Ettercap mais dans la librairie resolv, elle est appelée __dn_expand.

Le problème est que la moyen par lequel le script configure (généré par autoconf) vérifie si la fonction dn_expand est présente dans la librairie resolv (en faisant un fausse définition de la fonction dn_expand, en l'appelant dans le main() et enfin en compilant avec le flag -lresolv pour voir s'il y a une erreur), donne une erreur à configure et donc ne le fait pas considérer la librairie resolv comme appropriée pour la fonction db_expand, alors que c'est bien la librairie appropriée.

Ma solution est de dire à configure de vérifier la fonction dn_expand et si il y a une erreur (c'est le cas la plupart du temps), de vérifier la fonction __dn_expand.

J'ai fait un patch pour le fichier acinclude.m4 et un pour le script configure. Chacun de ces patch sont disponibles sur : http://download.paulk.fr/ettercap/.

Si vous n'appliquez que le patch du fichier acinclude.m4, n'oubliez pas de lancer autoconf avant de lancer configure.

Le Passive DNS support est nécessaire pour faire marcher le plugin dns_spoof.

English version

Note: this article is principally a copy of the bug report I made on http://bugzilla.redhat.com/show_bug...

Currently, the Passive DNS support is not enabled on the ettercap Fedora build, because of a (non-fedora-specific) bug in the configure script (and on the acinclude.m4 file, which is used to generate the configure script): it checks the dn_expand function (included in resolv.h, part of libc), but on the resolv.h file, it's named __dn_expand and a there is a "#define dn_expand __dn_expand" so it's used under the name "dn_expand" on the source code of ettercap but on the resolv lib, it's called __dn_expand.

The problem is that with the way the configure script (generated by autoconf) checks if dn_expand is present on the resolv lib (making a fake definition of the dn_expand function, calling it on main(), and then compiling with the -lresolv flag to see if there is no error), configure has an error and so does not consider lib resolv as an appropriated lib for the dn_expand function, whereas it's the appropriated lib.

My solution is to tell configure to check the dn_expand function, and if there is an error (that's the common case), to check the __dn_expand function.

I made a patch for the acinclude.m4 and a patch for the configure script. Both are available on: http://download.paulk.fr/ettercap/.

If you just apply the acinclude.m4 patch, please remind to run "autoconf" before launching configure.

The Passive DNS support is needed to make the dns_spoof plugin work.

Annexes

Ajouter un commentaire

Nom ou pseudo :
Adresse email :
Site web (facultatif) :
Commentaire :

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://blog.paulk.fr/trackback/37

Fil des commentaires de ce billet

Propulsé par Dotclear — Thème « PaulK »