Le stockage des mots de passes

android

Il y a quelques jours, je regardai le projet lancé par hackaday de faire un password keeper qui soit offline : Mooltipass

Je me suis dis que c’était quand même bien pratique et que j’en aurai bien besoin sur mon téléphone mobile. Comme ça faisait pas mal de temps que je n’avais pas développé sur Android, c’était l’occasion de réfléchir au plus gros problème que l’on retrouve sur les mobiles, ils ne disposent pas d’un espace sécurisé.

Vous pouvez récupérer l’application sur google play directement à cette adresse : Téléchargement

Le mécanisme de protection

Afin de réaliser ce projet, j’ai supposé que le mobile n’était pas vérolé à priori et qu’aucun touchlogger n’était présent sur celui ci.

En plus de cela, j’ai supposé que l’utilisateur été suffisamment doué pour choisir un mot de passe solide dont on peut sauvegarder le hash sans qu’il soit casser rapidement.

L’idée est donc de chiffrer l’ensemble des mots de passe de l’utilisateur en utilisant un secret que seul l’utilisateur connait.

Pour cela nous allons utiliser les API java cryptographiques et utiliser l’algorithme AES.

Afin de générer le secret pré partagé, nous allons utiliser une phrase secrete. Ce secret consiste en une phrase que seul l’utilisateur connait. Nous utiliserons alors une fonction de hashage pour générer la clé de chiffrement à partir de la phrase secrète de l’utilisateur. A cela nous ajoutons un salt, ceci permet de diversifier le secret pré partagé en fonction de son usage.

La fonction de diversification a été codé comme suis :

private byte[] diversify(String password, String salt) {
	password = password + salt;
	byte[] key = new byte[16];
	MessageDigest sha1 = null;
	try {
		sha1 = MessageDigest.getInstance("SHA");
	} catch (NoSuchAlgorithmException e) {
		e.printStackTrace();
	}
	sha1.update(password.getBytes());
	byte[] hash = sha1.digest();
	System.arraycopy(hash, 0, key, 0, 16);
	return key;
}

Le stockage des données

Afin de stocker les données, nous allons transporter la clé dérivée pour la session courante et utiliser une base de données Android pour stocker les mots de passe. L’ensemble du contenu de la base de données est bien entendu chiffré avant insertion.

Chaque entrée est identifiée par les champs suivants :

public class PasswordReference {
 
	private int id;
	private String description;
	private String login;
	private String password;

L’id est stocké en clair, pour les autres champs, nous utilisons un salt différents pour chacun.

Attaques possibles

La première attaque possible est de regarder par dessus l’épaule. Ainsi l’utilisateur récupère le secret pré partagé.
Une seconde attaque serait d’utiliser un key logguer. Afin de palier à ce genre d’attaque, il faudrait ajouter un deuxième paramètre dans la génération du secret pré partagé. Ce deuxième paramètre serait un code pin avec clavier dynamique. Ainsi un touchlogger deviendrait inefficace pour récupérer le code pin.

Cependant cette technique n’empêcherait pas de bruteforcer les solutions restantes et avec un code pin à 4 chiffres, ça ne fait que 10 000 essais.
L’attaque par bruteforce reste la dernière possible et celle ci peut être évitée à condition de choisir un mot de passe sure et de le changer régulièrement.

Sources

L’ensemble des sources de ce petit programme peut être télécharger sur github à l’adresse suivante : https://github.com/julien14/secretKeeper
Bien sur le programme est libre et sous licence GPL. Enjoy !

Attaque sur carte sans contact

Un petit retour sur le workshop de la Nuit du Hack.

La démonstration principale de ce workshop était une attaque sur les cartes sans contact. Celles-ci proposent de payer en sans contact à une distance d’une dizaine de centimètre du lecteur. Ce paiement ne nécessite pas de saisir son code PIN. Il est cependant limité à des transactions d’un montant maximal de 20€ et à 4 transactions consécutives. Après il faut passer en mode contact pour réaliser une transaction.

Description de l’attaque

L’idée est de réaliser un proxy permettant de faire une transaction à distance.

explain

Le téléphone est un téléphone NFC qui permet de réaliser des transactions en sans contact. Celui-ci est relié par un réseau, par exemple un réseau internet, à un lecteur de carte sans contact. Ce lecteur dans le schéma est représenté à droite à coté du personnage en costume. Il est relié à un ordinateur afin de pouvoir être accessible depuis un réseau.

Nous aurions aussi pu utiliser un autre téléphone NFC à la place du couple PC – lecteur sans contact. Cependant je n’avais à ma disposition qu’un seul téléphone NFC.

L’attaque consiste à réaliser un proxy passif afin de réaliser un paiement à l’aide d’une carte qui ne se trouve pas à proximité du lecteur. Puisque la technologie est sans contact, cela peut être réalisé à l’insu de la cible.

Réalisation

Afin de réaliser cette attaque, un téléphone Nexus S a été utilisé. Ce téléphone possède une puce NFC et permet l’installation de l’application simply tap avec une cyanogen mod 9.1. Cette application permet d’avoir accès à l’antenne NFC du téléphone depuis une application android. Le but premier est de réaliser des services de paiement en cloud.

Dans notre cas, au lieu d’interroger un cloud, nous interrogeons un lecteur distant afin de dialoguer directement avec une carte sans contact.

Démonstration :


Attaque par proxy par oversimple

Comment s’en protéger

Pour s’en protéger, c’est assez simple il suffit de mettre sa carte dans un étui en fer. Il existe des portes feuilles blindés qui font très bien l’affaire.

Bibliographie

SimplyTapp NFC Payment System Debuts with CyanogenMod 9.1
emulating pki smart card with cm9.1
NFC Proxy

Nuit du Hack 2k13

ndh

Un petit bilan de la nuit du hack.

Un petit retour sur la Nuit du hack qui vient de se passer. Cette année les confs étaient essentielement en anglais. On peut y voir une volontée de s’ouvrir de plus en plus vers l’étranger.

Le thème du SE est revenu assez fréquement. On a eu comme toujours le droit à notre lot de surprises. Nous avons une petite préference pour les techniques roumaines de fraudes bancaires sur internet.

L’idée est simple, convertir des euro en leu roumain (l’argent roumain) et utiliser les arrondis du troisième digit pour se retouver avec un arrondi supérieur en notre faveur. Ce qui est amusant c’est de voir comment avec ingéniosité il a automatisé les vérifications du code secret qui valide les transactions. Ses automates valent le détour.

Sinon, Julien a présenté un workshop sur le NFC. Le workshop s’est bien déroulé et nous avons pu établir quelques contacts. C’est assez suprenant de voir que les gens s’intéressent autant à la technologie.

Après tout ça on est allé faire un petit tour dans les jardins du parcs avant que les gardes nous demandent de rentrer dans nos hotels. Pour le coup, on ne comprend vraiment pas pourquoi.

DSCF1115

On postera d’autre trucs plus tard sur le workshop et les challenges du wargames mais pour l’instant il est l’heure d’aller se coucher.

Espionner une transaction Monéo

La carte Monéo

La carte Monéo est un porte monnaie électronique. La spécificité d’un porte monnaie électronique est que l’argent n’est pas présent directement sur la carte.

Pour la Monéo, il est nécessaire de présenter votre carte bancaire. Une transaction est effectuée de la même manière que si vous retiriez de l’argent en liquide. Cet argent est alors inscrit sur la carte Monéo. Monéo propose un service de chargement en ligne. Nous allons en profiter pour observer la manière dont fonctionne le chargement d’une telle carte.

L’espion de carte à puce

L’espion fonctionne à partir d’un microprocesseur Microchip PIC32MX512L. Pour plus de détails sur le développement :

Le protocole ISO7816 a été implémenté afin de pouvoir obtenir des traces qui ressemblent à ceci :

T=1:

ATR : 3BE800008131FE454A434F505632343194
Term (S-block):
00C101 FC 3C
Card (S-block):
00E101 FC 1C
Term (I-block):
00000C 00A4040007A0000000041010 0F
Card (I-block):
000025 6F218407A0000000041010A516500A4F56455253494D504C45BF0C07636172647370799000 C3
Term (I-block):
004005 00C0000041 C4

T=0:

ATR : 3B 66 00 00 90 D1 02 01 20 B1 
Term (CLA INS P1 P2 P3):
00 A4 04 0C 06 
Card (Ack):
A4 
Term (UDC):
A00000006900
Card (SW): 
9000
Term (CLA INS P1 P2 P3):
00 B2 01 BC 16
Card (ACK UDR SW): 
B2 9250003840106021502D15091207010250455552011C 9000

Le chargement Monéo

A l’aide de l’espion, nous observons un chargement de Monéo de dix euros effectué sur internet.

Celui ci se décompose en deux parties, la première partie est une lecture des informations de la carte, numéro de PAN, solde etc…

Ensuite un série de commandes est exécutée de cla E0 et d’instructions 30.
La classe E0 nous indique alors qu’il s’agit d’une carte supportant jusqu’à 16 canaux logiques (16 pointeurs de fichier) et que la commande inclus du Secure Messaging.

Edition après le commentaire de SV :

Une petite remarque en passant: CLA = E0 signifie surtout que le bit de poids fort est à 1 donc l’instruction (et la classe) sont propriétaires. La norme ISO/IEC 7816 ne s’applique donc pas pour interpréter l’octet CLA (en particulier les 16 canaux).

Autrement dit, le chargement est protégé par un calcul de MAC. Le mac faisant 8 octets de long, on peut vraisemblablement penser à du 3-DES.

Term (CLA INS P1 P2 P3):
E0 30 00 00 1C 
Card (ACK):
30 
Term (UDC):
00000000001000000000000000007001070600018820121121192244
Card (SW)
6139 
Term (CLA INS P1 P2 P3):
00 C0 00 00 39 
Card (ACK UDR SW):
C0 010005010010000021108888866666001000315D110004010010000100000030000000000000000000000000000000000DCE86FF2230D6A91B 9000
Term (CLA INS P1 P2 P3):
E0 30 80 00 35
Card (ACK):
30 
Term (UDC):
10000501001000250001700107060000000000018820121121192244010000003000000000000000000000000DAE7D69BE5F4394EA 
Card (UDR):
610D 
Term (CLA INS P1 P2 P3):
00 C0 00 00 0D 
Card (ACK UDR SW):
C0 11000501001000003110000000 9000

Conclusion

On retrouve dans la dernière UDC la date de la transaction ainsi que le montant. La sécurité du mécanisme repose la génération des macs par le serveur. Ceci est un système sécurisé à condition que les algorithmes cryptographiques soient correctement implémentés.

Contourner les caméras de sécurité


Je ne sais pas vous, mais moi, toutes ces caméras qui surveillent mes moindres faits et gestes ça m’ennuie un peu.

Alors certes, c’est certainement pour le bien des citoyens que de les filmer en permanence, mais ça reste un peu intrusif.

Bien sur, je pourrais trouver un hack sympa à faire pour ne plus être filmé en permanence. Peut être même que ce hack concernerait tous les capteurs CCD et donc aussi les radars automatiques et autres webcams qui enregistrent en temps réel.

Let’s investigate (oui maintenant on se la fait à l’américaine).

Etude d’un capteur CCD

On apprend sur Wikipedia qu’il a été inventé par George E. Smith et Willard Boyle , et que ça leur a valu le prix nobel mais sur tout d’après wikipédia : « Un capteur photographique est un composant électronique photosensible servant à convertir un rayonnement électromagnétique (UV, visible ou IR) en un signal électrique analogique. »

On y apprend ensuite que la matrice RGB qui numérise le signal est constituée de photodiodes sensibles au rouge / vert et bleu et que c’est le logiciel qui recalcule les couleurs en fonction de l’intensité enregistrée par chaque photodiode.

Des photodiodes donc…

Les photodiodes ont une courbe de sensibilité centrée sur une longueur d’onde particulière. Ce qui m’intéresse c’est la répartition de cette sensibilité. En effet si cette sensibilité dépasse le domaine du visible et là je pense aux capteurs rouges qui sont proches de l’infra rouge, alors on pourrait imaginer éblouir la caméra sans que cela ne soit visible dans le monde réel.

Recherchons la courbe de sensibilité des photodiodes bleus et rouges, qui pourrait être sensible aux ultra violets et aux infrarouges.
On a, toujours sur Wikipédia, l’information suivante :

Donc il n’est pas sensible qu’au spectre du visible qui s’étend de 400 à 700 nm (0.4 à 0.7 sur le diagramme). Toujours d’après ce même diagramme on peut imaginer que si on tape dans les infrarouges, le capteur rouge est largement éclairé. On pourrait donc l’éblouir et faire une attaque de type DOS dessus.

Essais

Un diode infrarouge peut être récupérée dans n’importe quelle télécommande. On va donc faire un petit essai avec plusieurs capteurs, à commencer par la webcam du pc, le téléphone portable et un appareil photo professionnel. Pour cela j’utilise une diode récupérée sur une vieille télécommande de freebox. J’utilise un des GPIO de mon raspberry pour l’alimenter. Cela permet de l’allumer ou de l’éteindre simplement.

Les résultats parlent d’eux même, le capteur est sensible aux infrarouges. Des résultats similaires on était observé avec l’appareil photo et la webcam.

Cas de la plaque d’immatriculation

Ajoutons une seconde led à notre montage que l’on va placer autour d’un numéro afin d’évaluer les capacités d’obfuscation :

Allumons notre montage :

Conclusion

Il ne s’agit là que de petite diodes. On peut facilement imaginer fabriquer un montage relié à la batterie du véhicule avec des diodes pour contourner les radars (fixes ou mobiles). On peut aussi imaginer dissimuler un visage aux caméras avec une casquette équipée de leds alimentées par une pile 9V.

It’s Oversimple isn’t it?

Nmap, un scanner puissant !

Ah Nmap qui ne le connait pas ? Le scanner de port qui passe dans pleins de films : Matrix Reloaded, Bourne Ultimatum, Die Hard 4 et pleins d’autres. Plus d’informations ici.

Plus sérieusement, Nmap permet en plus de scanner des ports, d’identifier les services hébergés ainsi que le système d’exploitation distant.

Voici quelques commandes, cette liste est bien sûre non exhaustive, je me permettrai de rajouter les commandes qui peuvent m’être utile par la suite !

Un scan nmap « basique » :

# nmap 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:07 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00040s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
80/tcp   open   http
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
548/tcp  closed afp
554/tcp  open   rtsp
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
8090/tcp open   unknown
9091/tcp open   xmltec-xmlmail
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Nmap done: 1 IP address (1 host up) scanned in 4.77 seconds

Utiliser le TCP Scan connu sous le nom de Scan SYN. Le paquet SYN est le premier envoyé lors d’une connexion TCP, le TCP handshake sera réinitialisé si le port est détecté comme ouvert.

# nmap -sS 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:07 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00037s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
80/tcp   open   http
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
548/tcp  closed afp
554/tcp  open   rtsp
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
8090/tcp open   unknown
9091/tcp open   xmltec-xmlmail
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Nmap done: 1 IP address (1 host up) scanned in 5.06 seconds

Et pour voir les ports UDP ouvert :

# nmap -sU 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:20 CEST
Nmap scan report for 192.168.1.17
Nmap scan report for 192.168.1.1
Host is up (0.00035s latency).
Not shown: 993 closed ports
PORT     STATE         SERVICE
53/udp   open          domain
67/udp   open|filtered dhcps
123/udp  open          ntp
137/udp  open          netbios-ns
138/udp  open|filtered netbios-dgm
1900/udp open|filtered upnp
5353/udp open          zeroconf
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Nmap done: 1 IP address (1 host up) scanned in 1087.27 seconds

Scan de port

Scanner un port bien précis :

nmap -p 1337 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:20 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00024s latency).
PORT     STATE    SERVICE
1337/tcp filtered waste
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds

Lorsque l’on souhaite scanner des plages avec nmap, (plages de ports) :

# nmap -p 1337-7331,80 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:21 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00029s latency).
Not shown: 5991 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
6600/tcp closed mshvlm
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Nmap done: 1 IP address (1 host up) scanned in 17.94 seconds

Ici on scanne la rangée de port suivante : 1337 à 7331
Ainsi que le port 80.

Avant on faisait un scan de ping ( -sP ), dans les nouvelles versions de nmap c’est  « No port scan » soit -sn.
Quand on fait cette commande avec les droits root, on scanne : ‘ICMP echo request, TCP SYN to port 443, TCP ACK to port 80, and an ICMP timestamp request by default’
Quand on fait cette commande avec les droits utilisateurs : seulement le paquet SYN est envoyé pour le port 80 et 443

No port scan :

# nmap -sn 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:54 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00027s latency).
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

Scan système d’exploitation

Découvrir le système d’exploitation de la machine distance :

nmap -O 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:21 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00030s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
80/tcp   open   http
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
548/tcp  closed afp
554/tcp  open   rtsp
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
8090/tcp open   unknown
9091/tcp open   xmltec-xmlmail
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
OS details: Linux 2.6.38 - 3.2
Network Distance: 1 hop
 
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.91 seconds

Si celui-ci n’arrive pas à affiner les recherches, il fait une recherche agressive :

# nmap -O --osscan-guess 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:22 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00028s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
80/tcp   open   http
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
548/tcp  closed afp
554/tcp  open   rtsp
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
8090/tcp open   unknown
9091/tcp open   xmltec-xmlmail
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
OS details: Linux 2.6.38 - 3.2
Network Distance: 1 hop
 
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.74 seconds

Scan exhaustif

Le scan typique de NMAP, qui comprend le scan des ports, le traceroute la détection d’OS et sa version. Et le T4 signifie que le scan doit être plus rapide

# nmap -A -T4 192.168.1.1
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:23 CEST
Nmap scan report for 192.168.1.1
Host is up (0.00031s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE           VERSION
21/tcp   open   ftp               box ftpd
80/tcp   open   http              nginx
|_http-methods: No Allow or Public header in OPTIONS response (status code 405)
| http-robots.txt: 1 disallowed entry 
|_/
|_http-title: Accueil box Server
139/tcp  open   netbios-ssn       Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp  open   netbios-ssn       Samba smbd 3.X (workgroup: WORKGROUP)
548/tcp  closed afp
554/tcp  open   rtsp              box rtspd 1.2
| rtsp-methods: 
|_  DESCRIBE, OPTIONS, SETUP, TEARDOWN, PLAY, PAUSE
5000/tcp open   rtsp              RogueAmoeba Airfoil rtspd 110.63
| rtsp-methods: 
|_  ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER, POST, GET
5001/tcp closed commplex-link
5678/tcp open   upnp              fbxigdd 1.0 (AliceBox PM203 UPnP; UPnP 1.0)
8090/tcp open   hadoop-jobtracker Apache Hadoop
|_http-methods: No Allow or Public header in OPTIONS response (status code 302)
|_http-title: Probl\xC3\xA8me de connexion Internet
9091/tcp open   http              nginx
|_http-methods: No Allow or Public header in OPTIONS response (status code 405)
|_http-title: 403 Forbidden
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
Device type: general purpose
Running: Linux 2.6.X|3.X
OS CPE: cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
OS details: Linux 2.6.38 - 3.2
Network Distance: 1 hop
Service Info: OSs: Mac OS X, Linux 2.6; Devices: media device, WAP; CPE: cpe:/o:apple:mac_os_x, cpe:/o:linux:kernel:2.6
 
Host script results:
| smb-security-mode: 
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_nbstat: NetBIOS name: box, NetBIOS user: , NetBIOS MAC: 
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery: 
|   OS: Unix (Samba 3.0.37)
|   NetBIOS computer name: 
|   Workgroup: WORKGROUP
|_  System time: 2012-09-12 20:23:42 UTC+0
 
TRACEROUTE
HOP RTT     ADDRESS
1   0.31 ms 192.168.1.1
 
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 23.24 seconds

Nmap bonus

Scanner toujours la meme machine mais on spoof notre adresse mac.

nmap --spoof-mac Apple 192.168.1.1

Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 20:24 CEST
Spoofing MAC address 00:03:93:4B:A8:C4 (Apple Computer)
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.48 seconds

Sauvegarder les résultats dans un fichier :
XML :

nmap -oX output.xml 192.168.1.1

Standard :

nmap -oN output 192.168.1.1

Ce qui peut aussi être intéressant est Nmap Scripting Engine (NSE) : Le but du NSE est de fournir à Nmap une infrastructure flexible afin d’étendre ses capacités et ainsi offrir à ses utilisateurs une façon simple de créer ses propres tests personnalisés. Plus d’informations ici.

Scan avec les scripts par défaut :

# nmap -sC 192.168.1.254
 
Starting Nmap 6.01 ( http://nmap.org ) at 2012-09-12 21:26 CEST
Nmap scan report for 192.168.1.254
Host is up (0.00035s latency).
Not shown: 989 filtered ports
PORT     STATE  SERVICE
21/tcp   open   ftp
80/tcp   open   http
| http-robots.txt: 1 disallowed entry 
|_/
|_http-methods: No Allow or Public header in OPTIONS response (status code 405)
|_http-title: Accueil box Server
139/tcp  open   netbios-ssn
445/tcp  open   microsoft-ds
548/tcp  closed afp
554/tcp  open   rtsp
| rtsp-methods: 
|_  DESCRIBE, OPTIONS, SETUP, TEARDOWN, PLAY, PAUSE
5000/tcp open   upnp
5001/tcp closed commplex-link
5678/tcp open   rrac
8090/tcp open   unknown
9091/tcp open   xmltec-xmlmail
MAC Address: 13:37:13:37:13:37 (La box de mon FAI)
 
Host script results:
|_nbstat: NetBIOS name: box, NetBIOS user: , NetBIOS MAC: 
| smb-security-mode: 
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server doesn't support SMBv2 protocol
| smb-os-discovery: 
|   OS: Unix (Samba 3.0.37)
|   NetBIOS computer name: 
|   Workgroup: WORKGROUP
|_  System time: 2012-09-12 21:26:55 UTC+0
 
Nmap done: 1 IP address (1 host up) scanned in 12.44 seconds

Et en plus de NSE, contourner un pare-feu avec nmap : http://nmap.org/man/fr/man-bypass-firewalls-ids.html

Source :

Le site officiel : http://nmap.org/

Le man de nmap : http://nmap.org/man/fr/

Logo NMAPIt’s oversimple isn’t it?