IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Packet Sniffers

thumbs

També coneguts com a Analitzadors de Xarxa o Analitzadors de protocols. És un software que permet enregistrar, visualitzar, ..., el trànsit que circula per un segment de xarxa. Hi ha 2 tipus de xarxa:

  • Ethernet (cable)
  • Wireless (sense fils)

Per tant, hi ha 2 tipus d'analitzadors (1 per a cada xarxa).

Serveix per:

  • Monitoritzar l'ús de la xarxa i/o realitzar estadístiques.
  • Analitzar problemes de xarxa.
  • Detectar intrusions a la xarxa.
  • Espiar la xarxa i obtenir informació sensible (contrasenyes, documents secrets, ...).
  • Enginyeria inversa de protocols (desmuntar un protocol per saber com funciona).
  • Depurar aplicacions client/servidor o implementacions de protocols.
  • Depurar problemes de connectivitat.

Exemples:

  • tcpdump
  • Ethereal / WireShark
  • ...

Connexions

thumbs

Un switch té una tipologia física i lògica, i les 2 són estrella.

Mode promiscu

La targeta es relaciona amb més parelles de les que li corresponen. Això vol dir que un node (ordinador), connectat a una xarxa compartida, captura tot el tràfic que circula pel node, amb independència de si el tràfic és per al node o no.

Per fer una targeta promiscua:

$ sudo ifconfig eth0 promisc

i comprovem amb la comanda:

$ sudo ifconfig eth0

SeguretatJaumeS 6.png

Amb la comanda ip permet configurar rutes, enllaços, ...:

$ sudo ip link show

SeguretatJaumeS 7.png

Ethernet

thumbs

Standard 802.X (on x és un número): són els estàndards relacionats amb xarxes.

  • 802.3: Ethernet (IEEE 802.3 - com té que ser el cable, les MAC, ..)
  • 802.4: Token Ring
  • 802.11: Wi-Fi
  • 802.15: Bluetooth
Nivel d'enllaç
  • MAC: Protocol que especifica de quina forma s'accedira al canal. En protocols punt a punt no s'utilitza.
  • LLC: S'encarrega de la lògica de reenviaments, control de flux i comprovació d'errors.

Segment de xarxa

És una porció de xarxa separada de la resta per un dispositiu de xarxa. Per exemple:

  • repetidor.
  • bridge o switch.
  • router.

Domini de col·lisió

És un segment lògic de xarxa on els paquets poden col·lisionar al ser enviats a un medi compartit. Tot aquest cable és compartit, i si no es reparteix el temps, xoca (col·lisiona).


Algorismes MAC

  • Aloha i Aloha Ranurat: s'envia un paquet i si hi ha col·lisió es torna a enviar.
  • CSMA/CD (Carrier sense multiple access with collision detection): detecta si hi ha senyal. Si no hi ha senyal, envio. Si xoca, un dels 2 para i després torna a enviar.


Trama Ethernet

Porta:

  • Origen: adreça MAC origen de la trama.
  • Destí: adreça MAC destinació de la trama.
  • Tipus: tipus d'Ethernet.
  • Dades
  • CRC Checksum: codi de comprovació d'errors.
SeguretatJaumeS 14.png

Hubs i Switchs

Les LANs connectades a switchs o HUBS tenen una topologia física d'estrella. Topologia lògica:

  • HUB (Concentrador): mateix segment de xarxa (bus compartit). Treballa a nivell físic (mecànic). Dispositiu tonto
  • Switch (Commutador): s'utilitza una base de dades per recordar les MACs (IPs) de cada port i es connecta de forma directa als ports d'origen i destinació d'una comunicació. Treballa a nivell d'enllaç (taula de MACS). Dispositiu intel·ligent.
  • LAN Commutada. Cada PC té el seu propi segment de xarxa no compartit.
  • Els commutadors són més segurs.

Network Taps

thumbs

Un tap és punxar la línia. Són dispositius de maquinari que permeten accedir a les dades que circulen per un cable de xarxa. Útils per depurar errors.

tcpdump

Eina de línia de comandes que permet visualitzar el tràfic de xarxa (Packet Sniffer). Té una llibreria (libcap). Cal ser superusuari (root) per utilitzar tcpdump (sudo). Activa automàticament el mode promiscu. Té versió per a Windows (WinDump).

  • Filtres: podem aplicar filtres segons l'origen o destinació del paquet, segons els protocol, per màquines, per xarxes, per ports...
$ sudo tcpdump tcp and \(port 22 or port 23\)
$ sudo tcpdump -i lo
$ sudo tcpdump icmp

Instal·lació

Amb la comanda:

$ sudo apt-get install tcpdump

Utilització

Comanda:

$ sudo tcpdump -i eth0

i surt el que reb la nostra pròpia targeta.

SeguretatJaumeS 8.png

Amb la comanda:

$ sudo tcpdump -ni eth0 icmp

puc veure la targeta a qui li faci, per exemple, un ping.

i és la targeta (interface) que volem veure, i n és per veure la IP.

SeguretatJaumeS 9.png
  • la primera columna és una marca de temps. Registre d'hora, minuts, ...
  • la segona és la IP (IP origen i IP destí)
  • la tercera, descripció del paquest (ICMP)
  • la quarta és un identificador de tipus de paquet
  • la cinquena és una seqüència
  • la sisena és la longitud
$ sudo tcpdump -ni lo icmp

SeguretatJaumeS 10.png

Amb lo només sortirà si el ping m'ho faig a mi mateix.

Utilitats

  • Per depurar aplicacions que utilitzen la xarxa per comunicar-se. Per exemple es pot utilitzar per comprovar el funcionament d'un tallafocs.
  • Per depurar la xarxa mateixa.
  • Per comprovar quan la NIC està transmetent o reben dades.
  • Per capturar i llegir dades enviades per altres usuaris o ordinadors. Un usuari que té el control d'un encaminador pel qual circula tràfic pot obtenir la informació que no viatgi xifrada.

telnetd

Instal·lació

$ sudo apt-get install telnetd

WireShark

thumbs

També anomenat Ethereal. És un analitzador de protocols utilitzat per analitzar i solucionar problemes de xarxes de comunicacions. És similar a tcpdump però amb una interfície gràfica i moltes opcions extres d'organització i filtratge de la informació. Com tcpdump és un codi obert està disponible per gairebé totes les plataformes (UNIX/LINUX, MAC OS i Windows).

Instal·lació

$ sudo apt-get install wireshark

Per accedir (com administradors):

$ gksu wireshark

IMPORTANT: S'ha d'entrar a wireshark com a superusuari per a que un usuari no pugui espiar a un altre usuari

Pràctica

Una vegada s'inicia, per exemple, la navegació per Internet, queda enregistrat el temps, IP d'inici i de destí i el protocol emprat (primera línia encerclada de color vermell). És un paquet HTML, i el més important, té la paraula GET. Al seleccionar aquesta línia, a la part de baix, es pot observar la informació que conté, i la contrasenya (últim cercle vermell). Ens està dient que hem accedit a la URL:

acacha.org/~sergi/privat

i al final surt reflectida la contrasenya utilitzada.

SeguretatJaumeS 11.png

Per arribar fins aquí, tenim que fer els següents passos: 1.- Entrem a l'entorn gràfic de Wireshark, i en el menú principal, anem a Capture/Interfaces...

SeguretatJaumeS 32.png

2.- A continuació, activem l'opció Start. Seguidament, anem al navegador d'Internet i entrem la URL:

acacha.org/~sergi/privat

3.- Introduïm un nom qualsevol d'usuari i també una contrasenya qualsevol. Fem clic en Acceptar i tornem al wireshark per veure que detecta.

Obtindrem una imatge com l'anteriorment mostrada, on es pot veure el protocol HTTP, un GET, i sota estaria tota la informació que ens interessa (nom i contrasenya).

NOTA: Per optimitzar la recerca de paquets, sempre podem utilitzar l'opció de Filter (filtre) que es troba a la part superior esquerra. D'aquesta manera, reduïm la informació que ens surt en pantalla, mostrant només aquells paquets que volem veure.

SeguretatJaumeS 33.png

Protocol ARP

ARP és un protocol entre el nivell de xarxa i el nivell d'enllaç (MAC). Aquest protocol s'encarrega, de manera automàtica, de resoldre i mantenir la taula d'equivalències entre les adreces MAC i les adreces IP dels nodes o màquines que es comuniquen. ARP forma part d'Ethernet. No té cap mena de seguretat perquè és molt simple. Hi ha 2 tipus de paquets: request i reply.

SeguretatJaumeS 18.png

Quan una estació o dispositiu necessita enviar un paquet a una estació de la mateixa xarxa local, l'estació dedueix, a partir de l'adreça IP de destinació, que es troba a la mateixa xarxa i, en conseqüència, no cal enviar el paquet a cap redireccionador (enrutador). Però per poder enviar-li les trames ethernet on aniran els paquets necessita conèixer l'adreça MAC del destinatari. Per esbrinar-la emet un paquet dintre d'una trama ethernet amb l'adreça broadcast com a destinació i amb l'adreça IP com a contingut. L'estació que reconeix la seva adreça respon amb la seva adreça MAC. Envia trames, que tenen 2 parts: capçalera i dades.

  • Capçalera: es fica per si hi ha problemes. Conté MAC origen, MAC destinació, CRC, tipus i inici de trama (preàmbul. Hi ha preàmbul perquè s'envia de manera asíncrona).
  • MAC origen: direcció única. Identificador.
  • MAC destí: on anirà.
  • CRC: comprovació d'errors.

Enllaça 2 dispositius que està al mateix nivell.

En aquest nivell no s'utilitza la IP; s'identifiquen pel nom.

SeguretatJaumeS 31.png

El protocol ARP, a partir d'una IP, obté una MAC. Per exemple, ping 192.168.202.201

SeguretatJaumeS 19.png
  • ttl = time to live - temps de vida.
  • time = temps de resposta. Ja aconsegueix la MAC i ho guarda en memòria cache.

El pas següent seria fer:

$ arp -n
SeguretatJaumeS 20.png

i ja surt la MAC

Si fem:

$ ipcalc 192.168.202.56/24
SeguretatJaumeS 21.png

obtenim el Broadcast, que sempre serà l'última màquina.

La carpeta /proc/sys és una carpeta que es crea dinàmicament. Informació que el nucli crea per saber com està configurat el sistema en aquell moment.

SeguretatJaumeS 22.png

Per veure totes les MAC:

$ nmap 192.168.202.1-255
SeguretatJaumeS 23.png

i després utilitzem la comanda:

$ arp -n

i podem veure totes les MAC SeguretatJaumeS 24.png

  • incomplete: s'intenta connectar però no hi ha màquina.
  • Eliminació de la taula ARP:
$ sudo arp -d número IP

Per esborrar la cache en Windows, la comanda és:

C:\netsh interface ip delete arpcache

Funcionament del protocol ARP

Quan una estació o dispositiu necessita enviar un paquet a una estació de la mateixa xarxa local, l'estació dedueix, a partir de l'adreça IP de destinació, que es troba a la mateixa xarxa i, en conseqüència, no cal enviar el paquet a cap redireccionador (enrutador). Però, per poder enviar-li les trames ethernet on aniran els paquets, necessita conèixer l'adreça MAC del destinatari. Per esbrinar-la, emet un paquet dintre d'una trama ethernet amb l'adreça broadcast com a destinació, i amb l'adreça IP com a contingut. L'estació que reconeix la seva adreça respon amb la seva adreça MAC.

SeguretatJaumeS 31.png

Primer la màquina mira la cache. Si té la MAC en cache, ja està. Si no, utilitza el protocol ARP.


SeguretatJaumeS 25.png


SeguretatJaumeS 26.png

SeguretatJaumeS 27 1.png

comprovació de MAC SeguretatJaumeS 28 1.png


Opcions avançades
$ sudo tcpdump -ennqi eth0 arp
  • e: mostra les adreces MAC (nivell 2) en comptes de les IP.
  • n: númeric.
  • q: sortida reduïda.
  • i: escollir la interfície de xarxa.

ARP Spoofing

És un atac empleat en xarxes Ethernet que permet a un atacant interceptar trames d'una xarxa LAN. L'atacant pot fer 3 tipus d'atacs:

  • Atac passiu: Les trames interceptades no són modificades i s'envien als corresponents receptors.
  • Atac actiu: Pot modificar les trames injectant dades (modificació).
  • Aturar el tràfic: Atac de denegació de servei. Intercepto i deixa de rebre paquets.

Aquest atac només funciona en màquines que estiguin a la mateixa xarxa Ethernet. Hi ha 1 atacant i 2 víctimes (emissor i receptor). S'envien fake frames (falsos ARP). S'ataca a una persona de la xarxa i el gateway. Cada vegada que vingui un paquet, farà un request, i l'atacant a de fer-se passar per l'altra persona. SeguretatJaumeS 29.png

Ettercap

thumbs

És la descripció d'un Ettercap, un monstre del joc de rol Advanced Dungeons & Dragons. Es va escollir per la seva similitud amb la paraula "ethercap" (ethernet capture) i perquè el monstre té un poderós verí (ARP Poisoning). Suporta diferents protocols (inclòs protocols xifrats com SSH1 o HTTPS/SSL) de forma activa i passiva. Permet injectar dades (p. ex. una comanda) en una connexió establerta i filtrar en temps real en mode MiTM (Man in The Middle Attack).

  • Bridged: més fàcil de detectar. Necessites 2 targetes de xarxa. Fa un pont i és més fàcil de detectar, però difícil de detectar-ho
  • Unified: quan arranca, no es fica per DHCP.

IMPORTANT: S'ha d'escollir a qui volem esnifar, perquè sinó, ho mira a tothom.

Back-Track

Pràctica

Primer tenim que arrencar el PC desde el CD, i escollim l'opció Safe Mode.

EntradaBTJaumeSergiCarles.png

Un cop selecionat el mode ens apareixera una terminal i hem de posar la se següent comanda

$ startx per arrencar el mode gràfic.
Carles risa startx.png

Una vegada fet això, instal·lem Ettercap:

$ sudo apt-get install ettercap

I per executar-lo fem:

$ ettercap -G
EntradaBTJaumeSergiCarles1.jpg

Una vegada dins, tenim que fer: Sniff - Unifed sniffing. Es tria la targeta i Ok

EntradaBTJaumeSergiCarles2.jpg
EntradaJaumeSergiCarles3.jpg

Després Hosts - Scan for hosts - escannejarà totes les màquines.

EntradaJaumeSergiCarles4.jpg

Hosts - Hosts list - i ens mostrarà totes les IP, MAC i descripcions de les màquines que podem espiar.

HostlistJaumeSergiCarles.png

Per seleccionar les víctimes, primer seleccionem una màquina i cliquem Add to Target 1, i fem el mateix procediment per seleccionar una altra màquina.

Seleccionar victimesJaumeSergiCarles.png
Practica2 seleccio victimesJaumeSergiCarles.png


Després fem Mitm - Arp poisoning i Sniff remote connections - i ja ens surten els passwords.

Arp poisoning.png
Arp poisoning pass.png

També podem veure el detalls de la conecció boto dret i connection details.

Carlesrisajaumesergi detail.png


Si ho fem a través de SSH:

Connection ssh.png

Si volem que un atacat, quan entri en una pàgina web amb seguretat https, ens deixi la seva contrasenya, modifiquem 2 línies de l'arxiu etter.conf, i així fem que li surti una pàgina de certificat falsa.

EttercapconffitxerJSC 1.png

En un atac, l'atacant respon a tothom canviant la MAC

Atacatothom.png

En la següent imatge es pot veure com són les MAC quan s'està atacant (dalt), i les MAC reals de cada ordinador (baix).

Atacatothom1.png


Defenses

La defensa més clara és no utilitzar el protocol ARP (utilitzar taules estàtiques): tota la taula ARP fer-la estàtica.

Arping

Per instal·lar:

$ sudo apt-get install iputils-arping

Provoquem arp-replys i arp-requests

Per enviar els paquets ARP-REPLY:

$ sudo arping -q -c 3 -A -I wlan0 192.168.99.35
  • -q: sortida silenciosa.
  • -c: número de peticions enviades.
  • -A (o -U): arping envia peticions arp-request per defecte. Amb aquesta opció envia peticions ARP-REPLY.
  • -I device: Permet indicar la interfície de xarxa.
  • -e: es veu la MAC del broadcast.

Exemple

SeguretatJaumeS 34.png

Creació d'un script per assignar automàticament 254 IP's

#!/bin/bash
$b=1
for (( b=1; b<=254; b++ )); 
 do 
   ifconfig eth0:1 192.168.202.$b netmask 255.255.255.0; 
 done


Port security

Taules estàtiques. S'assigna una MAC durant una durada de temps determinada.

WLAN

Partir el switch en 2 parts.

DHCP Snooping

Amb DHCP, el dispositiu de xarxa manté una llista de les adreces MAC connectades a cada port (switchs gestionats o d'alta gama).

Arpwatch

Programa que permet detectar quan hi ha arp-reply falsos i envia una notificació per correu electrònic.

Dins del directori /etc, està el fitxer arpwatch.conf. Tenim que descomentar la línia de la nostra targeta gràfica. SeguretatJaumeS 36.png

I després podem executar:

$ ps aux | grep arp

SeguretatJaumeS 35.png I podem veure com funciona.

RARP

ARP invers. Tenim una MAC i busquem la IP.

Port security

Fer una taula estàtica.


Taula estàtica

SeguretatJaumeS 37.png

En aquesta imatge podem veure que en Flag es veu una C (que en aquest cas és incorrecte) i una M. Aquesta M indica que és estàtica.

Per obtenir la IP del gateway:

$ route -n | awk '/^0.0.0.0/ {print $2}'

Mitm (Man in the middle attacks)

És un atac que permet a un atacant llegir, modificar o inserir missatges a la comunicació entre dues entitats sense que aquestes en siguin conscients.

Hi ha múltiples formes d'aconseguir un Mitm:

  • L'atacant pot observar i/o modificar les dades de la comunicació.
  • eavesdropping: observar el tràfic (captura de contrasenyes).
  • substitution attack: l'atacant pot sostreure la identitat.
  • denial-of-service (DOS) attack: impedir les comunicacions. Els més complicats d'evitar.
  • phishing attacks: obligar a l'atacant a aportar dades personals (comptes bancaris, números secrets).
  • Especialment útil en sistemes de clau pública.

SSH

Secure Shell o SSH és un conjunt d'estàndards i un protocol de xarxa que permet establir un canal segur entre una màquina local i una màquina remota. Substitut del Telnet. És un protocol.

  • Característiques:
  • Protocol del nivell d'aplicació.
  • Dos versions del protocol: SSH 1 i SSH 2. SSH 1 es considera obsoleta perquè utilitza mecanismes que actualment ja no són prou segurs.
  • La versió 2 proveeix de mecanismes addicionals de seguretat (xifratge AES, 3DES, Blowfish, CAST128 or Arcfour, etc.)
  • Els suport per a la versió 2 amb programari lliure està disponible des de 1999 quan OpenBSD va crear OpenSSH per competir amb Secure Shell.
  • Referències
  • OpenBSD
  • OpenSSH
  • Utilitats
  • Per administrar màquines remotes de forma segura, a través d'una terminal o consola.
  • Com a base per altres protocols segurs:
  • SFTP: Alternativa segura de FTP.
  • SCP: Alternativa segura a la còpia de fitxers remots amb rcp.
  • RSYNC: Eina de còpies de seguretat remotes i gestió de mirrors.
  • Per crear túnels segurs per connexions TCP/IP. Alternativa a VPN.
  • Execució de comandes remotes (suport SSH exec).
  • Navegar per Internet de forma segura amb SOCKS o proxies.

Té una base de dades on identifica les màquines que s'han connectat.

SeguretatJaumeS 38.png


SeguretatJaumeS 39.png SeguretatJaumeS 40.png SeguretatJaumeS 41.png


OpenSSH

OpenSSH (Open Secure Shell) és un conjunt d'aplicacions de programari lliure que proveïxen de suport per sessions de comunicacions encriptades basades en el protocol SSH. Alternativa lliure del programari propietari Secure Shell.

  • Programes openssh
  • ssh: reemplaçament dels protocols anàlegs no segurs rlogin i telnet.
  • scp: reemplaçament de la comanda anàloga no segura rcp.
  • sftp: reemplaçament segur del protocol ftp.
  • sshd: servidor/dimoni SSH.
  • ssh-keygen: una eina per generar parells de clau públiques/privades de tipus RSA o DSA. Utilitzades per l'autenticació d'usuaris i de hosts.
  • ssh-keyscan: escaneja un servidor SSH per tal d'obtenir la seva clau.
  • ssh-agent: petit dimoni que permet gestionar les còpies de claus públiques i utilitzar-les per tal d'evitar l'ús de contrasenyes en els reptes d'autenticació.
  • ssh-add: comanda que afegeix claus al gestor de claus ssh-agent.
  • slogin: login segur.

Per saber els paquets que tenim instal·lats:

$ dpkg -L open-ssh-client | grep bin

SeguretatJaumeS 42.png

Per instal·lar-ho:

$ sudo tasksel install openssh-server

Durant la instal·lació es genera una clau. Serveix per identificar el servidor i evitar els atacs man-in-the-middle.

SSH mode gràfic

Per exemple, utilitzant el Nautilus.

SeguretatJaumeS 43.png

També podem utilitzar l'opció de connectar-nos a un servidor que surt al menú de l'Ubuntu (Llocs-Connecta't a un servidor).

SeguretatJaumeS 44.png

Per autenticar-se en ssh hi han 5 mètodes:

  • Clau d'accés
  • Claus públiques
  • Basat en la màquina de connexió (hostbased)
  • Keyboard-interactive
  • Kerberos/GSSAPI

Tots aquests mètodes d'autenticació estan explicats al manual de ssh (man ssh).

Amb SSH2 amb els valors per defecte l'ordre en que s'intenten els diferents intents d'autenticació és: hostbased, public key, keyboard-interactive i password.

Per autenticar-nos amb una clau pública:

$ ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]
Pràctica
SeguretatJaumeS 47.png

Creem un usuari i després generem una clau

SeguretatJaumeS 45.png

Després fem:

SeguretatJaumeS 46.png

SSH tunneling

SeguretatJaumeS 48.png

Útil quan la LAN no és confiable (p.ex. Ettercap). També anomenat Port Forwarding. Cal permisos de root per redirecciona ports <1024

És connecta una altra màquina per mi, que té un servidor SSH, i aquesta màquina es connecta a l'aplicació definitiva, deixant la connexió insegura entre el servidor SSH i l'aplicació.

Per crear un tunel (per exemple):

$ ssh -L 8090:192.168.98.1:8080 santabarbara

Això connectarà el port 8090 local nostre al port 8080 de la màquina santabarbara.

SSH invers (SSH backdoor)

SeguretatJaumeS 49.png

Permet accedir via SSH a una màquina darrera d'un firewall. Si la màquina té accés cap a l'exterior aleshores es possible saltar-se el tallafocs si tenim accés a la màquina (ginger).

Exemple:

$ ssh -R 6666:192.168.20.1:3128 [email protected]

A través del port 6666 ens connectaríem a 192.168.202.108, que es connectaria al port 3128 de la IP 192.168.20.1 i podriem navegar, i tot el tràfic quedaria enregistrat a la IP 192.168.202.108. Tota aquesta connexió l'ha començat la IP 192.168.202.100, que no surt reflexada per cap lloc.

O sigui, la 202.100 es connecta a la 202.108 mitjançant el port 6666, i aquesta (202.108) es connecta a la 20.1 amb el port 3128, i a partir d'aquí ja es surt a navegar a l'exterior.

SCP

Per copiar fitxers entre màquines.

Exemple:

$ scp xiaojun.tar.gz [email protected]:~

Es copiaria el fitxer xiaojun.tar.gz des del directori local a l'ordinador que té la IP 202.108. Amb la titlla, s'està copiant a la home.

IMPORTANT: Si després de la IP no es fiquen els dos punts (":"), es crearà un fitxer nou al mateix directori on es troba l'original, que s'anomenarà igual que el fitxer original, però afegint l'arroba i la IP dins del nom del fitxer.

RSYNC

Per copiar arxius grans (de Gb). Permet fer còpies incrementals. Es fa la còpia d'un fitxer, i si al dia següent es vol copiar el mateix fitxer, i aquest s'ha modificat, copiaria les modificacions.

Es molt útil per fer còpies de seguretat.

$ rsync -e ssh -cavz --progress --stats /home [email protected]:~

Vegeu també

Enllaços externs