Pentesting Network
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bug bounty tip: iscriviti a Intigriti, una premium bug bounty platform creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi, e inizia a guadagnare bounty fino a $100,000!
Questa sarà una breve sezione su come trovare IP che rispondono da Internet. In questa situazione hai un ambito di IP (forse anche diversi intervalli) e devi solo trovare quali IP stanno rispondendo.
Questo è il modo più semplice e veloce per scoprire se un host è attivo o meno.
Puoi provare a inviare alcuni pacchetti ICMP e aspettarti risposte. Il modo più semplice è semplicemente inviare una richiesta di echo e aspettare la risposta. Puoi farlo usando un semplice ping
o usando fping
per intervalli.
Puoi anche usare nmap per inviare altri tipi di pacchetti ICMP (questo eviterà i filtri per le comuni richieste di echo ICMP).
È molto comune scoprire che tutti i tipi di pacchetti ICMP vengono filtrati. Quindi, tutto ciò che puoi fare per controllare se un host è attivo è cercare porte aperte. Ogni host ha 65535 porte, quindi, se hai un ambito "grande" non puoi testare se ogni porta di ogni host è aperta o meno, ci vorrebbe troppo tempo. Quindi, ciò di cui hai bisogno è uno scanner di porte veloce (masscan) e un elenco delle porte più utilizzate:
Potresti anche eseguire questo passaggio con nmap
, ma è più lento e nmap
ha problemi a identificare gli host attivi.
Questa è solo una scoperta della porta TCP utile quando vuoi concentrarti sulla scoperta dei servizi HTTP:
Potresti anche provare a controllare alcuni port UDP aperti per decidere se dovresti prestare più attenzione a un host. Poiché i servizi UDP di solito non rispondono con alcun dato a un pacchetto probe UDP vuoto, è difficile dire se una porta è filtrata o aperta. Il modo più semplice per decidere questo è inviare un pacchetto relativo al servizio in esecuzione, e poiché non sai quale servizio è in esecuzione, dovresti provare il più probabile in base al numero di porta:
La riga nmap proposta prima testerà i top 1000 UDP ports in ogni host all'interno dell'intervallo /24, ma anche solo questo richiederà >20min. Se hai bisogno di risultati più rapidi, puoi usare udp-proto-scanner: ./udp-proto-scanner.pl 199.66.11.53/24
Questo invierà queste UDP probes al loro port previsto (per un intervallo /24 questo richiederà solo 1 min): 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.
Qui puoi trovare una bella guida su tutti i noti attacchi Wifi al momento della scrittura:
Se sei all'interno della rete, una delle prime cose che vorrai fare è scoprire altri host. A seconda di quanto rumore puoi/vuoi fare, potrebbero essere eseguite diverse azioni:
Puoi utilizzare questi strumenti per scoprire passivamente host all'interno di una rete connessa:
Nota che le tecniche commentate in Scoprire host dall'esterno (Scoperta porte TCP/HTTP/UDP/SCTP) possono essere applicate qui. Ma, poiché sei nella stessa rete degli altri host, puoi fare più cose:
Nota che le tecniche commentate in Discovering hosts from the outside (ICMP) possono essere applicate qui. Ma, poiché sei nella stessa rete degli altri host, puoi fare più cose:
Se pinghi un indirizzo di broadcast della subnet, il ping dovrebbe arrivare a ogni host e potrebbero rispondere a te: ping -b 10.10.5.255
Pingando l'indirizzo di broadcast della rete potresti persino trovare host all'interno di altre subnet: ping -b 255.255.255.255
Usa i flag -PE
, -PP
, -PM
di nmap
per eseguire la scoperta degli host inviando rispettivamente ICMPv4 echo, timestamp e richieste di subnet mask: nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24
Wake On Lan è usato per accendere computer tramite un messaggio di rete. Il pacchetto magico usato per accendere il computer è solo un pacchetto dove è fornito un MAC Dst e poi viene ripetuto 16 volte all'interno dello stesso pacchetto. Poi questo tipo di pacchetti viene solitamente inviato in un ethernet 0x0842 o in un pacchetto UDP sulla porta 9. Se nessun [MAC] è fornito, il pacchetto viene inviato a broadcast ethernet (e il MAC di broadcast sarà quello ripetuto).
Una volta che hai scoperto tutti gli IP (esterni o interni) che vuoi scansionare in profondità, possono essere eseguite diverse azioni.
Porta aperta: SYN --> SYN/ACK --> RST
Porta chiusa: SYN --> RST/ACK
Porta filtrata: SYN --> [NESSUNA RISPOSTA]
Porta filtrata: SYN --> messaggio ICMP
Ci sono 2 opzioni per scansionare una porta UDP:
Inviare un pacchetto UDP e controllare la risposta ICMP unreachable se la porta è chiusa (in diversi casi ICMP sarà filtrato quindi non riceverai alcuna informazione se la porta è chiusa o aperta).
Inviare dei datagrammi formattati per ottenere una risposta da un servizio (ad es., DNS, DHCP, TFTP e altri, come elencato in nmap-payloads). Se ricevi una risposta, allora la porta è aperta.
Nmap mescolerà entrambe le opzioni utilizzando "-sV" (le scansioni UDP sono molto lente), ma nota che le scansioni UDP sono più lente delle scansioni TCP:
SCTP (Stream Control Transmission Protocol) è progettato per essere utilizzato insieme a TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). Il suo scopo principale è facilitare il trasporto di dati telefonici su reti IP, rispecchiando molte delle caratteristiche di affidabilità presenti nel Signaling System 7 (SS7). SCTP è un componente fondamentale della famiglia di protocolli SIGTRAN, che mira a trasportare segnali SS7 su reti IP.
Il supporto per SCTP è fornito da vari sistemi operativi, come IBM AIX, Oracle Solaris, HP-UX, Linux, Cisco IOS e VxWorks, indicando la sua ampia accettazione e utilità nel campo delle telecomunicazioni e del networking.
Due diverse scansioni per SCTP sono offerte da nmap: -sY e -sZ
Router, firewall e dispositivi di rete mal configurati a volte rispondono a probe di rete utilizzando indirizzi sorgente non pubblici. tcpdump può essere utilizzato per identificare i pacchetti ricevuti da indirizzi privati durante i test. In particolare, su Kali Linux, i pacchetti possono essere catturati sull'interfaccia eth2, che è accessibile da Internet pubblico. È importante notare che se la tua configurazione è dietro un NAT o un Firewall, tali pacchetti potrebbero essere filtrati.
Con lo sniffing puoi apprendere dettagli sugli intervalli IP, le dimensioni delle subnet, gli indirizzi MAC e i nomi host esaminando i frame e i pacchetti catturati. Se la rete è mal configurata o il fabric di switching è sotto stress, gli attaccanti possono catturare materiale sensibile tramite sniffing di rete passivo.
Se una rete Ethernet switchata è configurata correttamente, vedrai solo frame di broadcast e materiale destinato al tuo indirizzo MAC.
Si possono anche catturare pacchetti da una macchina remota tramite una sessione SSH con Wireshark come interfaccia grafica in tempo reale.
Ovviamente.
Puoi usare strumenti come https://github.com/lgandx/PCredz per analizzare le credenziali da un pcap o da un'interfaccia live.
L'ARP Spoofing consiste nell'inviare ARP Responses gratuiti per indicare che l'IP di una macchina ha il MAC del nostro dispositivo. Poi, la vittima cambierà la tabella ARP e contatterà la nostra macchina ogni volta che vorrà contattare l'IP spoofato.
Sovraccaricare la tabella CAM dello switch inviando un gran numero di pacchetti con indirizzi MAC sorgente diversi. Quando la tabella CAM è piena, lo switch inizia a comportarsi come un hub (broadcasting tutto il traffico).
In moderni switch questa vulnerabilità è stata risolta.
Il Dynamic Trunking Protocol (DTP) è progettato come un protocollo di livello link per facilitare un sistema automatico per il trunking, consentendo ai switch di selezionare automaticamente le porte per la modalità trunk (Trunk) o la modalità non trunk. L'implementazione del DTP è spesso vista come indicativa di un design di rete subottimale, sottolineando l'importanza di configurare manualmente i trunk solo dove necessario e garantire una corretta documentazione.
Per impostazione predefinita, le porte dello switch sono impostate per operare in modalità Dynamic Auto, il che significa che sono pronte a iniziare il trunking se sollecitate da uno switch vicino. Un problema di sicurezza si presenta quando un pentester o un attaccante si connette allo switch e invia un frame DTP Desirable, costringendo la porta a entrare in modalità trunk. Questa azione consente all'attaccante di enumerare le VLAN attraverso l'analisi dei frame STP e di eludere la segmentazione delle VLAN configurando interfacce virtuali.
La presenza di DTP in molti switch per impostazione predefinita può essere sfruttata dagli avversari per imitare il comportamento di uno switch, ottenendo così accesso al traffico su tutte le VLAN. Lo script dtpscan.sh è utilizzato per monitorare un'interfaccia, rivelando se uno switch è in modalità Default, Trunk, Dynamic, Auto o Access—quest'ultima essendo l'unica configurazione immune agli attacchi di VLAN hopping. Questo strumento valuta lo stato di vulnerabilità dello switch.
Se viene identificata una vulnerabilità di rete, lo strumento Yersinia può essere impiegato per "abilitare il trunking" tramite il protocollo DTP, consentendo l'osservazione dei pacchetti da tutte le VLAN.
Per enumerare le VLAN, è anche possibile generare il frame DTP Desirable con lo script DTPHijacking.py**. Non interrompere lo script in nessuna circostanza. Inietta DTP Desirable ogni tre secondi. I canali trunk creati dinamicamente sullo switch vivono solo per cinque minuti. Dopo cinque minuti, il trunk si disconnette.
Vorrei sottolineare che Access/Desirable (0x03) indica che il frame DTP è di tipo Desirable, il che indica alla porta di passare alla modalità Trunk. E 802.1Q/802.1Q (0xa5) indica il tipo di incapsulamento 802.1Q.
Analizzando i frame STP, apprendiamo dell'esistenza di VLAN 30 e VLAN 60.
Una volta conosciuti gli ID VLAN e i valori IP, puoi configurare un'interfaccia virtuale per attaccare una VLAN specifica. Se DHCP non è disponibile, utilizza ifconfig per impostare un indirizzo IP statico.
L'attacco discusso di Dynamic Trunking e creazione di interfacce virtuali per scoprire host all'interno di altri VLAN è eseguito automaticamente dallo strumento: https://github.com/nccgroup/vlan-hopping---frogger
Se un attaccante conosce il valore del MAC, IP e VLAN ID dell'host vittima, potrebbe provare a doppiare un tag su un frame con il suo VLAN designato e il VLAN della vittima e inviare un pacchetto. Poiché la vittima non sarà in grado di connettersi di nuovo con l'attaccante, quindi la migliore opzione per l'attaccante è comunicare tramite UDP a protocolli che possono eseguire alcune azioni interessanti (come SNMP).
Un'altra opzione per l'attaccante è lanciare una scansione delle porte TCP falsificando un IP controllato dall'attaccante e accessibile dalla vittima (probabilmente tramite internet). Poi, l'attaccante potrebbe sniffare nel secondo host di sua proprietà se riceve alcuni pacchetti dalla vittima.
Per eseguire questo attacco puoi usare scapy: pip install scapy
Se hai accesso a uno switch a cui sei direttamente connesso, hai la possibilità di bypassare la segmentazione VLAN all'interno della rete. Basta cambiare la porta in modalità trunk (nota anche come trunk), creare interfacce virtuali con gli ID delle VLAN target e configurare un indirizzo IP. Puoi provare a richiedere l'indirizzo dinamicamente (DHCP) oppure puoi configurarlo staticamente. Dipende dal caso.
In determinati ambienti, come le reti wireless per ospiti, vengono implementate impostazioni di isolamento delle porte (note anche come private VLAN) per impedire ai client connessi a un punto di accesso wireless di comunicare direttamente tra loro. Tuttavia, è stata identificata una tecnica che può eludere queste misure di isolamento. Questa tecnica sfrutta la mancanza di ACL di rete o la loro configurazione errata, consentendo ai pacchetti IP di essere instradati attraverso un router per raggiungere un altro client sulla stessa rete.
L'attacco viene eseguito creando un pacchetto che trasporta l'indirizzo IP del client di destinazione ma con l'indirizzo MAC del router. Questo fa sì che il router inoltri erroneamente il pacchetto al client target. Questo approccio è simile a quello utilizzato negli attacchi di Double Tagging, dove la capacità di controllare un host accessibile alla vittima viene utilizzata per sfruttare la vulnerabilità di sicurezza.
Passaggi Chiave dell'Attacco:
Creazione di un Pacchetto: Un pacchetto è appositamente creato per includere l'indirizzo IP del client target ma con l'indirizzo MAC del router.
Sfruttamento del Comportamento del Router: Il pacchetto creato viene inviato al router, che, a causa della configurazione, reindirizza il pacchetto al client target, eludendo l'isolamento fornito dalle impostazioni delle private VLAN.
VTP (VLAN Trunking Protocol) centralizza la gestione delle VLAN. Utilizza numeri di revisione per mantenere l'integrità del database VLAN; qualsiasi modifica incrementa questo numero. Gli switch adottano configurazioni con numeri di revisione più elevati, aggiornando i propri database VLAN.
VTP Server: Gestisce le VLAN—crea, elimina, modifica. Trasmette annunci VTP ai membri del dominio.
VTP Client: Riceve annunci VTP per sincronizzare il proprio database VLAN. Questo ruolo è limitato dalle modifiche alle configurazioni VLAN locali.
VTP Transparent: Non partecipa agli aggiornamenti VTP ma inoltra gli annunci VTP. Non è influenzato dagli attacchi VTP, mantenendo un numero di revisione costante di zero.
Summary Advertisement: Trasmetto dal server VTP ogni 300 secondi, portando informazioni essenziali sul dominio.
Subset Advertisement: Inviato dopo le modifiche alla configurazione delle VLAN.
Advertisement Request: Emesso da un client VTP per richiedere un Summary Advertisement, tipicamente in risposta alla rilevazione di un numero di revisione di configurazione più elevato.
Le vulnerabilità VTP sono sfruttabili esclusivamente tramite porte trunk poiché gli annunci VTP circolano solo attraverso di esse. Gli scenari post-attacco DTP potrebbero spostarsi verso VTP. Strumenti come Yersinia possono facilitare attacchi VTP, mirando a cancellare il database VLAN, interrompendo efficacemente la rete.
Nota: Questa discussione riguarda la versione 1 di VTP (VTPv1).
In Yersinia's graphical mode, scegliere l'opzione per eliminare tutte le VLAN VTP per purgare il database VLAN.
Se non riesci a catturare i frame BPDU sulle tue interfacce, è improbabile che tu riesca in un attacco STP.
Inviare un gran numero di BPDUs TCP (Topology Change Notification) o Conf (i BPDUs che vengono inviati quando la topologia viene creata) sovraccarica gli switch e smettono di funzionare correttamente.
Quando viene inviato un TCP, la tabella CAM degli switch verrà cancellata in 15 secondi. Poi, se stai inviando continuamente questo tipo di pacchetti, la tabella CAM verrà riavviata continuamente (o ogni 15 secondi) e quando viene riavviata, lo switch si comporta come un hub.
L'attaccante simula il comportamento di uno switch per diventare il root STP della rete. Poi, più dati passeranno attraverso di lui. Questo è interessante quando sei connesso a due switch diversi. Questo viene fatto inviando pacchetti BPDUs CONF dicendo che il valore di priorità è inferiore alla priorità attuale dello switch root attuale.
Se l'attaccante è connesso a 2 switch, può essere la radice del nuovo albero e tutto il traffico tra quegli switch passerà attraverso di lui (verrà eseguito un attacco MITM).
Il CISCO Discovery Protocol (CDP) è essenziale per la comunicazione tra i dispositivi CISCO, consentendo loro di identificarsi a vicenda e condividere dettagli di configurazione.
CDP è configurato per trasmettere informazioni attraverso tutte le porte, il che potrebbe comportare un rischio per la sicurezza. Un attaccante, collegandosi a una porta switch, potrebbe utilizzare sniffers di rete come Wireshark, tcpdump o Yersinia. Questa azione può rivelare dati sensibili sul dispositivo di rete, inclusi il suo modello e la versione di Cisco IOS in esecuzione. L'attaccante potrebbe quindi mirare a vulnerabilità specifiche nella versione di Cisco IOS identificata.
Un approccio più aggressivo prevede il lancio di un attacco Denial of Service (DoS) sovraccaricando la memoria dello switch, fingendo di essere dispositivi CISCO legittimi. Di seguito è riportata la sequenza di comandi per avviare un tale attacco utilizzando Yersinia, uno strumento di rete progettato per i test:
Durante questo attacco, la CPU dello switch e la tabella dei vicini CDP sono gravemente sovraccariche, portando a quello che viene spesso definito “paralisi della rete” a causa dell'eccessivo consumo di risorse.
Puoi anche usare scapy. Assicurati di installarlo con il pacchetto scapy/contrib
.
I telefoni VoIP, sempre più integrati con dispositivi IoT, offrono funzionalità come sbloccare porte o controllare termostati tramite numeri di telefono speciali. Tuttavia, questa integrazione può comportare rischi per la sicurezza.
Lo strumento voiphopper è progettato per emulare un telefono VoIP in vari ambienti (Cisco, Avaya, Nortel, Alcatel-Lucent). Scopre l'ID VLAN della rete vocale utilizzando protocolli come CDP, DHCP, LLDP-MED e 802.1Q ARP.
VoIP Hopper offre tre modalità per il Cisco Discovery Protocol (CDP):
Modalità Sniff (-c 0
): Analizza i pacchetti di rete per identificare l'ID VLAN.
Modalità Spoof (-c 1
): Genera pacchetti personalizzati che imitano quelli di un dispositivo VoIP reale.
Modalità Spoof con Pacchetto Pre-fatto (-c 2
): Invia pacchetti identici a quelli di un modello specifico di telefono IP Cisco.
La modalità preferita per la velocità è la terza. Richiede di specificare:
L'interfaccia di rete dell'attaccante (-i
parametro).
Il nome del dispositivo VoIP emulato (-E
parametro), seguendo il formato di denominazione Cisco (ad es., SEP seguito da un indirizzo MAC).
In contesti aziendali, per imitare un dispositivo VoIP esistente, si potrebbe:
Ispezionare l'etichetta MAC sul telefono.
Navigare nelle impostazioni di visualizzazione del telefono per visualizzare le informazioni sul modello.
Collegare il dispositivo VoIP a un laptop e osservare le richieste CDP utilizzando Wireshark.
Un comando di esempio per eseguire lo strumento in modalità terza sarebbe:
DoS
Due tipi di DoS possono essere eseguiti contro i server DHCP. Il primo consiste nel simulare un numero sufficiente di host falsi per utilizzare tutti i possibili indirizzi IP. Questo attacco funzionerà solo se puoi vedere le risposte del server DHCP e completare il protocollo (Discover (Comp) --> Offer (server) --> Request (Comp) --> ACK (server)). Ad esempio, questo non è possibile nelle reti Wifi.
Un altro modo per eseguire un DoS DHCP è inviare un pacchetto DHCP-RELEASE utilizzando come codice sorgente ogni possibile IP. Allora, il server penserà che tutti abbiano finito di utilizzare l'IP.
Un modo più automatico per farlo è utilizzare lo strumento DHCPing
Puoi utilizzare gli attacchi DoS menzionati per costringere i client a ottenere nuovi lease all'interno dell'ambiente e esaurire i server legittimi in modo che diventino non responsivi. Quindi, quando i legittimi cercano di riconnettersi, puoi servire valori malevoli menzionati nel prossimo attacco.
Un server DHCP non autorizzato può essere configurato utilizzando lo script DHCP situato in /usr/share/responder/DHCP.py
. Questo è utile per attacchi di rete, come la cattura del traffico HTTP e delle credenziali, reindirizzando il traffico a un server malevolo. Tuttavia, impostare un gateway non autorizzato è meno efficace poiché consente solo di catturare il traffico in uscita dal client, mancando le risposte dal vero gateway. Invece, è consigliato impostare un server DNS o WPAD non autorizzato per un attacco più efficace.
Di seguito sono riportate le opzioni di comando per configurare il server DHCP non autorizzato:
Il nostro indirizzo IP (Annuncio del Gateway): Usa -i 10.0.0.100
per pubblicizzare l'IP della tua macchina come gateway.
Nome di Dominio DNS Locale: Facoltativamente, usa -d example.org
per impostare un nome di dominio DNS locale.
IP del Router/Gateway Originale: Usa -r 10.0.0.1
per specificare l'indirizzo IP del router o gateway legittimo.
IP del Server DNS Primario: Usa -p 10.0.0.100
per impostare l'indirizzo IP del server DNS non autorizzato che controlli.
IP del Server DNS Secondario: Facoltativamente, usa -s 10.0.0.1
per impostare un IP del server DNS secondario.
Netmask della Rete Locale: Usa -n 255.255.255.0
per definire la netmask per la rete locale.
Interfaccia per il Traffico DHCP: Usa -I eth1
per ascoltare il traffico DHCP su una specifica interfaccia di rete.
Indirizzo di Configurazione WPAD: Usa -w “http://10.0.0.100/wpad.dat”
per impostare l'indirizzo per la configurazione WPAD, assistendo nell'intercettazione del traffico web.
Spoofing dell'IP del Gateway Predefinito: Includi -S
per falsificare l'indirizzo IP del gateway predefinito.
Rispondi a Tutte le Richieste DHCP: Includi -R
per far rispondere il server a tutte le richieste DHCP, ma fai attenzione che questo è rumoroso e può essere rilevato.
Utilizzando correttamente queste opzioni, può essere stabilito un server DHCP non autorizzato per intercettare efficacemente il traffico di rete.
Ecco alcune delle tattiche di attacco che possono essere utilizzate contro le implementazioni 802.1X:
Attacco attivo di brute-force delle password tramite EAP
Attacco al server RADIUS con contenuti EAP malformati **(exploits)
Cattura dei messaggi EAP e cracking delle password offline (EAP-MD5 e PEAP)
Forzare l'autenticazione EAP-MD5 per bypassare la convalida del certificato TLS
Iniettare traffico di rete malevolo durante l'autenticazione utilizzando un hub o simile
Se l'attaccante si trova tra la vittima e il server di autenticazione, potrebbe cercare di degradare (se necessario) il protocollo di autenticazione a EAP-MD5 e catturare il tentativo di autenticazione. Poi, potrebbe eseguire un attacco di brute-force utilizzando:
FHRP (First Hop Redundancy Protocol) è una classe di protocolli di rete progettati per creare un sistema di routing ridondante attivo. Con FHRP, i router fisici possono essere combinati in un unico dispositivo logico, aumentando la tolleranza ai guasti e aiutando a distribuire il carico.
Gli ingegneri di Cisco Systems hanno sviluppato due protocolli FHRP, GLBP e HSRP.
Esistono tre versioni del Routing Information Protocol (RIP): RIP, RIPv2 e RIPng. I datagrammi vengono inviati ai peer tramite la porta 520 utilizzando UDP da RIP e RIPv2, mentre i datagrammi vengono trasmessi in broadcast alla porta UDP 521 tramite multicast IPv6 da RIPng. Il supporto per l'autenticazione MD5 è stato introdotto da RIPv2. D'altra parte, l'autenticazione nativa non è incorporata in RIPng; invece, ci si affida agli header opzionali IPsec AH e ESP all'interno di IPv6.
RIP e RIPv2: La comunicazione avviene tramite datagrammi UDP sulla porta 520.
RIPng: Utilizza la porta UDP 521 per trasmettere datagrammi tramite multicast IPv6.
Si noti che RIPv2 supporta l'autenticazione MD5 mentre RIPng non include l'autenticazione nativa, affidandosi agli header IPsec AH e ESP in IPv6.
EIGRP (Enhanced Interior Gateway Routing Protocol) è un protocollo di routing dinamico. È un protocollo a vettore di distanza. Se non c'è autenticazione e configurazione delle interfacce passive, un intruso può interferire con il routing EIGRP e causare avvelenamento delle tabelle di routing. Inoltre, la rete EIGRP (in altre parole, il sistema autonomo) è piatta e non ha segmentazione in zone. Se un attaccante inietta una rotta, è probabile che questa rotta si diffonda in tutto il sistema EIGRP autonomo.
Attaccare un sistema EIGRP richiede stabilire un vicinato con un router EIGRP legittimo, il che apre molte possibilità, dalla ricognizione di base a varie iniezioni.
FRRouting consente di implementare un router virtuale che supporta BGP, OSPF, EIGRP, RIP e altri protocolli. Tutto ciò che devi fare è distribuirlo sul sistema del tuo attaccante e puoi effettivamente fingere di essere un router legittimo nel dominio di routing.
Coly ha capacità per intercettare le trasmissioni EIGRP (Enhanced Interior Gateway Routing Protocol). Consente anche l'iniezione di pacchetti, che possono essere utilizzati per alterare le configurazioni di routing.
Nel protocollo Open Shortest Path First (OSPF) l'autenticazione MD5 è comunemente impiegata per garantire comunicazioni sicure tra i router. Tuttavia, questa misura di sicurezza può essere compromessa utilizzando strumenti come Loki e John the Ripper. Questi strumenti sono in grado di catturare e decifrare gli hash MD5, esponendo la chiave di autenticazione. Una volta ottenuta questa chiave, può essere utilizzata per introdurre nuove informazioni di routing. Per configurare i parametri di rotta e stabilire la chiave compromessa, vengono utilizzate rispettivamente le schede Injection e Connection.
Cattura e decifratura degli hash MD5: Strumenti come Loki e John the Ripper sono utilizzati a questo scopo.
Configurazione dei parametri di rotta: Questo avviene tramite la scheda Injection.
Impostazione della chiave compromessa: La chiave è configurata sotto la scheda Connection.
Above: Strumento per scansionare il traffico di rete e trovare vulnerabilità
Puoi trovare alcune ulteriori informazioni sugli attacchi di rete qui.
L'attaccante configura tutti i parametri di rete (GW, IP, DNS) del nuovo membro della rete inviando risposte DHCP false.
Controlla la sezione precedente.
ICMP Redirect consiste nell'inviare un pacchetto ICMP di tipo 1 codice 5 che indica che l'attaccante è il modo migliore per raggiungere un IP. Quindi, quando la vittima vuole contattare l'IP, invierà il pacchetto attraverso l'attaccante.
L'attaccante risolverà alcuni (o tutti) i domini che la vittima richiede.
Configura il proprio DNS con dnsmasq
Spesso esistono più percorsi verso sistemi e reti. Dopo aver creato un elenco di indirizzi MAC all'interno della rete locale, utilizza gateway-finder.py per identificare gli host che supportano l'inoltro IPv4.
Per la risoluzione degli host locali quando le ricerche DNS non hanno successo, i sistemi Microsoft si affidano a Link-Local Multicast Name Resolution (LLMNR) e al NetBIOS Name Service (NBT-NS). Allo stesso modo, Apple Bonjour e le implementazioni zero-configuration di Linux utilizzano Multicast DNS (mDNS) per scoprire i sistemi all'interno di una rete. A causa della natura non autenticata di questi protocolli e del loro funzionamento su UDP, inviando messaggi di broadcast, possono essere sfruttati da attaccanti che mirano a reindirizzare gli utenti verso servizi malevoli.
Puoi impersonare servizi che vengono cercati dagli host utilizzando Responder per inviare risposte false. Leggi qui ulteriori informazioni su come impersonare servizi con Responder.
I browser utilizzano comunemente il protocollo Web Proxy Auto-Discovery (WPAD) per acquisire automaticamente le impostazioni del proxy. Questo comporta il recupero dei dettagli di configurazione da un server, specificamente attraverso un URL come "http://wpad.example.org/wpad.dat". La scoperta di questo server da parte dei client può avvenire attraverso vari meccanismi:
Attraverso DHCP, dove la scoperta è facilitata utilizzando un codice speciale 252.
Tramite DNS, che comporta la ricerca di un nome host etichettato wpad all'interno del dominio locale.
Via Microsoft LLMNR e NBT-NS, che sono meccanismi di fallback utilizzati nei casi in cui le ricerche DNS non hanno successo.
Lo strumento Responder sfrutta questo protocollo agendo come un server WPAD malevolo. Utilizza DHCP, DNS, LLMNR e NBT-NS per ingannare i client facendoli connettere a esso. Per approfondire come i servizi possono essere impersonati utilizzando Responder controlla questo.
Puoi offrire diversi servizi nella rete per cercare di ingannare un utente a inserire alcune credenziali in chiaro. Ulteriori informazioni su questo attacco in Spoofing SSDP e Dispositivi UPnP.
Questo attacco è molto simile allo Spoofing ARP ma nel mondo IPv6. Puoi far credere alla vittima che l'IPv6 del GW abbia il MAC dell'attaccante.
Alcuni sistemi operativi configurano per impostazione predefinita il gateway dai pacchetti RA inviati nella rete. Per dichiarare l'attaccante come router IPv6 puoi usare:
Per impostazione predefinita, alcuni sistemi operativi cercano di configurare il DNS leggendo un pacchetto DHCPv6 nella rete. Quindi, un attaccante potrebbe inviare un pacchetto DHCPv6 per configurarsi come DNS. Il DHCP fornisce anche un IPv6 alla vittima.
Fondamentalmente, ciò che fa questo attacco è che, nel caso in cui l'utente provi ad accedere a una pagina HTTP che si sta reindirizzando alla versione HTTPS. sslStrip manterrà una connessione HTTP con il client e una connessione HTTPS con il server, in modo da poter sniffare la connessione in testo chiaro.
More info qui.
La differenza tra sslStrip+ e dns2proxy rispetto a sslStrip è che essi reindirizzeranno per esempio www.facebook.com a wwww.facebook.com (nota l'extra "w") e imposteranno l'indirizzo di questo dominio come l'IP dell'attaccante. In questo modo, il client si connetterà a wwww.facebook.com (l'attaccante) ma dietro le quinte sslstrip+ mantenere la vera connessione tramite https con www.facebook.com.
L'obiettivo di questa tecnica è evitare HSTS perché wwww.facebook.com non sarà salvato nella cache del browser, quindi il browser sarà ingannato a eseguire l'autenticazione di facebook in HTTP. Nota che per eseguire questo attacco la vittima deve cercare di accedere inizialmente a http://www.faceook.com e non a https. Questo può essere fatto modificando i link all'interno di una pagina http.
sslStrip o sslStrip+ non funzionano più. Questo perché ci sono regole HSTS pre-salvate nei browser, quindi anche se è la prima volta che un utente accede a un dominio "importante", lo farà tramite HTTPS. Inoltre, nota che le regole pre-salvate e altre regole generate possono utilizzare il flag includeSubdomains
quindi l'esempio di wwww.facebook.com di prima non funzionerà più poiché facebook.com usa HSTS con includeSubdomains
.
TODO: easy-creds, evilgrade, metasploit, factory
A volte, se il cliente verifica che il CA è valido, potresti servire un certificato di un altro hostname firmato da un CA. Un altro test interessante è servire un certificato dell'hostname richiesto ma auto-firmato.
Altre cose da testare sono provare a firmare il certificato con un certificato valido che non è un CA valido. Oppure utilizzare la chiave pubblica valida, forzare l'uso di un algoritmo come Diffie-Hellman (uno che non richiede di decrittare nulla con la vera chiave privata) e quando il cliente richiede una prova della vera chiave privata (come un hash) inviare una prova falsa e aspettarsi che il cliente non controlli questo.
Tieni presente che quando un pacchetto UDP viene inviato a un dispositivo che non ha la porta richiesta, viene inviato un ICMP (Port Unreachable).
I pacchetti ARP vengono utilizzati per scoprire quali IP sono in uso all'interno della rete. Il PC deve inviare una richiesta per ogni possibile indirizzo IP e solo quelli in uso risponderanno.
Bettercap invia una richiesta MDNS (ogni X ms) chiedendo _services_.dns-sd._udp.local; la macchina che vede questo pacchetto di solito risponde a questa richiesta. Poi, cerca solo le macchine che rispondono a "services".
Strumenti
Avahi-browser (--all)
Bettercap (net.probe.mdns)
Responder
Bettercap trasmette pacchetti alla porta 137/UDP chiedendo il nome "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA".
Bettercap trasmette pacchetti SSDP cercando tutti i tipi di servizi (porta UDP 1900).
Bettercap trasmette pacchetti WSD cercando servizi (porta UDP 3702).
Network Security Assessment: Know Your Network (3rd edition)
Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. Di Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood
Suggerimento bug bounty: iscriviti a Intigriti, una premium bug bounty platform creata da hacker, per hacker! Unisciti a noi su https://go.intigriti.com/hacktricks oggi, e inizia a guadagnare ricompense fino a $100,000!
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)