420 likes | 616 Views
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.
E N D
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. • Exemples de résultats NMAP.
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).
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.
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.
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.
« dumb » scan • Trouver un hôte muet. • Envoi d’un paquet SYN spoofé. • Le témoin renvoie un paquet SYN|ACK (port ouvert) ou un RST sinon. • Le témoin renvoie un RST au SYN|ACK reçu, rien si il a reçu un RST. • On épie le témoin via l’IPID.
« 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…
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.
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.
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.
NULL scan • Méthode similaire aux scans FIN et XMAS. • Aucun flag activé. • Autre alternative au FIN scan.
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.
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.
UDP/ICMP error • Envoi d’un paquet UDP de 0 octet sur chaque port de la machine. Si on reçoit un message ICMP portunreachable, 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.
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.
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é”)
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.
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.
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.
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.
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.
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.
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és • Travailler à plusieurs pour scanner un réseau. • Multiples IP scannent un réseau cible à des périodes de temps différentes.
nmap -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 Service 7/tcp open echo 9/tcp open discard 13/tcp open daytime 19/tcp open chargen 21/tcp open ftp 25/tcp filtered smtp 37/tcp open time 53/tcp open domain 80/tcp open http 110/tcp open pop-3 111/tcp open sunrpc 161/tcp filtered snmp 513/tcp open login 514/tcp open shell 515/tcp open printer 540/tcp open uucp 587/tcp open submission 1524/tcp open ingreslock 2049/tcp open nfs 4045/tcp open lockd 6000/tcp open X11 6112/tcp open dtspc 6699/tcp filtered napster 7100/tcp open font-service 8888/tcp open sun-answerbook 32771/tcp open sometimes-rpc5 32772/tcp open sometimes-rpc7 32773/tcp open sometimes-rpc9 32774/tcp open sometimes-rpc11 32776/tcp open sometimes-rpc15 32780/tcp open sometimes-rpc23 No exact OS matches for host (If you know what OS is running on it, see http://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 Exemples de résultats NMAP