sudo apt-get update && sudo apt-get install arp-scan nmap
La commande ip a permet de connaître la configuration réseau de la machine courante:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:0c:29:70:34:f0 brd ff:ff:ff:ff:ff:ff
inet 172.16.80.128/24 brd 172.16.80.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe70:34f0/64 scope link
valid_lft forever preferred_lft forever
L'interface ens33 est ici active et possède une adresse IP.
La commande suivante permet de découvrir toutes les machines sur le voisinage réseau:
sudo arp-scan --interface=ens33 172.16.80.1/24
Son exécution donne la sortie ressemblant à ceci :
Starting arp-scan 1.9 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
172.16.80.1 00:50:56:c0:00:02 VMware, Inc.
172.16.80.2 00:50:56:f4:f4:8a VMware, Inc.
172.16.80.254 00:50:56:e2:3f:0c VMware, Inc.
3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.9: 256 hosts scanned in 1.871 seconds (136.83 hosts/sec). 3 responded
Ecrivez un script scan-if qui va prendre un paramètre: le numéro de l'interface réseau donné par ip a. Dans l'exemple précédent, 2 donne l'interface ens33
L'appel du script donnera la sortie suivante:
$ scan-if 2
172.16.80.1 00:50:56:c0:00:02 VMware, Inc.
172.16.80.2 00:50:56:f4:f4:8a VMware, Inc.
172.16.80.254 00:50:56:e2:3f:0c VMware, Inc.
Exécutez ce script en branchant votre machine sur différents réseaux.
Note: pour redémarrer l'interface réseau, utilisez sudo systemctl restart networking
La commande suivante:
sudo nmap -O -sV 172.16.80.128
donne la sortie:
Starting Nmap 7.40 ( https://nmap.org ) at 2018-01-24 01:17 CET
Nmap scan report for 172.16.80.128
Host is up (0.000036s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.25 ((Debian))
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.8 - 4.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.29 seconds
Etudiez le manuel de nmap pour déterminer à quoi servent les différents paramètres:
-O-sVEst-il possible de ne scanner que le port 22 ?
Essayez de scanner avec le paramètres -Pn si les informations de l'OS n'apparaissent pas.
Tentez d'utiliser le paramètre -T4 : que provoque-t-il ?
Vous allez reprendre le script précédent.
Cette fois, pour chaque IP, si la machine possède un port ssh ouvert, tentez une connexion en utilisant votre clef SSH et votre login.
Sur chaque machine cible, lancez une commande permettant de récuperer le contenu du fichier /etc/resolv.conf et d'en récuperer les nameserver (DNS).
Votre script devra lister ces nameserver pour les machines auxquelles elle aura réussi à se connecter. L'OS de la machine doit également être affiché.
Si la connexion à la machine est impossible, afficher N/A pour la valeur du nameserver
Ajoutez un affichage des noms des colonnes:
$ scan-deep 2
Target OS nameserver
172.16.80.1 "Apple iOS 10" N/A
172.16.80.2 "VMware Player virtual NAT device" N/A
172.16.80.254 "Linux 3.8 - 4.6" 172.16.80.2