Il Network scanning è l’insieme delle procedure che si attuano al fine di identificare gli host connessi, le porte aperte e i servizi attivi su di essi. Gli obbiettivi di questa operazione sono di trovare:
Visto che questo articolo vuole essere prettamente pratico, cercherò di dare delle spiegazioni più semplici possibili, e rimandare a eventuali approfondimenti per chi vuole anche studiare le basi.
Uno dei software più utilizzati per questa operazione è Nmap, esiste anche una versione con interfaccia grafica se la preferite, Zenmap.
Per prima cosa, bisogna ottenere l’ip del proprio dispositivo. In modo molto semplice basta digitare:
per Linux e Mac
ifconfig
per Windows
ipconfig
Il sistema darà una risposta simile a questa
root@kali:~$ ifconfig
eth0 Link encap:Ethernet HWaddr bd:7p:f4:18:03:8f
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:292 errors:0 dropped:0 overruns:0 frame:0
TX packets:292 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:44348 (44.3 KB) TX bytes:44348 (44.3 KB)
wlan0 Link encap:Ethernet HWaddr d3:6l:97:f6:b9:89
inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::f27d:68ff:fef5:b900/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:32942 errors:0 dropped:0 overruns:0 frame:0
TX packets:19042 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33729351 (33.7 MB) TX bytes:2374041 (2.3 MB)
dove:
E nel dettaglio:
Per trovare il range della rete, basterebbe fare un piccolo calcolo, ma per semplicità riporto la tabella tratta da Wikipedia
Nel mio caso, avendo come netmask 255.255.255.0 e come broadcast 192.168.1.255, so che la mia rete ha 256 indirizzi disponibili, quindi il primo indirizzo sarà 192.168.1.1, e infatti effettuando un ping
root@kali:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.991 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.27 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.940 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.926 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=2.04 ms
--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4001ms
rtt min/avg/max/mdev = 0.926/1.233/2.040/0.423 ms
è online e nessun pacchetto viene perso.
Utilizzando nmap per trovare chi è online nella rete, basta digitare (sempre nel mio caso)
nmap -sn -PE 192.168.1.1/24
dove:
Nmap ha un comando che racchiude al suo interno 4 diversi comandi. Include trovare il sistema operativo, la versione, scansione delle porte aperte e il traceroute. Digitando:
nmap -A 192.168.1.1/24
scansioniamo tutta la rete alla ricerca di informazioni. Attenzione: vi consiglio di non effettuarlo su una rete molto grande (università, lavoro, etc.) poiché è abbastanza lento. Cercate di farlo su reti piccole (e con le dovute autorizzazioni soprattutto).
Il risultato sarà simile a questo:
root@kali:~$ nmap -A 192.168.1.1/24
Starting Nmap 7.01 ( https://nmap.org ) at 2016-03-16 18:04 CET
Nmap scan report for 192.168.1.1
Host is up (0.020s latency).
Not shown: 993 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.0.8 or later
23/tcp open telnet TP-LINK ADSL2+ router telnetd
80/tcp open http TP-LINK http admin
|_http-title: Site doesn't have a title (text/html; charset=utf-8).
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
1900/tcp open upnp Portable SDK for UPnP devices 1.6.6 (Linux 2.6.32.32; UPnP 1.0)
20005/tcp open btx?
Service Info: Host: TP-LINK; OS: Linux; Device: WAP; CPE: cpe:/h:tp-link:td-w8968, cpe:/o:linux:linux_kernel:2.6.32.32
Host script results:
| smb-os-discovery:
| OS: Unix (Samba 3.0.14a)
| NetBIOS computer name:
| Workgroup: WORKGROUP
|_ System time: 2016-03-16T18:05:37+01:00
| smb-security-mode:
| account_used: guest
| challenge_response: supported
Nmap scan report for 192.168.1.101
Host is up (0.000074s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.6 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.4.6 (Ubuntu)
|_http-server-header: nginx/1.4.6 (Ubuntu)
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100024 1 37231/tcp status
|_ 100024 1 45783/udp status
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap scan report for 192.168.1.103
Host is up (0.022s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
62078/tcp open tcpwrapped
Nmap scan report for 192.168.1.106
Host is up (0.0037s latency).
All 1000 scanned ports on 192.168.1.106 are closed
---probabilmente è presente un firewall---
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 256 IP addresses (4 hosts up) scanned in 98.14 seconds
Se volete approfondire le diverse tecniche di scansione, potete leggere l'articolo di approfondimento. Prima di effettuare qualsiasi scansione vi consiglio di cambiare l’indirizzo mac del vostro dispositivo, in modo da poter non essere riconosciuti (a meno che non siate in una rete in cui vi è stato chiesto di inserire mail/numero di telefono, in quel caso sarete riconosciuti comunque).