# L’homme du milieu avec DD-WRT

#### Publié par HugoPoi le 23 juin 201723 juin 2017

J’avais besoin de faire un MITM entre un ONT et la box SFR NB6 pour pouvoir capturer les identifiants PPP pour le tunnel ipv6. Je n’avais pas de hub ou de machine avec 2 interfaces Ethernet pour pouvoir le faire de façon passive sans faire du spoofing ARP. Et je n’avais pas envie d’envoyer des trames ARP sur l’infrastructure réseau SFR. J’avais un Netgear WNR3500Lv1 dans un coin, je me suis dit qu’il y avais moyen d’utiliser ce genre de routeur pour faire du tapping passif.

# Installer DD-WRT

Première étape avoir un routeur sous DD-WRT qui marche. Netgear font les choses bien, la majorité de leurs routeurs sont compatibles avec les « openfirmwares ». J’ai ma préférence pour DD-WRT qui est vraiment orienté réseau. Pendant le setup, j’ai quand même réussi à briquer une fois mon routeur, je n’ai pas trouvé la raison.
1) Aller récupérer le firmware qui va bien .chk depuis dd-wrt.com
2) Flasher depuis l’interface web
3) Re-flasher avec un dd-wrt complet qui marche, j’ai utilisé le mod de kong qui est un dd-wrt modifié qui est plus stable. (le ssh marchait pas sur l’autre firmware)
4) Penser à configurer le service SSH depuis l’interface web.
5) DESACTIVER LES SERVER ET CLIENT DHCP mettez toutes les ips en statiques

# Installer TCPDUMP

Une fois dd-wrt fonctionnel sur la bête, je me suis dit que j’allais utiliser tcpdump pour capturer directe sur les interfaces du routeur. Évidemment le paquet ipkg ne marchait pas mais j’ai appris qu’on pouvait les installer en manuel.

    wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages/libpcap_1.1.1-2_brcm47xx.ipk
    tar -zxvf libpcap_1.1.1-2_brcm47xx.ipk
    rm control.tar.gz
    rm debian-binary
    rm libpcap_1.1.1-2_brcm47xx.ipk
    tar -zxvf data.tar.gz
    rm data.tar.gz
    wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages/tcpdump_4.2.1-3_brcm47xx.ipk
    tar -zxvf tcpdump_4.2.1-3_brcm47xx.ipk
    rm control.tar.gz
    rm debian-binary
    rm tcpdump_4.2.1-3_brcm47xx.ipk
    tar -zxvf data.tar.gz
    rm data.tar.gz

wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages/libpcap_1.1.1-2_brcm47xx.ipk tar -zxvf libpcap_1.1.1-2_brcm47xx.ipk rm control.tar.gz rm debian-binary rm libpcap_1.1.1-2_brcm47xx.ipk tar -zxvf data.tar.gz rm data.tar.gz wget http://downloads.openwrt.org/attitude_adjustment/12.09/brcm47xx/generic/packages/tcpdump_4.2.1-3_brcm47xx.ipk tar -zxvf tcpdump_4.2.1-3_brcm47xx.ipk rm control.tar.gz rm debian-binary rm tcpdump_4.2.1-3_brcm47xx.ipk tar -zxvf data.tar.gz rm data.tar.gz

Vous pouvez lancer ce script sur votre machine puis ensuite copier le répertoire usr dans /tmp/root qui est un ram disk car l’espace jffs ne faisait que 600ko sur mon routeur donc pas suffisant pour la libpcap + tcpdump. Il y a 64 Mo de RAM sur mon routeur versus 8Mo flash aller comprendre …

Donc au début je me suis dit c’est tout bon j’ai plus qu’à lancer tcpdump depuis ssh sur la bonne interface et c’est du tout cuit.

    ssh root@192.168.2.1 "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/root/usr/lib /tmp/root/usr/sbin/tcpdump -i vlan1 -U -s0 -w -" | wireshark -i -

ssh root@192.168.2.1 "LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/root/usr/lib /tmp/root/usr/sbin/tcpdump -i vlan1 -U -s0 -w -" | wireshark -i -

Notez ici l’option -U qui permet de flush dans le pipe ssh rapidement les données capturées très utile quand vous avez peu de paquets sur l’interface sinon votre wireshark ne reçoit rien tant que le buffer n’est pas plein.

Schéma MITM Neufbox v6 DD-WRT

# ET J’AVAIS TORT

J’avais oublié un détail hardware qui m’a pété les couilles, les 4 ports du switch sont géré en hardware via une puce dédié ici un BCM53115. Problème impossible d’écouter le trafic entre les ports car le BCM53115 gère en interne sa table ARP qui n’est pas configurable, donc impossible de capturer le moindre paquet utile à part les broadcast et multicast.

# Solution 2

Après avoir creusé la question, j’ai évidement commencer par regarder la documentation du BCM53115 qui est une belle boite noire dont les seules choses que l’on peut configurer sont les vlan par port et le tagging. Je devais donc me passer de cet élément pour faire ma capture. La solution la plus simple qui m’est venu c’est d’utiliser le port WAN qui est séparé du switch au niveau logique et je peux le bridger en software via le kernel linux. Cependant cette solution n’est pas vraiment satisfaisante pour moi dans la mesure ou je pouvais pas isoler de façon sûr le pc d’écoute. (Genre éviter les broadcast ipv6 et mdns sur le réseau SFR)

1) Couper le routage sur l’interface web, onglet setup
2) Coché la case mettre le port WAN dans le switch ( il sera bridgé dans le vlan1)
3) Configurer iptables sur la machine d’écoute pour éviter les merdes (J’ai tout bloqué sauf le ssh sortant)

    *filter
    :INPUT DROP [49:3210]
    :FORWARD DROP [0:0]
    :OUTPUT DROP [0:0]
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT
    -A OUTPUT -o lo -j ACCEPT
    COMMIT

*filter :INPUT DROP [49:3210] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT -A OUTPUT -o lo -j ACCEPT COMMIT

Donc au final on se retrouve avec tout le merdier dans le même vlan mais seul les données entre les ports du switch et le port WAN sont écoutables dans notre cas c’est pas un problème.

Schéma MITM neufbox ddwrt solution 2

J’ai cependant trouvé une autre solution pour faire des écoutes entre potentiellement tout les ports du switch en utilisant les vlan ! J’ai pas encore testé mais l’idée est la suivante :

1. placer les 4 ports du switch dans 4 vlan différents (5 6 7 8 par exemple)
2. Ensuite on bridge les vlan avec le kernel ( brctl addbr test && brctl addif test vlan5 && brctl addif test vlan6 && brctl addif test vlan7 && brctl addif test vlan8 )
3. Vous pouvez lancer tcpdump sur l’interface bridge-test sûrement br2

Cette dernière solution serait encore mieux car la machine d’écoute est vraiment isoler du reste, et ça permet d’écouter 4 devices en même temps ce qui peut servir.

Catégories : Bidouille Hardware
Étiquettes :ddwrt mitm netgear tap tapping wireshark

### 1 commentaire

#### Rudy · 24 juin 2017 à 11 h 55 min

« sa » et non « ça » :)

### Répondre à Rudy Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nom *
E-mail *
Site internet
Qu’avez vous à l’esprit ?

## Articles similaires

###### #FAIL

#### My shitty Nvidia DisplayPort Problems who no ones care about

Recently I have done the acquisition of a new ULTRAWIDE screen, precisily a Philips 439PH9 with a DisplayPort v1.4, this information is very important for what’s coming next. The problem The morning I receive it, Lire la suite…

###### Aventure Serveur

#### Le cloud maison

Voilà un petit moment que je me devais de faire cet article pour vous en dire un peu plus sur comment je gère mes données numériques au quotidien. Et après plusieurs essais et échecs, je Lire la suite…

###### Aventure PC

#### Niquer les DRMs d’Amazon AKA convertir vos ebook vers EPUB sans DRM

Comment j’en suis arrivé là Un jour dans une contrée de la blogosphère version 0.666 d’Internet, je voulais acheter un livre numérique car moins cher et puis ça pollue moins ça équivaut à un aller-retour Lire la suite…