
Sniffer passivo di sicurezza di rete che analizza 28 protocolli (ARP, STP, OSPF, VLAN, SCADA) per rilevare vulnerabilità nelle apparecchiature di rete senza generare traffico.
Sniffer di sicurezza di rete per trovare vulnerabilità nella rete. Progettato per pentester e ingegneri della sicurezza.

___ __
/ | / /_ ____ _ _____
/ /| | / __ \/ __ \ | / / _ \
/ ___ |/ /_/ / /_/ / |/ / __/
/_/ |_/_.___/\____/|___/\___/
Above: Network Security Sniffer
Developer: Mahama Bazarov (Caster)
Contact: [email protected]
Version: 2.8.1
Codename: Rubens Barrichello
Documentation & Usage: https://github.com/caster0x00/Above
Tutte le informazioni contenute in questo repository sono fornite esclusivamente a scopo didattico e di ricerca. L'autore non è responsabile per qualsiasi uso illegale di questo strumento.
Si tratta di uno strumento specializzato per la sicurezza di rete che aiuta sia i pentester che i professionisti della sicurezza.
Above è uno sniffer di sicurezza di rete per trovare vulnerabilità nelle apparecchiature di rete. Si basa interamente sull'analisi del traffico di rete, quindi non genera alcun rumore sull'aria. È invisibile. Completamente basato sulla libreria Scapy.
Above consente ai pentester di automatizzare il processo di individuazione delle vulnerabilità nell'hardware di rete. Protocolli di scoperta, routing dinamico, 802.1Q, protocolli di risoluzione, ICS, FHRP, STP, LLMNR/NBT-NS, ecc.
Rileva fino a 28 protocolli:
MACSec (802.1X AE)
EAPOL (Checking 802.1X versions)
ARP (Host Discovery)
CDP (Cisco Discovery Protocol)
DTP (Dynamic Trunking Protocol)
LLDP (Link Layer Discovery Protocol)
VLAN (802.1Q)
S7COMM (Siemens) (SCADA)
OMRON (SCADA)
TACACS+ (Terminal Access Controller Access Control System Plus)
ModbusTCP (SCADA)
STP (Spanning Tree Protocol)
OSPF (Open Shortest Path First)
EIGRP (Enhanced Interior Gateway Routing Protocol)
BGP (Border Gateway Protocol)
VRRP (Virtual Router Redundancy Protocol)
HSRP (Host Standby Redundancy Protocol)
GLBP (Gateway Load Balancing Protocol)
IGMP (Internet Group Management Protocol)
LLMNR (Link Local Multicast Name Resolution)
NBT-NS (NetBIOS Name Service)
MDNS (Multicast DNS)
DHCP (Dynamic Host Configuration Protocol)
DHCPv6 (Dynamic Host Configuration Protocol v6)
ICMPv6 (Internet Control Message Protocol v6)
SSDP (Simple Service Discovery Protocol)
MNDP (MikroTik Neighbor Discovery Protocol)
SNMP (Simple Network Management Protocol)
Above funziona in due modalità:
Lo strumento è molto semplice nel suo funzionamento ed è guidato da argomenti:
.pcap già pronto e cerca protocolli al suo interno.pcap, il cui nome viene specificato dall'utenteusage: above.py [-h] [--interface INTERFACE] [--timer TIMER] [--output OUTPUT] [--input INPUT] [--passive-arp] [--search-vlan]
options:
-h, --help show this help message and exit
--interface INTERFACE
Interface for traffic listening
--timer TIMER Time in seconds to capture packets, default: not set
--output OUTPUT File name where the traffic will be recorded, default: not set
--input INPUT File name of the traffic dump
--passive-arp Passive ARP (Host Discovery)
--search-vlan VLAN Search
Le informazioni ottenute saranno utili non solo al pentester, ma anche all'ingegnere della sicurezza, che saprà a cosa prestare attenzione.
Quando Above rileva un protocollo, restituisce le informazioni necessarie per indicare il vettore di attacco o il problema di sicurezza:
Impatto: Che tipo di attacco può essere eseguito su questo protocollo;
Strumenti: Quale strumento può essere utilizzato per lanciare un attacco;
Informazioni tecniche: Informazioni necessarie per il pentester, indirizzi MAC/IP del mittente, ID del gruppo FHRP, domini OSPF/EIGRP, ecc.
Mitigazione: Raccomandazioni per risolvere i problemi di sicurezza
Indirizzi sorgente/destinazione: Per i protocolli, Above mostra informazioni sugli indirizzi MAC e IP di origine e destinazione
Puoi installare Above direttamente dai repository Kali Linux
caster@kali:~$ sudo apt update && sudo apt install above
Oppure:
:~$ sudo apt-get install python3-scapy python3-colorama python3-setuptools
:~$ git clone https://github.com/caster0x00/above
:~$ cd above/
:~/above$ sudo python3 setup.py install
# Install python3 first
brew install python3
# Then install required dependencies
sudo pip3 install scapy colorama setuptools
# Clone the repo
git clone https://github.com/caster0x00/above
cd above/
sudo python3 setup.py install
Non dimenticare di disattivare il firewall su macOS!
Above richiede l'accesso come root per lo sniffing
Above può essere eseguito con o senza timer:
caster@kali:~$ sudo above --interface eth0 --timer 120
Per interrompere lo sniffing del traffico, premere CTRL + C
Esempio:
caster@kali:~$ sudo above --interface eth0 --timer 120
___ __
/ | / /_ ____ _ _____
/ /| | / __ \/ __ \ | / / _ \
/ ___ |/ /_/ / /_/ / |/ / __/
/_/ |_/_.___/\____/|___/\___/
Above: Network Security Sniffer
Developer: Mahama Bazarov (Caster)
Contact: [email protected]
Version: 2.8.1
Codename: Rubens Barrichello
Documentation & Usage: https://github.com/caster0x00/Above
[*] Start Sniffing
[+] Detected STP Frame
[*] Attack Impact: Partial MITM
[*] Tools: Yersinia, Scapy
[*] STP Root Switch MAC: 00:11:22:33:44:55
[*] STP Root ID: 32768
[*] STP Root Path Cost: 0
[*] Mitigation: Enable BPDU Guard or Portfast
[*] Vendor: Routerboard.com
Se è necessario registrare il traffico sniffato, utilizzare l'argomento --output
caster@kali:~$ sudo above --interface eth0 --timer 120 --output above.pcap
Se si interrompe lo strumento con CTRL+C, il traffico viene comunque scritto nel file
Se si dispone già di un traffico registrato, è possibile utilizzare l'argomento --input per cercare potenziali problemi di sicurezza
caster@kali:~$ above --input hsrp.cap
Esempio:
caster@kali:~$ sudo above --input hsrp.cap
___ __
/ | / /_ ____ _ _____
/ /| | / __ \/ __ \ | / / _ \
/ ___ |/ /_/ / /_/ / |/ / __/
/_/ |_/_.___/\____/|___/\___/
Above: Network Security Sniffer
Developer: Mahama Bazarov (Caster)
Contact: [email protected]
Version: 2.8.1
Codename: Rubens Barrichello
Documentation & Usage: https://github.com/caster0x00/Above
[+] Analyzing pcap file...
[+] Detected HSRP Packet
[*] HSRP Active Router Priority: 90
[+] Attack Impact: MITM
[*] Tools: Loki, Scapy, Yersinia
[*] HSRP Group Number: 10
[+] HSRP Virtual IP Address: 10.28.168.254
[*] HSRP Sender IP: 10.28.168.253
[*] HSRP Sender MAC: 00:00:0c:07:ac:0a
[!] Authentication: Plaintext Phrase: cisco
[*] Mitigation: Priority 255, Authentication, Extended ACL
[*] Vendor: Cisco Systems
Questo può essere molto utile se un aggressore non vuole generare rumore sull'aria con scansioni ARP e scoprire gli host in modo silenzioso. Questa funzione viene eseguita con --passive-arp e tutti gli host trovati verranno scritti nel file above_passive_arp.txt.
caster@kali:~$ sudo above --interface eth0 --passive-arp
[+] Starting Host Discovery...
[*] IP and MAC addresses will be saved to 'above_passive_arp.txt'
Se lo si desidera, è possibile specificare un timer per quanto tempo ascoltare i frame ARP per trovare gli host. Per impostazione predefinita, non è impostato alcun timer.
Una volta avviato, il terminale verrà completamente cancellato e verrà visualizzata una tabella composta da una mappatura di indirizzo IP e indirizzo MAC:
+--------------------+------------------------------+--------------------+
| IP Address | MAC Address | ARP Type |
+--------------------+------------------------------+--------------------+
| 172.16.120.12 | f0:27:65:ba:1c:42 | ARP Response |
| 172.16.120.45 | 6d:9f:84:2b:33:ea | ARP Request |
| 172.16.120.78 | 3a:7c:19:d8:4e:21 | ARP Response |
| 172.16.120.103 | c4:12:76:ae:50:bb | ARP Request |
| 172.16.120.127 | 89:3b:df:92:6a:54 | ARP Response |
| 172.16.120.156 | b7:5d:49:cb:72:99 | ARP Request |
| 172.16.120.189 | 1e:47:ac:3d:15:f8 | ARP Response |
| 172.16.120.222 | 43:9a:df:e0:84:3c | ARP Request |
+--------------------+------------------------------+--------------------+
Il contenuto del file above_passive_arp.txt sarà simile a questo:
caster@kali:~$ cat above_passive_arp.txt
Above: Passive ARP Host Discovery
Time: 2024-08-16 17:30:16
--------------------------------------------------
172.16.120.12 - f0:27:65:ba:1c:42
172.16.120.45 - 6d:9f:84:2b:33:ea
172.16.120.78 - 3a:7c:19:d8:4e:21
172.16.120.103 - c4:12:76:ae:50:bb
172.16.120.127 - 89:3b:df:92:6a:54
172.16.120.156 - b7:5d:49:cb:72:99
172.16.120.189 - 1e:47:ac:3d:15:f8
172.16.120.222 - 43:9a:df:e0:84:3c
Ecco come Above con l'apprendimento dei frame ARP può aiutare a scoprire gli host in un segmento senza rumore nell'aria.
Above può anche trovare ID VLAN nel traffico. Questa è un'opzione utile se l'aggressore si trova su una porta trunk in alcune circostanze durante il pentest. Il problema è che su una porta trunk tutto il traffico è taggato con tag 802.1Q appartenenti a segmenti VLAN. Above può estrarre tutti gli ID VLAN dall'aria o da un dump di traffico:
caster@kali:~$ sudo above --interface eth0 --search-vlan
Quando si esegue questa funzione, anche il terminale verrà cancellato e verrà visualizzata e aggiornata una tabella:
+------------------------------+---------------+----------------------------------------+
|VLAN ID |Frames Count |How to Jump |
+------------------------------+---------------+----------------------------------------+
|120 |8 |sudo vconfig add eth0 120 |
|80 |8 |sudo vconfig add eth0 80 |
|251 |7 |sudo vconfig add eth0 251 |
|190 |6 |sudo vconfig add eth0 190 |
+------------------------------+---------------+----------------------------------------+
Inoltre, il risultato di questa funzione verrà scritto nel file above_discovered_vlan.txt:
caster@kali:~$ cat above_discovered_vlan.txt
Above: Discovered VLAN ID
Time: 2024-08-16 17:41:19
--------------------------------------------------------------------------------
VLAN ID Frames Count How to Jump
--------------------------------------------------------------------------------
1 208 sudo vconfig add eth0 1
5 972 sudo vconfig add eth0 5
6 904 sudo vconfig add eth0 6
10 20 sudo vconfig add eth0 10
12 20 sudo vconfig add eth0 12
13 20 sudo vconfig add eth0 13
11 20 sudo vconfig add eth0 11
2000 1 sudo vconfig add eth0 2000
1000 2 sudo vconfig add eth0 1000
--------------------------------------------------------------------------------
Ecco come è possibile trovare informazioni sui segmenti VLAN basandosi esclusivamente sulle operazioni sul traffico. Ma è bene considerare che si tratta di uno scenario specifico; non è frequente che un aggressore si trovi su una porta trunk. O avrà fortuna con DTP o si imbatterà in una porta switch dimenticata dall'amministratore.
A partire dalla versione 2.8, Above è in grado di identificare il vendor tramite l'indirizzo MAC, in particolare dai primi 24 bit. Ciò viene fatto utilizzando un database scaricato, quindi convertendolo nel modulo above_oui_dict.py, che è un dizionario composto da OUI unici e nomi di vendor.
Copyright (c) 2025 Mahama Bazarov. Questo progetto è concesso in licenza secondo la Licenza Apache 2.0
Se hai suggerimenti o trovi bug, sentiti libero di aprire issue nel repository o contattarmi: [email protected]