Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
masscan — Scansionatore di porte TCP, emette pacchetti SYN in modo asincrono, scansione dell'intera Internet in meno di 5 minuti. | Kitploit
Strumenti/GitHubGitHub/robertdavidgraham/masscan
Sniffing e Analisi dei PacchettiRicognizioneMappatura della ReteScansione PorteRaccolta InformazioniPenetration TestingTop in Mappatura della Rete n.2Top in Sniffing e Analisi dei Pacchetti n.17Top in Scansione Porte n.2
25.9k3.2k825 mesi faRevisionato da Kitploit
GitHubrobertdavidgraham/masscan

masscan

Scansionatore di porte TCP, emette pacchetti SYN in modo asincrono, scansione dell'intera Internet in meno di 5 minuti.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

unittests

MASSCAN: Scanner di porte IP di massa

Questo è uno scanner di porte su scala Internet. Può scansionare l'intera Internet in meno di 5 minuti, trasmettendo 10 milioni di pacchetti al secondo, da una singola macchina.

Il suo utilizzo (parametri, output) è simile a nmap, il più famoso scanner di porte. In caso di dubbio, prova una di quelle funzionalità -- sono supportate le funzionalità per la scansione estesa di molte macchine, mentre non lo sono le scansioni approfondite di singole macchine.

Internamente, utilizza trasmissione asincrona, simile a scanner di porte come scanrand, unicornscan e ZMap. È più flessibile, consentendo range arbitrari di porte e indirizzi.

NOTA: masscan utilizza il proprio stack TCP/IP ad hoc. Qualsiasi cosa diversa da semplici scansioni di porte può causare conflitto con lo stack TCP/IP locale. Ciò significa che devi usare l'opzione --src-ip per eseguire da un indirizzo IP diverso, oppure usare --src-port per configurare quali porte sorgente usa masscan, e poi configurare anche il firewall interno (come pf o iptables) per isolare quelle porte dal resto del sistema operativo.

Questo strumento è gratuito, ma considera di contribuire economicamente al suo sviluppo: Indirizzo del portafoglio Bitcoin: 1MASSCANaHUiyTtR3bJ2sLGuMw5kDBaj4T

Compilazione

Su Debian/Ubuntu, si procede più o meno come segue. Non ha realmente altre dipendenze oltre a un compilatore C (come gcc o clang).

sudo apt-get --assume-yes install git make gcc
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make

Questo mette il programma nella sottodirectory masscan/bin. Per installarlo (su Linux) esegui:

make install

Il sorgente consiste in molti piccoli file, quindi la compilazione è molto più veloce usando la build multi-thread. Questo richiede più di 2 GB su un Raspberry Pi (e si rompe), quindi potresti usare un numero più piccolo, come -j4 piuttosto che tutti i thread possibili.

make -j

Mentre Linux è la piattaforma target principale, il codice funziona bene su molti altri sistemi (Windows, macOS, ecc.). Ecco alcune informazioni aggiuntive sulla compilazione:

  • Windows con Visual Studio: usa il progetto VS10
  • Windows con MinGW: basta digitare make
  • Windows con cygwin: non funziona
  • Mac OS X con XCode: usa il progetto XCode4
  • Mac OS X con riga di comando: basta digitare make
  • FreeBSD: digita gmake
  • altri: prova a compilare tutti i file insieme, cc src/*.c -o bin/masscan

Su macOS, i binari x86 sembrano funzionare altrettanto velocemente sotto emulazione ARM.

Utilizzo

L'utilizzo è simile a nmap. Per scansionare un segmento di rete per alcune porte:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112

Questo farà:

  • scansionerà la sottorete 10.x.x.x e la sottorete 2603:3001:2d00:da00::x
  • scansionerà la porta 80 e il range da 8000 a 8100, ovvero 102 porte totali, su entrambe le sottoreti
  • stamperà l'output su <stdout> che può essere reindirizzato su un file

Per vedere l'elenco completo delle opzioni, usa la funzionalità --echo. Questa scarica la configurazione corrente ed esce. Questo output può essere usato come input nel programma:

# masscan -p80,8000-8100 10.0.0.0/8 2603:3001:2d00:da00::/112 --echo > xxx.conf
# masscan -c xxx.conf --rate 1000

Controllo banner

Masscan può fare più che semplicemente rilevare se le porte sono aperte. Può anche completare la connessione TCP e l'interazione con l'applicazione su quella porta per ottenere semplici informazioni "banner".

Masscan supporta il controllo banner sui seguenti protocolli:

  • FTP
  • HTTP
  • IMAP4
  • memcached
  • POP3
  • SMTP
  • SSH
  • SSL
  • SMBv1
  • SMBv2
  • Telnet
  • RDP
  • VNC

Il problema è che masscan contiene il proprio stack TCP/IP separato dal sistema su cui lo esegui. Quando il sistema locale riceve un SYN-ACK dal target sondato, risponde con un pacchetto RST che uccide la connessione prima che masscan possa catturare il banner.

Il modo più semplice per prevenirlo è assegnare a masscan un indirizzo IP separato. Ciò assomiglia a uno dei seguenti esempi:

# masscan 10.0.0.0/8 -p80 --banners --source-ip 192.168.1.200
  # masscan 2a00:1450:4007:810::/112 -p80 --banners --source-ip 2603:3001:2d00:da00:91d7:b54:b498:859d

L'indirizzo che scegli deve essere sulla sottorete locale e non altrimenti usato da un altro sistema. Masscan ti avvertirà che hai commesso un errore, ma potresti aver compromesso le comunicazioni dell'altra macchina per diversi minuti, quindi fai attenzione.

In alcuni casi, come WiFi, ciò non è possibile. In quei casi, puoi mettere un firewall sulla porta che masscan usa. Questo impedisce allo stack TCP/IP locale di vedere il pacchetto, ma masscan lo vede comunque poiché bypassa lo stack locale. Per Linux, ciò assomiglia a:

# iptables -A INPUT -p tcp --dport 61000 -j DROP
# masscan 10.0.0.0/8 -p80 --banners --source-port 61000

Probabilmente vorrai scegliere porte che non entrino in conflitto con le porte che Linux potrebbe altrimenti scegliere come porte sorgente. Puoi vedere il range che Linux usa, e riconfigurarlo, guardando nel file:

/proc/sys/net/ipv4/ip_local_port_range

Sull'ultima versione di Kali Linux (Agosto 2018), quel range è da 32768 a 60999, quindi dovresti scegliere porte al di sotto di 32768 o da 61000 in su.

Impostare una regola iptables dura solo fino al prossimo riavvio. Devi cercare come salvare la configurazione in base alla tua distribuzione, ad esempio usando iptables-save e/o iptables-persistent.

Su Mac OS X e BSD, ci sono passaggi simili. Per scoprire i range da evitare, usa un comando come il seguente:

# sysctl net.inet.ip.portrange.first net.inet.ip.portrange.last

Su FreeBSD e MacOS più vecchi, usa un comando ipfw:

# sudo ipfw add 1 deny tcp from any to any 40000 in
# masscan 10.0.0.0/8 -p80 --banners --source-port 40000

Su MacOS più recenti e OpenBSD, usa l'utilità di filtraggio pacchetti pf. Modifica il file /etc/pf.conf per aggiungere una riga come la seguente:

block in proto tcp from any to any port 40000:40015

Quindi per abilitare il firewall, esegui il comando:

# pfctl -E    

Se il firewall è già in esecuzione, riavvia o ricarica le regole con il seguente comando:

# pfctl -f /etc/pf.conf

Windows non risponde con pacchetti RST, quindi nessuna di queste tecniche è necessaria. Tuttavia, masscan è ancora progettato per funzionare al meglio usando il proprio indirizzo IP, quindi dovresti eseguirlo in questo modo quando possibile, anche quando non è strettamente necessario.

La stessa cosa è necessaria per altri controlli, come il controllo --heartbleed, che è solo una forma di controllo banner.

Come scansionare l'intera Internet

Sebbene utile per reti più piccole e interne, il programma è realmente progettato pensando all'intera Internet. Potrebbe assomigliare a questo:

# masscan 0.0.0.0/0 -p0-65535

Scansionare l'intera Internet è sbagliato. Per un motivo, parti di Internet reagiscono male alla scansione. Per un altro, alcuni siti tracciano le scansioni e ti aggiungono a una lista di blocco, il che ti farà essere bloccato da parti utili di Internet. Pertanto, vuoi escludere molti range. Per mettere in lista nera o escludere range, vuoi usare la seguente sintassi:

# masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt

Questo stampa semplicemente i risultati sulla riga di comando. Probabilmente vuoi salvarli su un file invece. Pertanto, vuoi qualcosa come:

# masscan 0.0.0.0/0 -p0-65535 -oX scan.xml

Ma questo va solo alla velocità predefinita di 100 pacchetti/secondo, che impiegherà un'eternità per scansionare Internet. Devi accelerarlo come segue:

# masscan 0.0.0.0/0 -p0-65535 --max-rate 100000
Scarica lo strumento