Effettuare un Port Scanning
Dopo aver individuato i sistemi attivi sulla rete, è tempo di passare a un targeting più preciso di questi sistemi tramite una scansione delle porte.
In poche parole, una scansione delle porte è un modo per determinare se una porta è “aperta” o “chiusa”.
Se una porta è aperta, può accettare connessioni e, se è chiusa, non può. Una scansione delle porte è un modo per scuotere le maniglie di ciascuna porta per determinare se è possibile ruotare la maniglia (e successivamente ottenere l’accesso).
Per inviare qualcosa a un determinato servizio su un sistema (come un server Web), si contatta l’indirizzo IP e quindi la porta.
Nel caso dello scenario del server Web, sarebbe simile a questo per l’indirizzo IP 192.168.14.42 come sistema di destinazione:
192.168.14.42:80
In questo esempio, sto contattando l’indirizzo IP e quindi mi collego alla porta 80 come indicato dopo i due punti (:).
Questa combinazione di un indirizzo IP e una porta è comunemente nota come socket o socket di rete.
Le porte note (well-known ports) sono le più comuni utilizzate nelle operazioni quotidiane e vanno da 0 a 1023.
La tabella di seguito riporta le porte note più comuni per i vari servizi:
Porta |
Servizio |
20-21 |
|
22 |
|
23 |
|
25 |
|
42 |
WINS |
53 |
|
80, 8080 |
|
88 |
Kerberos |
110 |
|
111 |
Portmapper – Linux |
123 |
|
135 |
RPC-DCOM |
139 |
SMB |
143 |
|
161, 162 |
|
389 |
LDAP |
445 |
CIFS |
514 |
Syslog |
636 |
Secure LDAP |
Le porte registrate (Registered Ports) vanno da 1024 a 49151. Le porte registrate sono porte che sono state identificate come utilizzabili da altre applicazioni in esecuzione al di fuori di quelle necessarie per le porte note.
La tabella seguente riporta alcune delle più comuni porte registrate, ma non tutte.
Porta |
Servizio |
1080 |
Socks5 |
1241 |
Nessus Server |
1433, 1434 |
SQL Server |
1494, 2598 |
Citrix Applications |
1521 |
Oracle Listener |
2512, 2513 |
Citrix Management |
3389 |
|
6662-6667 |
IRC |
Le porte dinamiche (Dynamic Ports) vanno da 49152-65535. Sono disponibili per supportare il traffico delle applicazioni che non è stato ufficialmente registrato nell’intervallo precedente.
Le porte su un sistema possono essere TCP o UDP e in base al protocollo utilizzato è possibile determinare la forma del servizio.
Quando si esegue una scansione, è molto utile prendere nota del numero di porta e se si tratta di TCP o UDP, per un uso successivo.
Come protocollo orientato alla connessione, TCP stabilisce connessioni e quindi verifica che ogni messaggio (noto come pacchetto) arrivi alla destinazione desiderata nel giusto ordine.
A tale scopo, TCP utilizza l’handshake a tre vie.
L’handshake a tre vie non è in sè un meccanismo per garantire sicurezza. A volte si commette un errore pensando che l’handshake sia stato creato per risolvere problemi di sicurezza, ma la realtà è che è solo un meccanismo per stabilire l’identità e una comunicazione tra i partecipanti.
Inoltre, ricordiamo che TCP utilizza l’handshake a tre vie, ma UDP no.
Durante l’handshake, si verificano i seguenti passaggi:
-
A invia un pacchetto SYN a B o una richiesta per stabilire una connessione;
-
B risponde con un SYN-ACK o con un riconoscimento della richiesta;
-
A risponde con un segnale di ACK finale, verso quale server stabilire completamente la connessione.
A differenza di TCP, UDP offre pochissime misure di sicurezza per garantire che le informazioni arrivino a destinazione e lo faccia correttamente.
UDP non presuppone che sia necessario il controllo degli errori. Questo è qualcosa che è determinato dall’applicazione per impostazione predefinita o dall’utente che configura l’applicazione.
UDP è un protocollo senza stato. Stateless significa che il protocollo tratta ogni richiesta di informazioni come una propria transazione idependente.
Sebbene ciò possa sembrare dispendioso in termini di risorse, è vero il contrario perché i sistemi non devono più tenere traccia delle conversazioni in corso e pertanto utilizzano meno spazio di dati nel pacchetto.
Detto questo, nei prossimi articoli vedremo come utilizzare la nostra conoscenza di questi due protocolli parlando prima di scansione delle porte tramite TCP.
Il protocollo TCP utilizza dei campi flag per informare la parte ricevente su come gestire la comunicazione. I flag sono disponibili su ogni pacchetto TCP e vengono attivati o disattivati in base alla situazione specifica.
[avatar user=”MattiaFelici” size=”thumbnail” align=”center” link=”https://www.computersec.it/informazioni/”]Mattia Felici[/avatar]