Perché alcune porte segnalate da nmap vengono filtrate e non le altre?


38

Sto scansione di un server che dovrebbe avere un piuttosto semplice firewall utilizzando iptables : di default tutto è caduto oltre RELATEDe ESTABLISHEDpacchetti. L'unico tipo di NEWpacchetti consentiti sono i pacchetti TCP sulla porta 22 e 80 e il gioco è fatto (nessun HTTPS su quel server).

Il risultato di nmap sulle prime porte 2048 dà 22 e 80 come aperti, come mi aspetto. Tuttavia, alcune porte vengono visualizzate come "filtrate".

La mia domanda è: perché le porte 21, 25 e 1863 vengono visualizzate come "filtrate" e le altre 2043 porte non vengono visualizzate come filtrate?

Mi aspettavo di vedere solo 22 e 80 come "aperti".

Se è normale vedere 21,25 e 1863 come "filtrati", allora perché anche tutte le altre porte non vengono visualizzate come "filtrate" !?

Ecco l' output di nmap :

# nmap -PN 94.xx.yy.zz -p1-2048

Starting Nmap 6.00 ( http://nmap.org ) at 2014-06-12 ...
Nmap scan report for ksXXXXXX.kimsufi.com (94.xx.yy.zz)
Host is up (0.0023s latency).
Not shown: 2043 closed ports
PORT     STATE    SERVICE
21/tcp   filtered ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
1863/tcp filtered msnp

Davvero non capisco perché ho 2043 porte chiuse:

Not shown: 2043 closed ports

e non 2046 porte chiuse.

Ecco un lsof lanciato sul server:

# lsof -i -n
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
named    3789 bind   20u  IPv4     7802       TCP 127.0.0.1:domain (LISTEN)
named    3789 bind   21u  IPv4     7803       TCP 127.0.0.1:953 (LISTEN)
named    3789 bind  512u  IPv4     7801       UDP 127.0.0.1:domain 
sshd     3804 root    3u  IPv4     7830       TCP *:ssh (LISTEN)
sshd     5408 root    3r  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
sshd     5411    b    3u  IPv4 96926113       TCP 94.xx.yy.zz:ssh->aa.bb.cc.dd:37516 (ESTABLISHED)
java    16589    t   42u  IPv4 88842753       TCP *:http-alt (LISTEN)
java    16589    t   50u  IPv4 88842759       TCP *:8009 (LISTEN)
java    16589    t   51u  IPv4 88842762       TCP 127.0.0.1:8005 (LISTEN)

(notare che Java / Tomcat è in ascolto sulla porta 8009 ma che la porta è DROPped dal firewall)


Ottieni gli stessi risultati quando esegui la scansione di altri host?
— Creek,

@Creek: ah, ho appena provato su slashdot.org e ho aperto 80 e 443 ma filtrato anche 25 / smtp . Ma poi mi hai dato l'idea di provare a nmap quello stesso server non dal mio computer di casa ma da un altro server che possiedo: non ottengo le 3 porte filtrate ma poi ottengo 53 / dominio / chiuso , 443 / https / chiuso e 953 / rndc / chiuso . (entrambi i miei server dedicati sono ospitati presso OVH / Francia).
— Cedric Martin,

1
Se vuoi davvero vedere cosa nmapsta facendo, dovresti scansionare usando i privilegi di root, usando SYN scan ( -sS) e --packet-trace. Inoltre, prenditi un paio di minuti e leggi la pagina man, rimarrai sorpreso di quali gemme ci sono
— Creek,

Inoltre, aprirei temporaneamente quelle porte e vedrei se i pacchetti li raggiungono.
— Mark Hurd,

Risposte:


25

L'istruzione "porta filtrata" di nmap varia in base al metodo di scansione.

La scansione standard (Scansione TCP se utente non privilegiato o Scansione semiaperta -sS se superutente) si basa sul protocollo TCP. (chiamato hanshake a 3 vie)

  • Un client (tu) emette un SYN, se il server risponde SYN / ACK: significa che la porta è aperta !

  • Emetti un SYN, se il server risponde a RST: significa che la porta è chiusa !

  • Emetti un SYN, se il server non risponde o risponde con errore ICMP: significa che la porta è filtrata . Probabilmente un firewall IDS / statefull blocca la tua richiesta)

Per capire qual è lo stato reale della porta, puoi:

L'eccellente libro " Nmap Network Discovery ", scritto dal suo creatore Fyodor, lo spiega molto bene. quoto

filtrata: Nmap non può determinare se la porta è aperta perché il filtro pacchetti impedisce alle sue sonde di raggiungere la porta. Il filtro potrebbe provenire da un dispositivo firewall dedicato, regole del router o software firewall basato su host. Queste porte frustrano gli aggressori perché forniscono così poche informazioni. A volte rispondono con messaggi di errore ICMP come il codice di tipo 3 13 (destinazione irraggiungibile: comunicazione amministrativamente vietata), ma i filtri che semplicemente rilasciano i probe senza rispondere sono molto più comuni. Ciò costringe Nmap a riprovare più volte nel caso in cui la sonda fosse caduta a causa della congestione della rete anziché del filtro. Questo tipo di filtro rallenta notevolmente le scansioni.

open | filtered: Nmap posiziona le porte in questo stato quando non è in grado di determinare se una porta è aperta o filtrata. Ciò si verifica per i tipi di scansione in cui le porte aperte non rispondono. La mancanza di risposta potrebbe anche significare che un filtro di pacchetti ha lasciato cadere la sonda o qualsiasi risposta suscitata. Quindi Nmap non sa con certezza se la porta è aperta o filtrata. Le scansioni UDP, protocollo IP, FIN, NULL e Natale classificano le porte in questo modo.

chiuso | filtrato: questo stato viene utilizzato quando Nmap non è in grado di determinare se una porta è chiusa o filtrata. Viene utilizzato solo per la scansione inattiva dell'ID IP discussa nella Sezione 5.10, "Scansione inattiva TCP (-sl)


Quindi, come posso filtrare la porta 22? Supponiamo che io
— stia

"Unfilter"? Beh, non intercetti il ​​traffico diretto a 22 sul tuo firewall, quindi non verrà filtrato ... In questo caso verrai "aperto" o "chiuso" come risposta al probe nmap
— Florian Bidabe,

Cosa stai scannerizzando?
— Florian Bidabe,

Sto usando questo comando: sudo nmap -oG - -T4 -A -p22 -v pi.eazyigz.com | grep ssh
— IgorGanapolsky

1
"-T4" non è necessario, già specificato in "-A" ... per quanto riguarda il probe, sudo nmap implica che viene utilizzata una scansione Syn (-sS). "-A" è una versione più breve di "-T4" + "- sV" + "- O". Se il rilevamento del servizio (-sV) non riesce a sondare il server SSH, è probabile che la porta sia chiusa (nessun ascolto ssh), altrimenti tra il client e il server DEVE esserci qualcosa che intercetta il probe e rilascia i pacchetti (un firewall host, un IDS, o dispositivi di rete non configurati
— correttamente

10

perché le porte 21, 25 e 1863 appaiono come "filtrate" e le altre 2043 porte non appaiono come filtrate?

Perché nel tuo ISP, router, amministratore di rete, qualsiasi cosa tra loro o te li sta filtrando. Queste porte hanno una storia piuttosto brutta, il 1863 è la porta utilizzata dal protocollo di messaggistica istantanea di Microsoft (aka MSN e amici) che credo tu possa (o non avere) impostato una regola specifica. Quello SMTP sembra che il tuo ISP sia il colpevole e FTP mi ha completamente sbalordito, dal momento che non ho idea di cosa potrebbe accadere a loro.


1
Grazie per la spiegazione! Quindi, "filtrato" fondamentalmente significa che c'è l'equivalente di un iptables s' rifiutare qualche parte (ISP, router, ecc)? E l'ISP / router o qualunque cosa stia rifiutando invece di DROPping perché è più pulita? Per quanto riguarda la porta 25: è filtrata anche per me, per esempio, da slashdot.org (quando la mappa dalla mia connessione di casa, ma non quando la mappa dal mio server dedicato).
— Cedric Martin,

6
@CedricMartin, ce l'hai esattamente al contrario. "Filtrato" significa che il pacchetto viene eliminato (nessuna risposta), mentre "chiuso" significa che il pacchetto viene rifiutato (viene inviata una risposta "non raggiungibile" della porta ICMP).
— Segna il

@Mark: quindi se l'ho capovolto la mia domanda originale rimane: sul mio server, usando iptables , lascerò cadere tutto tranne le porte 22 e 80. Come mai solo 3 porte appaiono come "filtrate" !?
— Cedric Martin,

@CedricMartin modifica la tua domanda e aggiungi le tue regole iptables.
— Braiam,

1

Per impostazione predefinita, Nmap analizza solo le 1.000 porte più comuni per ciascun protocollo (tcp, udp). Se la tua porta è al di fuori di quella, allora non la scansionerà e quindi non la segnalerà. Tuttavia, è possibile specificare le porte che si desidera scansionare con l'opzione -p.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.