URL : http://sourceforge.net/projects/lutz/
Author : Christian Eichelmann (Killswitch)
Commentaires : sirius_black
Il y a quelques temps j'etais sous SuSE Linux 9.0. Apres avoir installe
nmap il s'est avere que celui ne fonctionnait pas sur ce systeme. Cela m'a
amene a chercher une alternative a nmap. Apres quelques recherches je suis
tombe sur Lutz qui, au vue de ses fonctionnalites semblait etre la
meilleure alternative a Nmap.
Lutz a ete developpe par un Allemand durant son temps libre. Comprenez
par la que Lutz n'a pas l'ambition de devenir le concurrent de Nmap mais
il offre des resultats non negligeables.
A note que contrairement a Nmap, Lutz n'utilise pas la libpcap mais
est code de facon a n'utiliser que les raw-sockets.
La version teste pour cet article est la v0.4b. Vous trouverez assez
facilement de la documentation en Anglais sur ce logiciel.
Lutz sur le papier :
sirius@lotfree:~> lutz -h
Starting lutz V0.4b ( http://sourceforge.net/projects/lutz/ )
Report bugs to Killswitch ( shinnok@sourceforge.net )
usage : lutz [Options]
-sC Connect() Scan. Default for nonroot users
* -sS SYN-Stealth Scan. Default for r00t
* -sF,-sX,-sN FIN,Xmas,NULL-Scan instead of SYN-Scan
* -F Uses commaseperated Fakehosts for Scanning
-p port(s) to scan (Example:1-6000,31337 )
-iR Scanns Random IP Addresses until STRG-C is caught
-iL Reads Hostlist from (one host per line)
-P Dont Ping the Host
-T Specifies the Timeout in msecs (lutz tries to get the right value)
* -S Specifies the Source address (lutz tries to get the right address)
* -g Set the Sourceport for Scanning
-oN, oG, oK Logs Scan in normal, grepable and kiddi format
-h Shows this screen and exit
-f Fastscan ( only scan ports in /etc/services )
-r Randomizes the Portlist
-O Starts an OS Scan
-v Verbouse output ( maybe interesting ? )
-vv VERY verbouse output ( for debugging )
-V Shows the Version Number and exit
( * means you need to be r00t to use this option )
Commencons par les points communs / differences avec Nmap. Pour ce qui
est des ressemblances elles sont assez frapantes. Tout d'abord Lutz
implemente les methodes de scan dites furtives comme le SYN-Scan, FIN, NULL
ou encore le Xmas-Scan (options -sS, -sF, -sN et -sX.)
Lutz propose aussi la methode de scan universelle qui consiste a etablir
une connexion complete (-sC). Il s'agit de la methode par defaut si vous
lancez Lutz sans avoir les droits root (sinon le SYN-Scan est utilise par
defaut.)
La methode DECOY de Nmap est ici implementee par l'option -F qui permet
de dissimuler son adresse IP au milieu d'un tas d'adresses.
Lutz permet, a l'instar de Nmap, de specifier une adresse source. Bien
sur n'utilisez cette option que si vous avez la possibiliter de sniffer
les reponses (sur un reseau local par exemple.)
Lutz possede d'autres points communs a Nmap que vous avez du remarque
dans l'ecran d'aide du logiciel.
Passons aux differences. Parmis les options que Lutz n'offre pas se trouve
l'UDP Scanning ainsi que l'affichage des versions des services scannes.
Cela est evidemment du au fait que Lutz n'utilise pas la libpcap. Il serait
bien trop difficile de decrypter tous les protocoles en se basant uniquement
sur les raw sockets.
Lutz ne permet pas non plus de faire un RPC-scan.
Nmap montre lui aussi des lacunes par rapport a Lutz. Premierement la
possibilite de scanner des IPs aleatoires. Certes on peut se demander a
premiere vue a quoi cela peut servir. En fait cette option permet de
remplacer certains logiciels de scans specifiques et par exemple de
chercher des machines avec SMTP (pour le spam), avec FTP (warez) etc.
Bref on peut y trouver bon nombre d'utilisations si on couple cette option
avec d'autres options.
Petit detail amusant, Lutz permet tout comme Nmap de formatter les
resultats de plusieurs facons sauf qu'a la place du format XML de Nmap, Lutz
propose un f0rm4t p0uR 13s C0wB0y5 :p
Lutz permet de choisir le port source des scans. Cela est utilise si vous
souhaitez scanner une machine derriere un firewall qui ne laisse passer que
les transactions DNS par exemple. Il me semble que Nmap le permet aussi mais
je n'ai pas la preuve sous les yeux.
Lutz possede des fonctionnalites cachees dans le sens ou elles n'apparai-
ssent pas dans l'ecran d'aide. Ces options sont pourtant decrites dans la
documentation.
La premiere de ces fonctionnalites est l'IDLE-Scan, deja implemente par
Nmap. Pour l'utiliser on utilise l'option -sI . L'auteur precise
qu son implementation est encore en version Beta et qu'il ne faux pas trop
se fier aux resultats.
La seconde fonctionnalite cache est bien plus fiable. il s'agit de
l'option -sP. Contrairement a Nmap il ne s'agit pas d'un Ping-Scan mais d'un
"PROTO-Scan". Voici un exemple :
linux:~ # lutz -sP -vv 192.168.0.2
Starting lutz V0.4b ( http://sourceforge.net/projects/lutz/ )
Report bugs to Killswitch ( shinnok@sourceforge.net )
Scanning Protocols on unknown [192.168.0.2]
Guessed Source Address is 192.168.0.1
Setting Timeout to 1350 ms
Initialing PROTO Scan against 192.168.0.2 on Fri Aug 20 16:40:21 2004
Proto Name State Description
1 icmp open Internet Control Message
2 igmp open Internet Group Management
6 tcp open Transmission Control
17 udp open User Datagram
Scanned 255 protocols with PROTO Scan in 4 seconds.
4 are in state open
Scanned 1 Hosts in 4 seconds - 1 hosts up
cette option permet comme vous avez du le deviner de decouvrir quels
protocoles sont supportes par la machine scannee (ci dessus un win98)
Essayons sur ma machine (linux 2.4.21-144-default, SuSE 9.0)
Initialing PROTO Scan against 192.168.0.1 on Fri Aug 20 16:42:02 2004
Proto Name State Description
1 icmp open Internet Control Message
2 igmp open Internet Group Management
6 tcp open Transmission Control
17 udp open User Datagram
41 ipv6 open Ipv6
Scanned 255 protocols with PROTO Scan in 5 seconds.
5 are in state open
Ma machine supporte l'IPv6 :)
Petite partie technique... Je remercie KillSwitch (l'auteur de Lutz) pour
m'avoir donne son aide ;)
Comment marche le PROTO-Scan ? Et bien en fait c'est assez simple. Il
suffit d'envoyer a la machine des paquets qui s'arretent a l'entete IP.
Cet entete IP possede un champ "Protocol" qui permet a la machine receptrice
de savoir quel entete de protocole se trouve apres. Seulement il n'y a rien
apres !!
La machine qui recoit ces paquets malformes va reagir differemment selon
quelle gere ou non le protocole definit dans l'entete IP.
Premier cas : la machine ne gere pas le protocole.
Dans ce cas la elle repond par un message ICMP de type 3 (Destination
unreachable) - Code 2 (Protocol unreachable) avec comme message l'entete IP
qui lui a pose probleme (on peut donc retrouver le protocole quelle ne gere
pas.)
Second cas : la machine supporte le protocole.
Dans ce second cas elle ne renvoie tout simplement aucune reponse.
La fonction PROTO-Scan de Lutz consiste tout simplement a envoyer des
paquets malformes en incrementant a chaque fois le champ "protocol" de
l'entete IP (de 0 a 255.)
Changons de sujet : l'OS-Fingerprinting
Lutz se base sur un systeme de signatures tres proche de Nmap... avec
quelques tests en moins.
(...)
Starting OS Scan.
Assuming that Port 1 is closed and Port 139 is open, an neither are firewalled
Cant get Uptime of 192.168.0.2. No Timestamp returned
IPID Sequence Generation : Random Positive Increment
OS Fingerprint :
T1(Resp=Y%DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T4(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=N%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=N%W=0%ACK=S++%Flags=AR%Ops=)
Best remote OS guess ( 100.0% ) : Turtle Beach AudioTron Firmware 3.0
Scanned 1 Hosts in 0 seconds - 1 hosts up
Bon ici ca n'a pas marche (il aurait du dire Windows 98) mais sur mon
linux ca a tres bien marche.
Alors Lutz est vraiment fiable ?
J'avoue avoir eu quelques surprises avec ce logiciel. La plupart de mes
scans on ete fait avec la commande suivante :
lutz -sS -f -vv 192.168.0.2
En lancant 3 fois de suite la meme commande, j'obtenais 3 resultats...
differents :(
De toute evidence cela etait du au TimeOut qui est choisi au hazard par
Lutz (et que l'on peut voir avec l'option -vv.)
Note : L'option -T ne permet pas de specifier une duree d'atente entre les
scans mais fixe le temps d'attente d'une reponse a un scan.
Pour obtenir des resultats fiables j'ai du a chaque fois rajouter les
instructions "-T 900" qui permettent de fixer un grand TimeOut.
Lutz furtif ? D'un certain point de vue Lutz est furtif car il utilise
des techniques de scan avancees. Toutefois il ne fait pas le poids en face
de nmap. Tout d'abord Lutz scanne les ports par ordre croissant par defaut.
Heureusement l'option -r permet de les scanner dans un ordre aleatoire.
N'oubliez pas d'utiliser cette option (avec un -T 900 bien sur.)
Ensuite si on sniffe le traffic genere par Lutz on s'appercoit de
plusieurs chose :
- le TTL est fixe a 56 pour tous les scans (sur les dernieres version de
nmap il change tout le temps)
- Le numero de sequence TCP vaut toujours 0 alors que pour nmap il change
pour chaque session de scan.
- La taille de la fenetre (window size) est fixe a 0. Sous nmap cette
valeur change tout le temps.
Conclusion
Lutz ne rivalise certes pas avec Nmap mais comme je l'ai dit au debut il
n'en a pas les pretentions. Il propose un certains nombre de fonctions
attrayantes qui font de lui une alternative tres interessante au scanneur de
Fyodor.
Bref si vous desirez changer d'air ou simplement avoir un complement a
Nmap alors Lutz est fait pour vous ;) |