Manuali, links, fotografie e tanto altro
alla portata di un semplice click!
 
 Benvenuto Ospite
Manuali, immagini, fotografie e tanto altro a portata di un click

Cartoline virtuali

Cartolina n° 392



Sono presenti 1307 cartoline virtuali. Entra ora


Giochi online
Rshot v4


1. xenod: 30
1. ermesiti: 30
1. Daygo: 30

Visualizza tutti i giochi.

News Reader















Introduzione al portscanning
.: Data Pubblicazione 08-Nov-2004 :: Letture:: 1027 :: Recensione :: Stampa solo questa pagina :: Stampa pagina con tutte le sottopagine:.

In questi giorni, nei quali si ha una continua espansione della rete, a cui corrisponde un'aumento dei tentativi di intrusione, la sicurezza della vostra rete Linux è essenziale. Molto spesso, durante il testing, si preferisce mettersi nei panni di un possibile intruso e tentare una penetrazione della propria rete. Questo articolo descrive una delle fasi della penetrazione, lo scanning incentrandosi sulle tecniche implementative di un portscanner e presentando Nmap, uno dei piu avanzati portscanner di pubblico dominio, disponibili su Linux.
(n.d.NT. Se volete scaricare una versione di Nmap potete usare i potenti motori di ricerca =) per l'occasione vi consiglio http://linux.box.sk)

1. Introduzione Supponete di dover espugnare in una possibile battaglia un forte. Quale è la prima cosa che fareste? Beh, senz'altro una buona tattica di guerra sarebbe quella di ottenere tutte le informazioni relative alla struttura e configurazione del forte. Quante guardie vi sono, quali turni fanno, se hanno cannoni o meno, ecc. Ottenere queste informazioni è essenziale per la buona riuscita dell'assalto, più informazioni otterremo, maggiori possibilità di successo avremo. Medesima cosa vale per un server posto in rete, solo che in questo caso, un possibile intruso suddivide, l'ottenimento delle informazioni in due passi essenziali, che precedono l'attacco vero e proprio:
  • Improntamento. L'improntamento sistematico di una organizzazione permette al possibile intruso di crearsi un profilo completo dello stato di sicurezza della data organizzazione. Principalmente l'intruso cerca di ottenere maggiori informazioni possibili relative a:
    • Amministratori di rete e utenti della rete
    • Posizione del server
    • Presenza o meno di Intranet
    • Sistemi di rilevamento delle intrusioni
    • Server DNS e sua configurazione
    • Indirizzi IP assegnati
    • Eventuale Accesso Telefonico
    La maggior parte delle informazioni suddette sono liberamente disponibili su Internet. Non mi dilungo oltre perchè l'argomento richiede un articolo a parte, che va oltre i nostri scopi.
     
  • Scanning. Avendo effettuato l'improntamento sappiamo, come puo essere fatto il nostro "forte", dobbiamo ora essere sicuri, su come sia fatto esattamente e quali possibili sistemi operativi e servizi vi sono. Secondo una definizione comunemente accettata, l'arte di rilevare quali macchine siano attive e raggiungibili via Internet e quali servizi siano disponibili, usando tecniche come i ping sweep (utili per rilevare se uno determinato host sia attivo o meno), portscanning, e il rilevamento del sistema operativo tramite stack TCP/IP fingerprinting viene chiamata scanning. Noi in questo articolo incentreremo la nostra attenzione sul portscanning.
2. Port Scanning. La prima cosa, che viene da chiedersi è che sia il portscanning. Definiamo come portscanning il processo di connessione a porte TCP e UDP sul sistema nel quale si vuole tentare una penetrazione al fine di determinare quali servizi siano in esecuzione o stato di LISTENING. L'identificazione delle porte in LISTENING è critica al fine di determinare il tipo di sistema operativo e le applicazioni in uso. Un possibile intruso può abusare dei servizi presenti della vostra macchina Linux, se sono malconfigurati o soggetti a bug, che possono essere sfruttati per penetrare nel vostro sistema. Negli ultimi anni le tecniche per creare programmi, che effettuino il portscanning in maniera accettabile, hanno subito un notevole miglioramento tenendo presente i diversi obiettivi che un possibile intruso vorrebbe fossero raggiunti quando lo si esegue. Questi includono:
  • Identificare i servizi TCP o UDP in esecuzione sul dato sistema.
  • Identificare quale Sistema Operativo, è presente sul dato sistema.
  • Identificare applicazioni specifiche o versioni di un dato servizio sul sistema.
3. Tipi di Scan 3.1 Connessione TCP : Handshake a tre vie. Prima di esaminare i diversi tipi di scan, è necessario, descrivere brevemente come funziona una connessione TCP (per un riferimento completo si suggerisce un rapida lettura alla RFC 793 http://www.ietf.org/rfc/rfc0793.txt, utile anche successivamente quando parleremo dei vari tipi di scan). Quando un sistema (client) prova a stabilire una connessione TCP in un sistema, che fornisce un servizio (server), il client e il server scambiano una successione di messaggi, nel seguente modo:
  1. Il sistema client inizia una connessione mandando un messaggio SYN al server
  2. Il server riconosce il messaggio SYN mandando il messaggio SYN-ACK al client.
  3. Il client risponde con un messaggio di ACK.

A questo punto la connessione è attuata e si procede allo scambio dei dati tra client e server.

Per fissare le idee, facciamo il seguente schema:
         CLIENT                              SERVER
                      SYN dal CLIENT
          |------------------------------------>
                      SYN/ACK dal SERVER
          <------------------------------------|
                      ACK dal CLIENT
          |------------------------------------>
Schema 1.1. Handshake a tre vie.
4. Tecniche di PortScanning. Lo schema di connessione soprastante viene definito handshake a tre vie, ed è utile al fine di comprendere le diverse tecniche di portscanning, che si possono riassumersi in :
  • Scan TCP connect(). Questo tipo di scan si connette alle porte dell'host e completa un handshake a tre vie (secondo lo schema descritto sopra). È facilmente rilevabile dal sistema, che lo subisce e per questo motivo difficilmente un potenziale intruso lo usa.
  • Scan TCP SYN. Questo tipo di scan, viene considerato come il "cavallo di battaglia" delle varie tecniche di portscanning, ed è generalmente denominato come "scanning semi-aperto", in quanto non viene portato a termine l'handshake, e non viene compiuta una vera e propria connessione. Supponiamo di avere una porta P in un nostro host, vediamo come funziona uno scan TCP SYN:
    - MANDO UN PACCHETTO TCP SYN, alla porta P dell'host di cui sto 
      facendo il portscanning.
    
    - se RICEVO dalla porta P:
    
         * UN SYN/ACK ==> posso dedurre che P è in LISTENING.
         * UN RST/ACK ==> posso dedurre che P non è in LISTENING
    
    - MANDO UN RST/ACK per evitare, che l'handshake si completi.
  • Scan TCP FIN. Tecnica di scanning basata sulla RFC 793, funziona in questo modo:
    - MANDO UN PACCHETTO TCP FIN, alla porta P dell'host di cui 
      sto facendo il portscanning.
    
    - se RICEVO dalla porta P:
         * UN RST ==> posso dedurre che la porta è chiusa;
  • Scan TCP Xmas Tree. Funziona allo stesso modo del precedente, solo che manda un pacchetto con FIN, URG e PUSH impostati.
  • TCP Null Scan. Questa tecnica manda un pacchetto con tutti i flag disattivati, e per quanto riguarda l'output funziona allo stesso modo dello Scan TCP FIN.
  • UDP scan. Questa tecnica manda un pacchetto UDP alla porta dell'host, di cui si vuole fare lo scanning, se la data porta risponde con il messaggio ICMP port unreacheable, la porta è aperta, altresi la porta è chiusa.

Ho concluso la descrizione delle principali tecniche implementative di un portscanner, ora che sappiamo cosa fanno i portscanner, vediamo come usarli al fine di scoprire, quante e quali informazioni un possibile intruso potrebbe ottenere mediante portscanning sulla nostra rete. Per fare questi esempi, utilizzo un portscanner molto noto : Nmap.

5. Introduzione ad Nmap Nmap, prelevabile al http://www.insecure.org/nmap/index.html è un portscanner, che incorpora in se oltre a tutte le tecniche di portscannig descritte sopra, la rilevazione del sistema operativo, tramite una tecnica chiamata TCP/IP Stack FingerPrinting, di cui trovate un'ampia descrizione (anche in Italiano) al http://www.insecure.org/nmap/nmap-fingerprinting-article.html. Vediamo ora, come usare nmap, al fine di testare la nostra rete con gli occhi dell'intruso. Supponiamo che l'indirizzo, corrispondente all'host della nostra rete, che si desidera testare sia il 192.168.1.1, ed eseguiamo tutti i tipi di portscannig descritti precedentemente:

Scan TCP connect()
 
[root@zetanet]# nmap -sT 192.168.1.1


Solo in questo caso, vediamone l'output:


Starting nmap V. 2.3BETA12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)
Interesting ports on  (192.168.1.1):
Port    State       Protocol  Service
21      open        tcp       ftp                     
23      open        tcp       telnet                  
25      open        tcp       smtp                    
53      open        tcp       domain                  
79      open        tcp       finger                  
80      open        tcp       http                    
98      open        tcp       linuxconf               
111     open        tcp       sunrpc                  
139     open        tcp       netbios-ssn             

# Nmap run completed -- 1 IP address (1 host up) scanned in 301 seconds
Scan TCP SYN
[root@zetanet]# nmap -sS 192.168.1.1
Scan TCP FIN
[root@zetanet]# nmap -sF 192.168.1.1
Scan TCP XMAS
[root@zetanet]# nmap -sX 192.168.1.1
Scan UDP
[root@zetanet]# nmap -sU 192.168.1.1
Scan TCP Null
 
[root@zetanet]# nmap -sN 192.168.1.1

5.1 Funzionalità aggiuntive. Due funzionalità aggiuntive molto importanti, che nmap offre, sono la rilevazione del sistema operativo e l'utilizzo dei decoys. I decoys, letteralmente esche, sono un gruppo di indirizzi IP esistenti posti durante lo scan assieme al vostro indirizzo, facendo così gli eventuali sistemi di rilevamento delle intrusioni riportano N indirizzi IP assieme e non solo il vostro. Per concludere il discorso di vediamo un esempio, di queste due funzionalità:
[root@zetanet]# nmap -sS 192.168.1.1 -O -D 195.210.98.21,212.141.68.248,
ME,62.11.122.15 192.168.1.1


Starting nmap V. 2.3BETA12 by Fyodor (fyodor@dhp.com, www.insecure.org/nmap/)


Interesting ports on  (192.168.1.1):
Port    State       Protocol  Service
21      open        tcp       ftp                     
23      open        tcp       telnet                  
25      open        tcp       smtp                    
53      open        tcp       domain                  
79      open        tcp       finger                  
80      open        tcp       http                    
98      open        tcp       linuxconf               
111     open        tcp       sunrpc                  
139     open        tcp       netbios-ssn             

TCP Sequence Prediction: Class=random positive increments
                         Difficulty=632021 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.13

Nmap run completed -- 1 IP address (1 host up) scanned in 312 seconds

L'opzione -D, permette di specificare i decoys (ME è il mio indirizzo IP), invece l'opzione -O permette di rilevare il sistema operativo, quest'ultima opzione è da non confondere con l'opzione -o, che vi permette di salvare l'output su file. Per le altre opzioni si consulti la man page di Nmap, che oltre ad essere ben scritta, viene costantemente aggiornata.

6. Contromisure. Probabilmente, alcuni di voi si chiederanno quali strumenti usare contro il portscanning. Esistono diversi strumenti di difesa per Linux, attivi e passivi al fine di rilevare o bloccare il portscanning, citiamone alcuni:

  • Firewall. La maggior parte dei firewall possono loggare, ed ipchains/ipfwadm non sono un eccezione, usando l'opzione -l potete loggare ogni pacchetto e rilevare ogni tentativo di intrusione, portscanning incluso.
  • Psionic PortSentry. Utility facente parte del progetto Abacus, prelevabile al http://www.psionic.com/abacus/portsentry. PortSentry può essere configurato per rilevare e bloccare il portscanning.
  • Snort. Snort è un sistema di rilevamento delle intrusioni, che permette di identificare il comportamento di Nmap. Un buon riferimento su come funziona Snort è al http://www.clark.net/~roesch/security.html
  • Network Flight Recorder (NFR). Descrivere NFR in quattro righe è impossibile per la quantità di operazioni, che consente fare, avendo al suo interno un vero e proprio linguaggio di scripting, che vi permette di configurarlo al fine di rilevare un dato tentativo di intrusione. Se siete interessanti vi rimando al sito http://www.nfr.net.

7. Note finali. Questo articolo, è da considerarsi una semplice introduzione, e non un riferimento completo. Ho voluto lavorare su due piani: uno teorico, descrivendo le tecniche di portscanning, e l'altro applicativo, mettendomi nei panni di un possibile intruso e facendo lo scan di un host presente nella mia rete. Sul portscanning si può trovare un'infinità di documentazione in Internet. Un buon sito dove iniziare? Semplice: http://www.securify.com/packetstorm

8. Avvertenze sull'uso. Più volte e' stato chiesto sul newsgroup alt.hackers.cough.cough.cough se il portscanner è un reato.
IL PORTSCANNER IN SE NON E' UN REATO!!
Cioè non può essere perseguito dalla legge; ma il portscanner può dare fastidio all'amministratore della rete che state controllando.
Visto che non è un reato l'amministratore della rete che state controllando (chiamiamolo X [ mannaggia!!! ma proprio "X" dovevi chiamarlo? ;) X al limite è quello che il port scanning lo fa hihiihiihi <N.D.R.> ] ) non può tecnicamente fare niente se non controllare i proprio log e farli presente all'amministratore della vostra rete. Comunque sia X può essere la persona più impaziente sulla facci della terra ma non potrà fare niente finché non verrà effettuato un vero e proprio attacco alla sua rete e/o una introduzione.

.: Ritorna ad argomento Networking :: Ritorna a Indice Argomenti :.
Network: Cartoline virtuali - Calendari - Modelle - Playmates - Sfondi - Forum - Old SecurityNews - Warez