port scanning (nmap)

38
Port Scanning (NMAP) Les différentes techniques de scans Laurent Barsin Olivier Delcourt Amaury Duchesne Phat Piron 01/03/02

Upload: melora

Post on 28-Jan-2016

107 views

Category:

Documents


9 download

DESCRIPTION

Port Scanning (NMAP). Les différentes techniques de scans Laurent Barsin Olivier Delcourt Amaury Duchesne Phat Piron 01/03/02. Plan de la présentation. Qu’est ce qu’un Port Scan ? Les différentes familles et types de scans. OS Detection. Techniques de Port Scanning. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Port Scanning (NMAP)

Port Scanning (NMAP)

Les différentes techniques de scans

Laurent BarsinOlivier DelcourtAmaury DuchesnePhat Piron

01/03/02

Page 2: Port Scanning (NMAP)

2

Plan de la présentation

Qu’est ce qu’un Port Scan ? Les différentes familles et types de scans. OS Detection. Techniques de Port Scanning. Exemples de résultats NMAP.

Page 3: Port Scanning (NMAP)

3

Qu’est ce qu’un Port Scan ?

Utilisé pour observer l’état des ports d’un hôte/réseau (port ouvert/fermé).

Déterminer les services offerts qui écoutent un port et lister des vulnérabilités.

Analogies: publicité agressive, voleur,… Attaque de reconnaissance. Souvent suivie

d’une véritable intrusion. Un scanner : NMAP (port scan, ping sweep, OS

identification, identifications de process).

Page 4: Port Scanning (NMAP)

4

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Les différents types de scans

Page 5: Port Scanning (NMAP)

5

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 6: Port Scanning (NMAP)

6

TCP connect()

Rappel du three-way handshake de TCP. Utilisation de l’appel système connect(). Pros: rapide, fiable, pas root. Cons: facilement loggable. Détection: log - connexion rapidement fermée.

Page 7: Port Scanning (NMAP)

7

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 8: Port Scanning (NMAP)

8

TCP reverse ident scanning

Nécessite un TCP connect. Utilise le daemon identd.

Permet de révéler le nom de l’utilisateur propriétaire d’un process.

Reverse ident – le client peut identifier un serveur.

Page 9: Port Scanning (NMAP)

9

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 10: Port Scanning (NMAP)

10

TCP SYN scan L’étape trois du three-way handshake en moins. La

connexion est interrompue (half-open scan). Pros: potentiellement moins loggable qu’un connect() vu

le caractère semi-ouvert de la connexion, rapide, fiable. Cons: détectable aujourd’hui par de nombreux IDS (TCP

SYN flooding – DoS), requiert privilège root. Détection: repérer un grand nombre de SYN non suivi

de connexion.

Page 11: Port Scanning (NMAP)

11

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 12: Port Scanning (NMAP)

12

« dumb » scan

1. Trouver un hôte muet.

2. Envoi d’un paquet SYN spoofé.

3. Le témoin renvoie un paquet SYN|ACK (port ouvert) ou un RST sinon.

4. Le témoin renvoie un RST au SYN|ACK reçu, rien si il a reçu un RST.

5. On épie le témoin via l’IPID.

Page 13: Port Scanning (NMAP)

13

« dumb » scan (suite)

Pros: IP de l’attaquant invisible pour la cible - le syn spoofé ne peut être retracé. le témoin - la vérification de l’IPID par

l’attaquant n’est pas loggée par le témoin. Cons: trouver un bon hôte muet, lent. Reste un SYN scan…

Page 14: Port Scanning (NMAP)

14

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 15: Port Scanning (NMAP)

15

TCP FIN scan Principe de base : teste les ports fermés, en

déduit ceux qui sont ouverts (inverse mapping) . Envoyer un paquet avec uniquement le flag FIN

activé. Deux façons de déduire qu’un port est ouvert.

Déduction de la liste des ports scannés. Timeout.

Page 16: Port Scanning (NMAP)

16

TCP FIN scan (suite)

Pros: court-circuite le three-way handshake.

Cons: risques de false-positive responses, ne fonctionne pas sur tous les OS.

Détection: difficilement loggable car n’ouvre pas de connexion complète.

Page 17: Port Scanning (NMAP)

17

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 18: Port Scanning (NMAP)

18

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 19: Port Scanning (NMAP)

19

XMAS scan

Comportement identique au FIN scan.

Tous les flags sont activés : FIN, PSH, URG, ACK,SYN.

Alternative au FIN scan. False-positive responses.

Page 20: Port Scanning (NMAP)

20

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 21: Port Scanning (NMAP)

21

NULL scan

Méthode similaire aux scans FIN et XMAS.

Aucun flag activé. Autre alternative au FIN scan.

Page 22: Port Scanning (NMAP)

22

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 23: Port Scanning (NMAP)

23

ICMP Echo

Envoi d’un paquet ICMP Echo Request. Si on reçoit en réponse un paquet ICMP Echo Reply, l’hôte est en vie. Sinon, on le considère «down».

Pros: Facilité de mise en œuvre grâce à ICMP Echo broadcast.

Cons: Facile de bloquer les requêtes ICMP Echo.

Page 24: Port Scanning (NMAP)

24

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 25: Port Scanning (NMAP)

25

TCP sweeps

Envoi d’un paquet SYN ou ACK sur le port 80 de la cible (le moins souvent filtré).

Si il y a une réponse de la machine, on peut en déduire qu’elle est UP. Sinon, on la considèrera comme DOWN.

Peu fiable.

Page 26: Port Scanning (NMAP)

26

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 27: Port Scanning (NMAP)

27

UDP/ICMP error

Envoi d’un paquet UDP de 0 octet sur chaque port de la machine. Si on reçoit un message ICMP port unreachable, le port est fermé. Sinon, il est considéré comme ouvert.

Beaucoup de services vulnérables écoutent sur de l’UDP: snmp, NFS,…

On évite les IDS spécifiques à TCP.

Page 28: Port Scanning (NMAP)

28

UDP/ICMP error - désavantages

Protocole UDP non fiable. Risque de conclure à un port fermé alors que la cible n’a pas reçu nos paquets. Il faut donc retransmettre plusieurs fois.

Techniquement, un port fermé n’est pas obligé de renvoyer un message d’erreur.

Scan très lent sur certains systèmes d’exploitations qui respectent la RFC 1812 (limitation de la vitesse d’envoi des messages d’erreur ICMP).

Il faut être root pour accéder au SOCKET ICMP.

Page 29: Port Scanning (NMAP)

29

Scan type

scan open half-open stealth sweeps

ICMP echo

misc.

TCP connect()

reverse ident

TCP SYN scan

« dumb » scan

TCP FIN scan

ACK scan

XMAS scan

NULL scan

UDP/ICMP error

FTP Bouncescanning

TCP sweeps

Page 30: Port Scanning (NMAP)

30

FTP Bounce scanning Utilise la fonctionnalité proxy d’un serveur FTP. Pros:

Identité de l’attaquant masquée par le proxy (firewall éventuel).

Autoscan du serveur avec l’adresse 127.0.0.1 en ignorant un firewall.

Cons: maintenant connu (“patché”)

Page 31: Port Scanning (NMAP)

31

OS Detection

L’implémentation de la pile TCP/IP diffère selon les systèmes d’exploitation.

Les failles de sécurité sont souvent spécifiques à un système d’exploitation ou à un groupe de systèmes d’exploitation, et ceci en raison d’interprétations différentes du contenu des RFC.

Page 32: Port Scanning (NMAP)

32

OS Detection II

Test FIN : paquet FIN envoyé à un port ouvert. La RFC 793 stipule qu’il ne faut pas y répondre. Certains OS renvoient un RST.

Numéro de séquence initial (ISN) : son choix dépend de l’implémentation TCP.

Taille de la fenêtre TCP initiale: plus ou moins constante selon le type d’OS.

Page 33: Port Scanning (NMAP)

33

OS Detection III

ICMP : Citation des messages d’erreur ICMP : Il faut inclure

une partie du message à l’origine de l’erreur. Certains systèmes d’exploitation renvoient une plus grande partie du message d’origine que d’autres.

Intégrité des messages d’erreur ICMP : Certains systèmes d’exploitation altèrent les en-têtes IP.

Page 34: Port Scanning (NMAP)

34

OS Detection IV

Options TCP:Toutes les machines ne les implémentent

pas.Celles qui les implémentent le signalent en

plaçant dans leur réponse les options supportées parmi celles présentes dans le message reçu.

Page 35: Port Scanning (NMAP)

35

Techniques de Port Scanning I

Scan aléatoire.Les IDS recherchent des scans séquentiels

(ports scannés dans l’ordre). Scan lent.

Les IDS analysent le trafic sur une certaine période de temps (seuil de détection) à la recherche d’une IP qui revient souvent.

Page 36: Port Scanning (NMAP)

36

Techniques de Port Scanning II

Fragmentation.Nécessite un stealth scan (NMAP).Défragmentation non gérée par les firewalls

(temps, ressources) mais par la machine cible.

Comportement inattendu côté cible.

Page 37: Port Scanning (NMAP)

37

Techniques de Port Scanning III

Decoys.Permet de noyer sa propre IP parmi une

série d’adresses spoofées (DoS !).Détection: valeur du champ TTL.

Scans coordonnésTravailler à plusieurs pour scanner un réseau.Multiples IP scannent un réseau cible à des

périodes de temps différentes.

Page 38: Port Scanning (NMAP)

38

Exemples de résultats NMAPnmap -sS -O www.montefiore.ulg.ac.be

Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )Interesting ports onmontef00.montefiore.ulg.ac.be (139.165.16.5):(The 1518 ports scanned but not shown below are in state: closed)Port State Service7/tcp open echo9/tcp open discard13/tcp open daytime19/tcp open chargen21/tcp open ftp25/tcp filtered smtp37/tcp open time53/tcp open domain80/tcp open http110/tcp open pop-3111/tcp open sunrpc161/tcp filtered snmp513/tcp open login514/tcp open shell515/tcp open printer540/tcp open uucp587/tcp open submission1524/tcp open ingreslock2049/tcp open nfs4045/tcp open lockd6000/tcp open X116112/tcp open dtspc6699/tcp filtered napster7100/tcp open font-service8888/tcp open sun-answerbook

32771/tcp open sometimes-rpc532772/tcp open sometimes-rpc732773/tcp open sometimes-rpc932774/tcp open sometimes-rpc1132776/tcp open sometimes-rpc1532780/tcp open sometimes-rpc23

No exact OS matches for host (If you know what OS is running on it, seehttp://www.insecure.org/cgi-bin/nmap-submit.cgi).TCP/IP fingerprint:SInfo(V=2.54BETA30%P=i686-pc-linux gnu%D=2/24%Time=3C79126E

%O=7%C=1)TSeq(Class=RI%gcd=1%SI=C5AC%IPID=I%TS=100HZ)TSeq(Class=RI%gcd=2%SI=363A%IPID=I%TS=100HZ)TSeq(Class=RI%gcd=1%SI=79CD%IPID=I%TS=100HZ)T1(Resp=Y%DF=Y%W=60DA%ACK=S++%Flags=AS%Ops=NNTNWM)T2(Resp=N)T3(Resp=N)T4(Resp=N)T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)T6(Resp=N)T7(Resp=N)PU(Resp=Y%DF=Y%TOS=40%IPLEN=70%RIPTL=148%RID=E

%RIPCK=E%UCK=E%ULEN=134%DAT=E)

Uptime 136.861 days (since Wed Oct 10 21:38:52 2001)

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