port scanning (nmap)
Post on 28-Jan-2016
107 Views
Preview:
DESCRIPTION
TRANSCRIPT
Port Scanning (NMAP)
Les différentes techniques de scans
Laurent BarsinOlivier DelcourtAmaury DuchesnePhat Piron
01/03/02
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.
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).
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
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
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.
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
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.
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
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.
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
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.
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…
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
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.
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.
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
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
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.
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
21
NULL scan
Méthode similaire aux scans FIN et XMAS.
Aucun flag activé. Autre alternative au FIN scan.
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
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.
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
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.
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
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.
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.
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
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é”)
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.
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.
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.
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.
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.
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.
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.
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
top related