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 #
- Host Discovery
- Port scanning
- Banner grabbing / OS fingerprinting
- Vulnerability scan
- Dibuixar el mapa de la xarxa
A tenir en compte #
- Anonimitzar
- Firewalls
Even @rogerfederer needs his accreditation 😂#AusOpen (via @Eurosport_UK)
— #AusOpen (@AustralianOpen) January 19, 2019
pic.twitter.com/oZETUaygSE - 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 #
- 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