Récemment, des gens que je connais bien on fait appel aux services d'un 
pénétrateur : une société (connue, cotée en bourse chez NASDAQ) qui, moyennant 
des $$$$$, effectue ce qu'on appelle ici un "pentest". Le mot "penetration", 
pour rester politically correct, a été raccourci en "pen". Ici aux iouèssé, on 
ne dit pas qu'on paye quelqu'un pour démontrer comment se faire empapaouter; 
c'est plus subtil : on dit "Pentest".

Appelons-donc ce pénétrateur "Toto". Ils l'ont un peu aidé, en lui fournissant 
une VM sur un VLAN local pour le test.
Pardon pour le mélange de l'anglais, mais j'ai voulu garder une version proche 
du rapport que Toto a envoyé.

En haut, tout en haut, des truc pas-glop que Toto a trouvé :

> Critical : Susceptible to Rogue IPv6 DHCP Server Attack: Toto found that 
> Windows hosts had IPv6 enabled, which allowed
> Toto to poison requests, redirect traffic to a Toto-controlled host, and 
> intercept xx NetNTLMv2 password hashes.
> Finding Summary : 
> Some IPv6 implementations, such as the default configuration for Microsoft 
> Windows Operating Systems starting with
> Windows Vista, attempt to configure IPv6 settings using DHCP. When attempting 
> to configure through DHCP, clients
> send a 'Solicit' message to the multicast 'All_DHCP_Relay_Agents_and_Servers' 
> address (FF02::1:2). A malicious actor
> could host a rogue DHCPv6 service, which could listen for these requests and 
> provide responses that allow the
> malicious actor to control IPv6 settings for the client. If the malicious 
> actor can set the DNS server address used
> by the client, they could send poisoned DNS query responses for hostnames 
> that the client attempts to resolve,
> soliciting client connections for a destination set by the malicious actor. 

Toto aime bien écrire, mais il enfonce un peu des portes ouvertes; absolument 
rien de nouveau.
Toto a utilisé deux scripts python :

> Toto detected IPv6 traffic on the internal network and was able to perform 
> poisoning attacks against internal hosts using toto01.py

En gros : ce script donne une adresse IPv6 fe80:: aux machines qui demandent, 
avec, bien sur, des serveurs DNS pointant sur lui-même.

> While poisoning IPv6 traffic, Toto then used toto02.py to attempt NTLM 
> relaying and to respond to requests for wpad.dat.
> Figure xx shows an example authentication event from this attack, which 
> allowed Toto to capture xx NetNTLMv2 password hashes:

Et c'est là ou la merde commence à toucher le ventilo, car, avec le NTLMv2 
hash, on peut commencer à s'amuser :

> After capturing xx NetNTLMv2 password hashes through IPv6 poisoning, Toto was 
> able to
> crack the ‘claude.michu’ account password using program "#######", as shown 
> in Figure xx:

Le programme "#######" est pas vraiment difficile à trouver; en 3 secondes 
gougleu m'a donné les sources.
Tout le monde sait que le schmilblick est un oeuf (1), mais on ne peut pas le 
dire en public.
Très intéressant comme programme, d'ailleurs. Cà utilise (entre autres) les 
cartes graphiques AMD et/ou Nvidia, Cuda, tout çà.
[Va falloir que je commande le dernier cri de la carte graphique pour tester 
FS2020^H^H^H^H^H^H #######. Et miner du 3!7c0!n]

Le reste je ne peux pas commenter, mais disons simplement que Toto le 
pénétrateur rigole dans sa barbe et revient l'année prochaine.
En utilisant IPv6 comme tête de pont, il a pénétré. A quelle profondeur et 
est-ce que c'était à sec, ces informations sont réservés aux intimes.
Je précise, je ne suis pas Toto, mais j'ai fait, dans un passé relativement 
récent ;-)

En analysant un peu, ce n'est pas un problème nouveau; RFC7610 et DHCPv6-guard, 
çà n'existe pas pour rien; mais c'est loin d'être parfait.
Cà va resserrer les boulons pour 802.1x pour limiter les velléités de Toto à 
déployer son propre matos si on ne lui fournit pas la VM sur le réseau interne, 
mais ce n'est pas suffisant non plus. Les portables qui ont le bon certificat 
802.1x et les "cached credentials", çà s'égare, se perd, et se vole. Les 
employés ou sous-traitants qui peuvent installer python sur une bécane et la 
brancher sur le réseau, çà existe aussi. Restreindre l'accès, çà limite le 
risque mais ne l'élimine pas.


En bas du rapport de plus de 100 pages de Toto, qui va finir dans l'email de 
quelqu'un qui gagne en dollars ce que je gagne en cents, et qui va direct aux 
conclusions :

> Key Recommendations :
> - Susceptible to Rogue IPv6 DHCP Server Attack: Disable IPv6 on internal 
> Windows hosts if not in use.

C.Q.F.D.

Comme je le dis depuis des années : IPv6 : 2 fois le travail, et 3 fois les 
emmerdes.
ipv6 route ::/0 null0 c'était déjà là, je vais réfléchir à quelques préfixes 
plus longs.

Et qui c'est qui va se palucher les scripts Powershell pour désactiver IPv6 ? 
ben devinez, c'est bibi, ou l'autre barbu.
Est-ce que je suis payé pour le faire ? Oui, et pas trop mal. Est-ce que j'ai 
quelque chose de mieux à foutre : oui, aussi.

Le troll "yàkà faire du IPv6 only", il meurt de faim depuis 15 ans. C'est pour 
dreudi, en [MISC].

Michel.

(1) Guy Lux, sur RMC si je me rappelle bien.


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à