 de la reconnaissance de système d exploitation à distance au camouflage les différents systèmes d exploitation ont des caractèristiques particulières la reconnaissance d un système d exploitation passe par la récolte d information qui va nous permettre de déterminer le système d exploitation distant dans la suite nous utiliseront deux machines il est obligatoire d avoir deux machines la première machine ip 192168121 mac 0010 aa 1b cb aa la deuxième machine ip 192168122 mac 000625 aa 573a port 22 noyau 2424 il n y a aucun firewall sur aucune des machines les services pour lister les services de la machine distante nous allons utiliser nmap  1  nmap sv 192168122 nous auront par exemple 80 tcp open http apache httpd 2050 ydl nous savons alors que c est une yellow dog certains services sont plus courant sur un système ou un autre par exemple netbios est courant sous windows et moins sous unix pour se protéger il faut limiter le nombre de service sur les machines de plus il est possible bien souvent de retirer les bannières des services les implémentations réseaux il y a des différences dans les implémentations réseaux nous allons voir trois outils qui utilise cette technique nmap nmap est une boite à outil du scan il se sert principalement des paquets tcp souvent mal formaté pour déterminer une empreinte d un système nmap o 192168122 p 22 ss running linux 24x 25x os details linux 240 2520 uptime 12063 days since wed jan 26 221544 2005 xprobe2  2  xprobe2 travaille surtout au niveau icmp xprobe2 p tcp 22 open 192168122 host 192168122 running os linux kernel 263 guess probability 100 other guesses host 192168122 running os linux kernel 262 guess probability 100 host 192168122 running os linux kernel 267 guess probability 100 host 192168122 running os linux kernel 266 guess probability 100 host 192168122 running os linux kernel 265 guess probability 100 host 192168122 running os linux kernel 264 guess probability 100 host 192168122 running os linux kernel 261 guess probability 100 host 192168122 running os linux kernel 260 guess probability 100 host 192168122 running os linux kernel 2428 guess probability 100 host 192168122 running os linux kernel 2427 guess probability 100 p0f  3  contrairement à nmap et xprobe2 p0f ne se connecte à un serveur distant il attent qu on se connecte à lui p0f sur l autre machine ssh 192168122 résultat 192168021456 linux 2426 267 up 333 hrs 19216802580 distance 0 link ethernet modem  exemple de particularité lié au système d exploitation le rto nous allons étudier le fonctionnement des sessions tcp pour établir une session il faut procéder à trois étapes la machine voulant établir une connexion envoi un paquet syn avec un numéro de séquence la machine distante répond par un paquet avec l option ack et le numéro de séquence 1 dans le même paquet la machine distance demande si la machine est prête à ouvrir la session avec avec l option syn et un numéro de séquence enfin la première machine répond avec un paquet ack avec les deux numéros de séquence 1 suite à ce processus comportant trois échanges les deux machines sont synchronisées et la communication peut commencer le but du rto retransmission timeout est d envoyer un paquet syn et de ne jamais renvoyer la réponse ack suivant les systèmes d exploitation le comportement est différent voyons en pratique ce que cela donne nous envoyons un paquet c 1 de type syn s avec l adresse source mystifié de 192168123 machine qui n existe pas sur le port ouvert 22 hping2 s a 192168123 192168122 p 22 i eth0 c 1 linux envoi une requête arp pour connaître l adresse mac de la machine 192168123 il nous faut mystifier une réponse arp voir jouons avec arp  sendarp 192168123 00095b b22d 78 192168122 0010 a71b cb ad sous linux nous remarquons qu il envoi 6 paquets avec un intervalle de plus en plus loin sous freebsd 48 il n y aurait eu que 4 paquets à intervalle régulier n ayant pas de rfc décrivant explicitant la marche à suivre chaque système à une implémentation de façon différente contrer les détections il n y a pas de technique sûr pour contrer ce genre d attaque nous pouvons jouer sur les options réseaux pour tromper les tests dans un premier test nous allons limiter les réponses aux paquets malformatés iptables f iptables p input drop iptables p output accept iptables p forward accept iptables a input m state state established related j accept iptables a input p tcp m state state new tcpflags all syn j accept iptables a input p icmp icmptype echorequest j accept avec nmap en ajoutant l option vv nous voyons qu il se trompe en effet seuls deux des sept tests fonctionnent device type general purpose media device running linux 24x 26x pace embedded os details linux 2421 suse x86 linux 246 2421 linux 268 debian pace digital cable tv receiver os fingerprint tseq class ri gcd 1 si 328779 ipid z ts 100hz t1 resp y df y w 16a0 ack s flags as ops mnntnw 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 n xprobe2 et p0f sont moins précis nous allons changer quelques options de la couche tcp pour essayer de tromper les outils d abord nous allons augmenter la valeur de ttl ttl représente le timetolive ou la durée de vie du paquet de 64 nous passons à 128 echo 128 proc sys net ipv4 ipdefaultttl enfin nous allons désactiver deux options tcp echo 0 proc sys net ipv4 tcpwindowscaling echo 0 proc sys net ipv4 tcptimestamps p0f et xprobe2 seront ainsi trompé attention changer les options de la couche tcp peut avoir des conséquence sur les performances réseaux fichier attaché taille ouverture de session tcp 1598 ko  de la reconnaissance de système d exploitation à distance au c quelques remarques a quoi correspond le port 22 que tu indiques pour la deuxième machine pour info j ai dû installer nmap aptget install nmap et xprobe2 aptget install xprobe2 concernant p0f que j ai dû installer également aptget install p0f il serait peutêtre mieux de prendre comme exemple la commande ssh que tout le monde connaît plutôt que links ou alors expliquer c est quoi links pour la suite du document j ai décroché au risque de me répéter merci pour ton document  de la reconnaissance de système d exploitation à distance au c test de réponse suite au problème de gnunux  sécurité  