Présentation
Un réseau est composé d’appareils et d’infrastructures sujets à détérioration. Cela peut entraîner une panne et une faible performance dans le temps. Un bon moyen d’éviter toute défaillance consiste à surveiller le réseau pour les nœuds faibles et les mauvaises performances.
Un réseau est également sujet à des attaques, soit pour être mis hors service, soit pour ses ressources comme la puissance de traitement ou les données secrètes. Pour ce type d’événements, il existe une surveillance de sécurité comme la détection d’intrusion.
NMAP1
Nmap (Network Mapper) est un scanner de réseau créé par Gordon Lyon (également connu sous son pseudonyme Fyodor Vaskovich)2. Nmap est utilisé pour découvrir des hôtes et des services sur un réseau informatique en envoyant des paquets et en analysant les réponses.
Nous pouvons trouver l’article original du projet nmap ici: https://nmap.org/nmap-fingerprinting-article.txt
Ceci provient de l’aide de NMAP, nous allons prendre tout cela et essayer de créer une commande qui nous donnera des informations utiles sur notre cible.
HOST DISCOVERY:
-sL: List Scan - simply list targets to scan
-sn: Ping Scan - disable port scan
-Pn: Treat all hosts as online -- skip host discovery
-PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
-PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
-PO[protocol list]: IP Protocol Ping
-n/-R: Never do DNS resolution/Always resolve [default: sometimes]
--dns-servers <serv1[,serv2],...>: Specify custom DNS servers
--system-dns: Use OS's DNS resolver
--traceroute: Trace hop path to each host
SCAN TECHNIQUES:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-sN/sF/sX: TCP Null, FIN, and Xmas scans
--scanflags <flags>: Customize TCP scan flags
-sI <zombie host[:probeport]>: Idle scan
-sY/sZ: SCTP INIT/COOKIE-ECHO scans
-sO: IP protocol scan
-b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
-p <port ranges>: Only scan specified ports
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>: Exclude the specified ports from scanning
-F: Fast mode - Scan fewer ports than the default scan
-r: Scan ports consecutively - don't randomize
--top-ports <number>: Scan <number> most common ports
--port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
-sV: Probe open ports to determine service/version info
--version-intensity <level>: Set from 0 (light) to 9 (try all probes)
--version-light: Limit to most likely probes (intensity 2)
--version-all: Try every single probe (intensity 9)
--version-trace: Show detailed version scan activity (for debugging)
Il y a aussi quelques exemples à la fin de la page comme ceci :
EXAMPLES:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
Je vais effectuer une série de tests pour voir si nmap peut renvoyer avec précision le système d’exploitation des différentes machines virtuelles que j’ai sur le réseau.
sudo nmap -O --osscan-guess 192.168.0.xxx
Voici une installation de Windows 11:
Running (JUST GUESSING): Microsoft Windows XP|7|2008 (87%)
OS CPE: cpe:/o:microsoft:windows_xp::sp2 cpe:/o:microsoft:windows_7 cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_2008:r2
Aggressive OS guesses: Microsoft Windows XP SP2 (87%), Microsoft Windows 7 (85%), Microsoft Windows Server 2008 SP1 or Windows Server 2008 R2 (85%), Microsoft Windows Fundamentals for Legacy PCs (XP Embedded derivative) (85%)
No exact OS matches for host (test conditions non-ideal).
Voici une installation de pfsense qui s’exécute sur freebsd :
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
Voici un serveur samba ubuntu :
Aggressive OS guesses: Linux 2.6.32 (96%), Linux 3.2 - 4.9 (96%), Linux 2.6.32 - 3.10 (96%), Linux 3.4 - 3.10 (95%), Linux 3.1 (95%), Linux 3.2 (95%), AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), Synology DiskStation Manager 5.2-5644 (94%), Netgear RAIDiator 4.2.28 (94%), Linux 2.6.32 - 2.6.35 (94%)
No exact OS matches for host (If you know what OS is running on it, see
https://nmap.org/submit/ ).
Voici un macbook air :
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.65 seconds
Voici un OsX High-Siera :
Aggressive OS guesses: Apple OS X 10.11 (El Capitan) - 10.12 (Sierra) or iOS 10.1 - 10.2 (Darwin 15.4.0 - 16.6.0) (97%), Apple iOS 11.0 (95%), Apple TV 5 (95%), Apple Mac OS X 10.7.0 (Lion) - 10.12 (Sierra) or iOS 4.1 - 9.3.3 (Darwin 10.0.0 - 16.4.0) (94%), Apple TV 5.2.1 or 5.3 (93%), Apple iOS 9.0 (Darwin 15.0.0) (90%), Apple macOS 10.12.5 (Sierra) (90%), Apple iOS 5.0.1 (90%), Apple Mac OS X 10.7.4 - 10.7.5 (Lion) (Darwin 11.4.2) (90%), Apple Mac OS X 10.7.0 - 10.7.5 (Lion) or iOS 4.2 - 5.0.1 (Darwin 10.4.0 - 11.4.2) (90%)
No exact OS matches for host (If you know what OS is running on it, see
https://nmap.org/submit/ ).
Voici un Samsung Android :
Aggressive OS guesses: Android 5.0 - 6.0.1 (Linux 3.4) (99%), Android 4.2.2 (Linux 3.4) (97%), Linux 3.2 - 3.16 (96%), Linux 3.2 - 4.9 (96%), Android 4.1 - 6.0 (Linux 3.4 - 3.14) (96%), Android 5.0 - 7.0 (Linux 3.4 - 3.10) (96%), Android 5.1 (96%), Android 6.0.1 (Linux 3.18) (96%), Android 5.0.1 (Linux 3.10) (95%), Linux 2.6.32 (95%)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
Voici une prise intelligente :
Aggressive OS guesses: NodeMCU firmware (lwIP stack) (93%), Grandstream GXP1105 VoIP phone (92%), Philips Hue Bridge (lwIP stack v1.4.0) (92%), Ocean Signal E101V emergency beacon (FreeRTOS/lwIP) (91%), Espressif esp8266 firmware (lwIP stack) (91%), lwIP 1.4.0 lightweight TCP/IP stack (91%), Rigol DSG3060 signal generator (91%), Advanced Illumination DCS-100E lighting controller (90%), Enlogic PDU (FreeRTOS/lwIP) (90%), Yamaha RX-V671 AV receiver (89%)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
Ainsi, comme nous pouvons le constater, nmap est un outil très puissant pour la détection de vulnérabilités telles que les ports ouverts, le type de système et la version de services, des informations qui, si elles sont entre de mauvaises mains, peuvent faire beaucoup de mal.
SNMP3
Le protocole SNMP (Simple Network Management Protocol) est un protocole Internet standard permettant de collecter et d’organiser des informations sur les périphériques gérés sur les réseaux IP et de modifier ces informations pour modifier le comportement des périphériques. Les périphériques qui prennent généralement en charge SNMP incluent les modems câble, les routeurs, les commutateurs, les serveurs, les postes de travail, les imprimantes, etc.
SNMP est largement utilisé dans la gestion de réseau pour la surveillance du réseau. SNMP expose les données de gestion sous la forme de variables sur les systèmes gérés organisés dans une base d’informations de gestion (MIB) qui décrivent l’état et la configuration du système. Ces variables peuvent ensuite être interrogées à distance (et, dans certaines circonstances, manipulées) par la gestion des applications.
SNMP est un composant de la suite de protocoles Internet telle que définie par l’Internet Engineering Task Force (IETF)4. Il se compose d’un ensemble de normes de gestion de réseau, y compris un protocole de couche application, un schéma de base de données et un ensemble d’objets de données.
Grâce à une machine virtuelle Debian et un router virtuell Cisco je vais réaliser un réseau virtuel sur lequel je vais tester SNMP.
name | address |
---|---|
debian | 192.168.100.250 |
cisco v1000 | 192.168.100.254 |
J’utiliserai la machine debian comme gestionnaire SNMP, il lui faudra le démon SNMP que j’installerai avec la commande suivante :
sudo apt install snmp snmpd
Après l’installation de nos services, nous devons les activer et les démarrer :
sudo systemctl enable --now snmpd
Le fichier de configuration se trouve dans /etc/snmp/snmpd.conf
sudo nano /etc/snmp/snmpd.conf
Je vais apporter ces modifications au fichier :
agentaddress udp:161
rocommunity my-lab default -V systemonly
Et redémarrage du service :
sudo systemctl restart snmpd
De l’autre côté, j’ai un routeur Cisco virtuel.Sur lequel je vais essayer voir certains OID. (identifiant d’objet)
Pour configurer le routeur Cisco, je vais d’abord vérifier que les interfaces existent, puis les configurer et ensuite configurer le client SNMP.
en
sh interfaces
conf t
int gi 1
ip add 192.168.100.254 255.255.255.0
exit
int gi 2
ip add 192.168.200.254 255.255.255.0
end
wr
reload
en
conf t
snmp-server community my-lab ro
snmp-server enable traps
snmp-server host 192.168.100.250 my-lab
Une des premières requêtes:
Voici une requête concernant les interfaces :
Il s’agit d’un parent qui a beaucoup d’identifiants d’objets si vous souhaitez parcourir, je suggérerais de rediriger le contenu vers “less” comme ceci :
snmpwalk -On -c my-lab -v1 192.168.100.254 1.3.6.1.4.1.9.9 | less
Cet objet enfant a les paramètres du client snmp, je l’ai trouvé en parcourant le parent :
Les objets au format snmp suivent une structure hiérarchique simple où vous avez une structure arborescente avec un tronc et des branches qui dérivent de ce tronc. En théorie vous pouvez imprimer si vous le souhaitez tous les objets existant dans une structure en lançant la commande à la racine de la structure de l’objet. Je vous suggère de le faire en ajoutant le tuyau et l’utilitaire “less”.
Voici l’objet parent pour Cisco :
snmpwalk -On -c my-lab -v1 192.168.100.254 .1.3.6.1.4.1.9 | less
Pour vous aider à trouver ce que chacun des objets représente:
Descripteurs d’objets : https://cric.grenoble.cnrs.fr/Administrateurs/Outils/MIBS/?oid=cisco
Insecure Consortium : https://insecure.org/ ↩︎
Phrack Magasine : http://www.phrack.org/issues/70/1.html ↩︎
SNMP wiki : https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol ↩︎
Internet Engineering Task Force : https://en.wikipedia.org/wiki/Internet_Engineering_Task_Force ↩︎