Escaneig / Fingerprinting

Escaneig / Fingerprinting #

Que és #

  • Fase posterior/inclosa al reconeixement. Partim de tenir (possiblement)
    • IP's o rang d'IP (públiques o privades)
    • Identificar la funció d'alguns equips individuals
  • L'atacant prova la infraestructura de xarxa de l'empresa a través de la generació de tràfic

Objectiu #

  • Esbrinar ports oberts
  • A partir dels ports. En cadena o cicle:
    • Esbrinar serveis i la versió del servei i del sisteama
    • Enumeració (serveis, usuaris, grups, processos)
    • Vulnerabilitats

No siguis un intrús! #

  • És possible que en aquesta fase, al ser un procés agressiu, siguis descobert per els dispositius de xarxa (firewalls, IPS, IDS) o el personal de sistemes. Aquestes eines es poden utilitzar més sutilment que amb pura força bruta

Tècniques #

Scanejar blocs IP #

  • trobar ip, ports

Scanejar vulnerabilitats #

  • Comporvar versions i configuracions

Metodología al fer scan al fer pentesting #

  1. Host Discovery
  2. Port scanning
  3. Banner grabbing / OS fingerprinting
  4. Vulnerability scan
  5. Dibuixar el mapa de la xarxa

A tenir en compte #

  • Anonimitzar
  • Firewalls
  • ELS firewalls / IDS no poden tancar-ho tot, poden assumir falsos positius fins a cert punt ja que no han evitar el funcionament normal de l'aplicació.

Tècniques d'escaneig #

Escombrat ping #

  • Fer ping (echo request) a un rang de la xarxa per descobrir hosts
  • És molt possible que els dispositius de xarxa (firewalls i router) bloquegin el ping
    • Mesura de protecció contra escaneig i contra atacs DOS
  • Fàcil de detectar per IPS/IDS i és possible que bloquegin la IP d'origen

TCP ping #

  • Considerar si un dispositiu/servei està disponible consultant l'estat dels seus ports

Estats d'un port #

  • Obert: disponible /escoltant

  • Tancat: accessible però no respon a sol·licituds de connexió

  • Filtrat: Hi ha algún dispositiu que filtra

  • No filtrat: Accessible però es pot determinar si està obert o tancat

  • Indeterminats: obert|filtrat i tancat|filtrat

Recordatori TCP / UDP #

TCP Segment Format with Diagram - Electronics Post

Tema 5 El Nivel de Transporte en Internet (versión ) - ppt descargar

  • Una connexió TCP a més afegeix la connexió persistent, control d’errors i reenviament.

Inici i tancament de la connexió #

3 way handshake / Inici de la connexió #

  • Marca l'inici d'una connexió

  • El número de seqüència no va d'un en un sino que s'incrementa segons la mida de les dades


sequenceDiagram

    Ana-->>Bernat: SEQ=X SYN DPORT=Y SPORT=Z
    Note right of Ana: Enviar flag SYN
    Bernat-->>Ana: SEQ=V ACK=X+1 SYN ACK DPORT=Z SPORT=Y
    Note left of Bernat: Resposta amb flag SYN i ACK.     
    Ana-->>Bernat: SEQ=X+1 ACK=V+1 ACK DPORT=Y SPORT=Z
    Note right of Ana: Resposta amb flag ACK

Protocol d'enviament #

  • Un cop establerta la connexió, s’envien i reben les dades en ambdós sentits amb control d’erros i reenviament si cal.

  • Els ACK indiquen fins quin byte s’ha rebut bé.

Fi de la connexió #

  • El final de connexió s’estableix quan un host ho sol·licita, rep confirmació i l’altre acte seguit fa el mateix i el primer host ho confirma.

sequenceDiagram

    Ana-->>Bernat: SEQ=X ACK FIN
    Note right of Ana: Enviar flag ACK FIN per sol·licitar fi de connexió
    Bernat-->>Ana: ACK=X+1 ACK
    Note left of Bernat: Resposta amb flag ACK confirmant rebuda de tancament
    Bernat-->>Ana: SEQ=Y ACK FIN
    Note left of Bernat: Enviar flag ACK FIN per sol·licitar fi de connexió
    Ana-->>Bernat: ACK=Y+1 ACK
    Note right of Ana: Resposta amb flag ACK confirmant rebuda de tancament

Tipus d'escaneig TCP #

SYN / Half open scan #

  • És l'scanneig per defecte.

  • Molt ràpid.

  • No completa la connexió (half-open scanning).

  • Permet diferenciar fàcilment entre els estats dels ports (open, closed, i filtered)

  • Scanner envia la petició d'inici de connexió (3 way handshake: SYN) i espera el SYN+ACK

  • Retorn del port:

    • SYN/ACK port obert
    • RST port tancat
    • Sense resposta (timeout) port filtrat
    • ICMP unreachable (tipus 3, code 0, 1, 2, 3, 9, 10, or 13)
    • SYN port obert (cas estrany "simultaneous open or split handshake connection")

sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: SYN + port
    Victima-->>Atacant: SYN + ACK
    Atacant-->>Victima: RST

Full connect scan #

  • A diferència de l'anterior completa la connexió i després envia un RST (Matar la connexió)
  • Més lent però al completar la connexió permet obtenir més informació (per exemple llegir el banner)
  • Augmenta la possiblitat de ser detectat
  • Disminueixen els falsos positius
  • Opció alternativa a TCP SYN scan si l'usuari no te suficients privilegis per crear paquets "raw".
  • La connexió sol ser registrada al log i els IDS ho detecten normalment. Això pot donar l'alarma.

sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: SYN + port
    Victima-->>Atacant: SYN + ACK
    Atacant-->>Victima: ACK
    Atacant-->>Victima: RST

ACK scan #

  • Objectiu: detectar si hi ha un filtre (firewall per exemple)

sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: ACK + port
    Victima-->>Atacant: RST
    Note right of Atacant: No Filtrat
    Atacant-->>Victima: ACK
    Victima-->>Atacant: No resposta
    Note right of Atacant: Filtrat

Null-scan, Fin-scan, xmas-scan #

  • Manipular les flags TCP per determinar si el port està obert o no

  • NULL SCAN


sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: Sense flags
    Victima-->>Atacant: RST i ACK
    Note right of Atacant: Port tancat
    Atacant-->>Victima: Sense flags
    Victima-->>Atacant: No resposta
    Note right of Atacant: Port obert
  • FIN SCAN

sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: FIN
    Victima-->>Atacant: RST i ACK
    Note right of Atacant: Port tancat
    Atacant-->>Victima: FIN
    Victima-->>Atacant: No resposta
    Note right of Atacant: Port obert
  • XMAS SCAN

sequenceDiagram
    participant Atacant
    participant Victima

    Atacant-->>Victima: FIN, URG i PUSH
    Victima-->>Atacant: RST i ACK
    Note right of Atacant: Port Obert
    Atacant-->>Victima: FIN, URG i PUSH
    Victima-->>Atacant: RST
    Note right of Atacant: Port obert

UDP scan #

  • Fa un scan de ports UDP (per exemple per protocols DNS, SNMP, i DHCP)
  • Es pot combinar amb un scan TCP simultani, com ara -sS.
  • Retorn
    • ICMP port unreachable (tipus 3, codi 3), port tancat.
    • Altres errors port unreachable (codis 0, 1, 2, 9, 10 o 13), port filtrat.
    • Paquet UDP (ocasionalment), port obert.
    • Sense resposta despreś de retransmissions, port obert/filtrat, sense poder especificar estat.
    • Es pot determinar detectant la versió (-sV) i veure si està filtrat o obert.
  • És difícil fer un escanneig UDP ràpid ja que la resposta amb paquet UDP és rara dels ports oberts. Llavors cal fer reintents-
  • El cas de respostes ICMP port unreachable és encara pitjor per que molts sistemes limiten la ratio de missatges d'aquest tipus (Linux kernel 2.4.20 per exemple net/ipv4/icmp.c)

sequenceDiagram
    Atacant-->>Victima: paquet UDP + port
    Victima-->>Atacant: Resposta
    Note right of Atacant: Port Obert
    Atacant-->>Victima: paquet UDP + port
    Victima-->>Atacant: Refusar amb un paquet ICMP
    Note right of Atacant: Port tancat

-sY (SCTP INIT scan) #

  • SCTP (Stream Control Transmission Protocol) és un protocol alternatiu a TCP i UDP que afegeix multi-homing i multi-streaming.

  • Aquest escanneig és l'equivalent a "TCP SYN"

  • És ràpid i relativament silenciós, ja que no completa la connexió.

  • INIT -->

    • <-- INIT-ACK indica port obert.
    • <-- ABORT indica port tancat.
    • sense resposta després de reintents indica port filtrat.
    • <-- ICMP unreachable (tipus 3, codi 0,1,2,3,9,10 o 13), es marca també com a filtrat.
    
    sequenceDiagram
        Atacant-->>Victima: INIT
        Victima-->>Atacant: INIT-ACK
        Note right of Atacant: Port Obert
        Atacant-->>Victima: INIT
        Victima-->>Atacant: ABORT
        Note right of Atacant: Port tancat
        Atacant-->>Victima: INIT
        Victima-->>Atacant: ABORT
        Note right of Atacant: Port filtrat