Ho già parlato di lsof in questo articolo.

Qui rivediamo il comando, usandolo però solo per i controlli di rete.

Ovviamente, con lsof, i controlli si possono fare solo sul pc da dove viene lanciato; ed occorre avere privilegi elevati.

Questo un primo esempio:

# lsof -i
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind     526     root    6u  IPv4  11099      0t0  UDP *:sunrpc
rpcbind     526     root    7u  IPv4  11102      0t0  UDP *:701
rpcbind     526     root    8u  IPv4  11103      0t0  TCP *:sunrpc (LISTEN)
rpcbind     526     root    9u  IPv6  11104      0t0  UDP *:sunrpc
rpcbind     526     root   10u  IPv6  11105      0t0  UDP *:701
rpcbind     526     root   11u  IPv6  11106      0t0  TCP *:sunrpc (LISTEN)
rpc.statd   535    statd    5u  IPv4  11321      0t0  UDP localhost:711
rpc.statd   535    statd    8u  IPv4  11177      0t0  UDP *:44965
rpc.statd   535    statd    9u  IPv4  11179      0t0  TCP *:50511 (LISTEN)
rpc.statd   535    statd   10u  IPv6  11181      0t0  UDP *:46095
rpc.statd   535    statd   11u  IPv6  11183      0t0  TCP *:44720 (LISTEN)
mongod      553  mongodb    9u  IPv4  12107      0t0  TCP localhost:27017 (LISTEN)
mongod      553  mongodb   10u  IPv4  14086      0t0  TCP localhost:28017 (LISTEN)
..............................................

Questo ottiene tutti i file di rete internet.

In genere, per idenificare il nostro indirizzo IP pubblico, usiamo siti di terze parti come What Is My Ip, o andando alla sezione strumenti di questo blog laughing.

Se siamo su Linux, però, possiamo usare alcuni comandi senza dover usare servizi di terzi parti.

Un primo comando è dig; comando molto potente che serve per interrogare i DNS server.

Abbiamo già visto alcuni strumenti per monitorare il traffico di rete su Linux.

Oggi ne vediamo un altro interessante: vnStat.

Prima di tutto installiamolo; su Debian e derivate:

# aptitude install vnstat

A questo punto dobbiamo identificare il nome della interfaccia di rete da monitorare.

Per monitorare la rete LAN / WLAN, esistono diversi tool.

Oggi ne vediamo uno molto completo e gratuito (previa registrazione gratuita) per Windows.

Si chiama Capsa e lo trovate qua.

Una volta completata la registrazione e il download, dovete attivarlo attraverso un semplice wizard.

Di base il programma ha due finestre principali: Capture e Replay.

Ho scoperto un utile programmino per monitorare il traffico di rete in tempo reale su Linux: nload!

E' un programma per terminale, quindi utile soprattutto in ambito server o per controllo da remoto tramite SSH.

Per installarlo su Debian e derivate:

# aptitude install nload

Per Fedora:

# yum install nload

Una volta installato possiamo avviarlo digitando direttamente nload nel terminale.

Nethogs è un programma per Linux da lanciare da terminale che controlla la rete su un'interfaccia specificata.

E' molto semplice da usare e anche molto comodo in quanto da solo poche e utili informazioni.

Nello specifico dice quali programmi stanno usando la rete.

Per installarlo su Debian basta un:

# aptitude install nethogs

Poi per lanciarlo:

# nethogs eth1

dove eth1 è l'interfaccia con la quale vi connettete alla rete; nel mio caso è la scheda WiFi che è la eth1 sulla mia Debian.

Netstat è un comando disponbile sia su Windows che su Unix (e quindi su Linux, Mac OS X, BSD, ecc....).

Il comando permette di vedere lo stato delle connessioni del computer locale.

Il comando è eseguibile anche da utente normale, ma se potete è meglio eseguirlo da root in quanto da utente normale da errori sui processi che non gli appartengono.

Le prove le ho fatte su Linux, ma dovrebbero valere anche su Windows.

Vediamo alcuni esempi.

Listare tutte le porte:

# netstat -a | less

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:ssh                   *:*                     LISTEN
tcp        0      0 localhost.localdoma:ipp *:*                     LISTEN
tcp        0      0 *:mysql                 *:*                     LISTEN
tcp        0      0 *:rfb                   *:*                     LISTEN
tcp        0      0 192.168.1.130:ssh       62.94.208.157:38011     ESTABLISHED
tcp        0      0 localhost.localdoma:ipp *:*                     LISTEN
tcp        0      0 *:5800                  *:*                     LISTEN
tcp        0      0 *:rfb                   *:*                     LISTEN
tcp        0      0 *:www-http              *:*                     LISTEN
udp        0      0 *:ipp                   *:*
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     6588   /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     6555   /var/run/cups/cups.sock
unix  2      [ ACC ]     STREAM     LISTENING     6772   /tmp/ssh-JznlyRfE1208/agent.1208
unix  2      [ ACC ]     STREAM     LISTENING     6787   /tmp/.ICE-unix/1219
unix  2      [ ACC ]     STREAM     LISTENING     7106   /tmp/orbit-casa/linc-589-0-2d27571c78035
unix  2      [ ACC ]     STREAM     LISTENING     6262   /var/run/syslog-ng.ctl
unix  2      [ ACC ]     STREAM     LISTENING     91352  /var/run/httpd/cgisock.1039
unix  2      [ ACC ]     STREAM     LISTENING     6587   @/tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     7115   /tmp/orbit-casa/linc-54c-0-286f67bfa7764
unix  8      [ ]         DGRAM                    6260   /dev/log
unix  2      [ ACC ]     SEQPACKET  LISTENING     5178   @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     LISTENING     6786   @/tmp/.ICE-unix/1219
unix  2      [ ACC ]     STREAM     LISTENING     6648   @/tmp/dbus-hkcgAq60WC
unix  2      [ ACC ]     STREAM     LISTENING     6247   /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     7959   @/tmp/dbus-SKLywgy1Al
unix  2      [ ACC ]     STREAM     LISTENING     7868   /var/run/mysqld/mysqld.sock
unix  2      [ ]         DGRAM                    140683
unix  3      [ ]         STREAM     CONNECTED     139977
unix  3      [ ]         STREAM     CONNECTED     139976
unix  3      [ ]         STREAM     CONNECTED     139938 /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     140513
unix  3      [ ]         STREAM     CONNECTED     120365 @/dbus-vfs-daemon/socket-e0CHnaSH
unix  3      [ ]         STREAM     CONNECTED     119700
unix  3      [ ]         STREAM     CONNECTED     120366 @/dbus-vfs-daemon/socket-FfJaXrqO
unix  3      [ ]         STREAM     CONNECTED     119699
unix  3      [ ]         STREAM     CONNECTED     120359 @/dbus-vfs-daemon/socket-F35KezQT
unix  3      [ ]         STREAM     CONNECTED     119698
unix  3      [ ]         STREAM     CONNECTED     120360 @/dbus-vfs-daemon/socket-EQjCPyDf
unix  3      [ ]         STREAM     CONNECTED     119697
unix  3      [ ]         STREAM     CONNECTED     119693 @/dbus-vfs-daemon/socket-8CM7p1LP
unix  3      [ ]         STREAM     CONNECTED     119692

.................

Ho usato il comando less per scorrere tutti i risultati che non sono pochi.

Questo comando lista tutte le porte, sia in ascolto che non.

Cin & Abel è, a mio avviso, uno dei migliori sniffer in circolazione.

Lo trovate qua.

E' gratuitio e richiede solo le librerie WinPcap (che coumunque potete installare direttamente insieme al programma).

L'unico "difetto" è che è disponibile solo per Windows.

Vediamo come usarlo per sniffare il traffico di rete.

Una volta installato avviatelo.

Come vedete la prima linea è composta del classico menu; poi trovate una serie di icone con varie funzioni; infine una serie di tab.

Wireshark è considerato il miglior sniffer in circolazione, anche se non è molto semplice da usare.

Inoltre è dotato di un'ottima gui in Gtk.

Però, come ho fatto più volte notare, non sempre le gui sono migliori del terminale.

Può sembra anacronistico e strano, ma oggi vediamo come usare Wireshark da terminale con Tshark.

La forma più semplice è questa:

# tshark -i eth0

Con l'opzione -i specifichiamo l'interfaccia da usare.

Ho fatto una spece di riassunto di varie info trovate in giro e vorrei riportarvele.

Il footprinting è l'attività che consente di creare un profilo sulla sicurezza di un bersaglio.

Attraverso vari strumenti e metodi è possibile arrivare a conoscere moltissime info su un determinato bersaglio (organizzazioni, privati, ecc).

E' la prima attività svolta dagli hacker quando voglio attaccare qualcuno (per qualsiasi scopo lo vogliano fare), ed è fondamentale in quanto permette di raccogliere molte info.

Gli elementi che vengono monitorati sono:

Internet Nomi di dominio
  Blocchi di reti/sottoreti
  Servizi
  IP raggiungibili
  Architettura di sistema
  ecc
Intranet Protocolli di rete
  Nomi host DNS
  ecc
Extranet Meccanismo di controllo di accesso
  Tipi di connessione
  ecc
Accesso remoto Numeri di telefonp
  VPN
  Tipo di sistema remoto
  ecc

I vari passi che vengono effettuati sono abbastanza personali, ma facendo un riassunto ne ho individuati 6.

PASSO 1: definire l'ambito di attività

Si tratta di determinare su cosa raccogliere informazioni:

  • tutta l'organizzazione o solo una parte?
  • anche i partner e le extranet?
  • consideraare anche le relazioni più "lontane"?

PASSO 2: autorizzazioni

Supponendo che stiate facendo tutto in buona fede e per testare la sicurezza della vostra organizzazione. dovete ottenere i permessi per svolgere la vostra attività.

In sostanza si tratta dei livelli 8 e 9 del modello OSI a 7 livelli: politica e finanziamenti.

PASSO 3: informazioni pubbliche

Molti di voi magari non ci pensano, ma ci sono tantissime informazioni pubblilche se sapete dove cercare:

  • pagine web
    • commenti codice sorgente pagine (HTML e CSS)
    • url per vpn, microsoft exchange
    • openconnect/java
  • organizzazioni correlate, ad esempio quando ci si rifà all'outsourcing per determinate attività, in quanto è facile che i partner non stiano attenti alla sicurezza degli altri
    • commenti codice sorgente pagine (HTML e CSS)
  • dettagli sulla sede, attraverso servizi come Google Maps o Google Earth
  • dettagli sui dipendenti, come numeri di telefono, indirizzi e email
    • paginebianche.it
  • eventi come fusioni, acquisizioni, liquidazioni, licenziamenti, che spesso, per velocizzare le operazioni, portano a trascurare la sicurezza
  • politiche di sicurezza che indicano che ci sono meccanismi di sicurezza attivi
  • informazioni archiviate non disponibili presso la fonte originale
    • webarchive.org
  • dipendenti scontenti
  • motori di ricerca e Usenet, attraverso i quali è possibile reperire molte informazioni usando le chiavi di ricerca adeguate; se andiamo qua possiamo ottenere molte di queste chiavi;
    • ad esempio cercando in Google "allinurl:tsweb/default.htm" possiamo ottenere i server Microsoft con la connessione wed desktop attiva

PASSO 4: enumerazione WHOIS