Chrooter apache
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Graver en ligne de commande
Astuces
Astuces en Bash
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
 
Toutes les traductions
Toutes les traductions
Hackin9

Il y a actuellement 5 visiteurs connectés sur le site !

Google
TCP/IP Les outils de base
Les outils de base

 

Ping
Arp
Route
Netstat
Lsof
Traceroute
Telnet
Ftp
Tcpdump
Nmap
Ntop

 

Ping

La commande ping vérifie si une machine distante répond en lui envoyant des paquets ICMP ECHO_REQUEST. La syntaxe est des plus simple ; par exemple pour envoyer 5 pings à la machine dont l'adresse IP est 192.168.0.1, on tape la commande suivante :

$ ping -c 5 192.168.0.1

On peut aussi utiliser le nom de la machine, si celle-ci est renseignée dans votre fichier Hosts ou sur un serveur DNS.
Ne pas oulbier hping2 qui est un outil réseau capable d'envoyer des paquets TCP/UDP/ICMP sur commande et d'afficher les réponses de la cible comme le programme ping le fait avec les réponses ICMP.
hping2 traite la fragmentation, les contenus de paquets et les tailles arbitraires et peut être utilisé dans le but de transférer des fichiers encapsulés dans les protocoles supportés. En utilisant hping2 vous êtes capa­ bles au moins d'effectuer au moins les tâches suivantes :
- Tester les règles d'un firewall
- Scanner des ports [en usurpant une adresse]
- Tester les performances réseau en utilisant différents protocoles, tailles de paquets, TOS (type de service) et fragmentation.
- Découverte de "Path MTU"
- Transférer des fichiers même au travers de règles de firewall réellement fachistes.
- Comme traceroute avec différents protocoles.
- Utilisation comme Firewalk.
- Détermination d'OS à distance.
- Audit de pile TCP/IP.
- Beaucoup d'autres.

Pour les options de hping http://www.groar.org/trad/hping/hping2-beta54/french/hping2-fr.8.txt

Arp

La commande arp permet de mettre en correspondance des adresses IP et les adresses MAC en manipulant la table ARP du système. Sa syntaxe simplifiée se présente comme suit :

arp [-vn] [-i if] [-H type] -a [nom_machine]
arp [-v] [-H type] [-i if] -d nom_machine
arp [-v] [-H type] [-i if] -s nom_machine adre_mac
Les options les plus importantes sont :

-a [nom_machine] : afficher les entrées concernant la machine spécifiée et si une machine n'est pas spécifiée, toutes les entrées ARP de la table
-d nom_de_la_machine : pour supprimer de la table une entrée pour la machine spécifiée ;
arp -s nom_machine adr_mac : crée manuellement une correspondance d'adresse ARP pour la machine nom_machine avec l'adresse matérielle (MAC) positionnée à adr_mac

route

La commande route, tout comme ifconfig sert à la fois à connaître l'état de la table de routage de l'hôte et à configurer de nouvelles routes au besoin.
Une commande équivalente est netstat -r. La commande affiche la table de routage et effectue la résolution de nom dès que possible.
Les commandes route -n ou netstat -rn affichent le table de routage sans résolution de nom.

Exemple :
route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 10 0 0 eth1
82.216.92.0 * 255.255.252.0 U 10 0 0 eth0
default ip-1.net-82-216 0.0.0.0 UG 10 0 0 eth0
route -n

Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 10 0 0 eth1
82.216.92.0 0.0.0.0 255.255.252.0 U 10 0 0 eth0
0.0.0.0 82.216.92.1 0.0.0.0 UG 10 0 0 eth0

Pour info : U = routeur installé et opérationnel ; G = passerelle distante ; H = destination est un hôte et non un réseau.
Un examen de la table de routage vous permet de vérifier par exemple que la machine sur laquelle vous travaillez et qui se situe derrière une passerelle a bien une route par défaut qui lui permet d'aller vers l'extérieur (Destination : default).
Vous ne pouvez pas atteindre l'extérieur car vous n'avez pas cette route, 2 solutions :
* vous ajoutez la route pour la session en cours :
route add default gw adresseIP_de_la_passerelle
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route pour toutes les sessions : /etc/sysconfig/network
Vous ne pouvez pas atteindre l'extérieur car vous avez une route erronée, 2 solutions :
* vous modifiez la route pour la session en cours :
route del default gw adresseIP_de_la_passerelle_erronée
route add default gw adresseIP_de_la_passerelle_correcte
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route correcte pour toutes les sessions : /etc/sysconfig/network

 

Netstat

Cette commande affiche les connexions réseau, les tables de routage, les statistiques des interfaces, les connexions masquées. Elle permet en effet de connaître les ports en écoute sur votre machine, sur quelles interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes. Elles a un grand nombre d'options (cf man netstat).

Pour voir les connexions actives :

$ netstat -nt

Pour voir les ports ouverts :

$ netstat -ntl
On peut aussi vérifier s'il existe une route par défaut, par exemple existe-t-il une route par défaut vers la machine 195.98.246.28 en utilisant la commande comme suit :

$ netstat -nr | grep 195.98.246.28
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur.
L'option -i donne des informations sur les interfaces réseau.

 

Lsof:

La commande lsof permet de lister les fichiers ouverts et les processus actifs.

Pour indiquer les processus de type internet :
$ lsof -i

On peut ne demander que pour un protocole lsof -ni tcp:25 ou que vers une machine :

$ lsof -ni @192.168.0.1:25
Pour connaître tous les fichiers ouverts par sur /hda1 :

$ lsof /dev/hda1.
Pour connaître tous les ports réseau ouvert par le processus 1234 (-a est interprété comme AND) :

$ lsof -i -a -p 1234
La forme suivante de la commande permet de connaître tous les fichiers ouverts par l'utilisateur 500 ou toto ou par le processus 1234 ou 12345.
$ lsof -p 1234, 12345 -u 500, toto

Traceroute

La commande route, tout comme ifconfig sert à la fois à connaître l'état de la table de routage de l'hôte et à configurer de nouvelles routes au besoin.
Une commande équivalente est netstat -r. La commande affiche la table de routage et effectue la résolution de nom dès que possible.
Les commandes route -n ou netstat -rn affichent le table de routage sans résolution de nom.

Exemple :
route
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 * 255.255.255.0 U 10 0 0 eth1
82.216.92.0 * 255.255.252.0 U 10 0 0 eth0
default ip-1.net-82-216 0.0.0.0 UG 10 0 0 eth0
route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 10 0 0 eth1
82.216.92.0 0.0.0.0 255.255.252.0 U 10 0 0 eth0
0.0.0.0 82.216.92.1 0.0.0.0 UG 10 0 0 eth0

Pour info : U = routeur installé et opérationnel ; G = passerelle distante ; H = destination est un hôte et non un réseau.
Un examen de la table de routage vous permet de vérifier par exemple que la machine sur laquelle vous travaillez et qui se situe derrière une passerelle a bien une route par défaut qui lui permet d'aller vers l'extérieur (Destination : default).
Vous ne pouvez pas atteindre l'extérieur car vous n'avez pas cette route, 2 solutions :
* vous ajoutez la route pour la session en cours :
route add default gw adresseIP_de_la_passerelle
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route pour toutes les sessions : /etc/sysconfig/network
Vous ne pouvez pas atteindre l'extérieur car vous avez une route erronée, 2 solutions :
* vous modifiez la route pour la session en cours :
route del default gw adresseIP_de_la_passerelle_erronée
route add default gw adresseIP_de_la_passerelle_correcte
* vous modifiez le fichier de configuration du routage de manière à ce que la table contienne la route correcte pour toutes les sessions : /etc/sysconfig/network

Telnet

Telnet permet d'acceder à une machine distante. C'est aussi un excellent outil de diagnostic et de vérification du fonctionnement ou non d'un service en se connectant sur son port. Il permet également de vérifier la validité d'une règle de firewall.
La syntaxe : telnet
Exemple :
Je souhaite vérifier le bon fonctionnement de mon service ftp. Après vérification dans /etc/services, je sais que le port correspondant au serveur ftp est le 21.
* 1er cas de figure :
telnet 192.168.0.3 21
Trying 192.168.0.3...
Connected to 192.168.0.3.
Escape character is '^]'.
220 ProFTP Server Ready
La connexion est réussie, le serveur est opérationnel.
* 2e cas de figure :
telnet 192.168.0.3 21
Trying 192.168.0.3...
telnet: connect to address 192.168.0.3: Connection refused
La connexion est impossible, le service n'est pas disponible.

Ftp

ftp est un outil qui permet de télécharger des fichiers entre machines. Attention toutefois le serveur ftp pose un problème de sécurité important, utilisez plutôt SFTP, qui est disponible avec SSH.

Tcpdump :

Il s'agit d'un outil qui permet de visualiser les paquets qui circulent vers et/ou à partir d'une interface réseau et ce, en temps réel.
C'est à la fois un outil de diagnostic sécurité mais aussi un outil de détection d'anomalies de la configuration IP ou matérielle.
# tcpdump
tcpdump: listening on eth0
Il est possible de sélectionner les paquets à "écouter" en fonction d'expressions. Ainsi, ne seront affichées / traitées que les informations pour lesquelles le résultat de l'expression est vérifié. Une expression est composée d'un mot clé suivi d'une valeur numérique ou autre. Ainsi, il est possible de classer les mots clés en catégories :
# Les mots clés permettant de définir une direction. Entrent dans cette catégorie les mots src (source) et dst (destination). Il est possible de combiner ces deux mots clés avec les opérations logiques and (et) et or (ou). On peut ainsi définir avec précision la source et/ou la destionation des paquets qui nous intéressent.
# Les mots clés permettant de définir le type de valeur que nous préciserons. Il peut s'agir d'un hôte (host), d'un réseau (net) ou encore d'un port (port).
# Enfin, nous avons les mots clés concernant les protocoles. Ici, les mots sont suffisamment clairs pour se passer d'explications (par exemple, ip, tcp, udp ...)
Si tout ceci ne vous paraît pas limpide, nous allons tâcher de clarifier cela avec quelques exemples :
# tcpdump src 192.168.0.1
Ici, les seuls paquets affichés sont ceux en provenance de 192.168.0.1. Nous pouvons également préciser nos préférences en ajoutant un critère :
# tcpdump src 192.168.0.1 and port 80
Là, le seul port qui nous intéresse est 80 (http). Si nous poussons le vice, nous pouvons spécifier l'ensemble des paramètres nécessaires :
# tcpdump src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp
Voici une ligne complète qui ne laisse vraiment passer que les paquets qui nous intéressent, c'est à dire, en provenance de 192.168.0.1 vers 212.208.225.1, sur le port 53 en udp. Et ce qui nous intéresse ici, ce sont les requêtes sur le serveur DNS du provider Internet.
Pour faire vos tests, utilisez cette commande (adaptée à vos besoins) sur une console virtuelle et sur une seconde console, lancez une requête sur le serveur DNS (nslookup www.linux.org par exemple). Vous verrez alors apparaître des lignes ressemblant à ceci sur la première console :
tcpdump: listening on eth0

22:33:29.070616 raven.32778 > ns1.rmcnet.fr.domain: 47038+[|domain] (DF)
22:33:29.072863 raven.32779 > ns1.rmcnet.fr.domain: 45315+[|domain] (DF)
22:33:29.128966 raven.32780 > ns1.rmcnet.fr.domain: 47039+[|domain] (DF)

Pour poursuivre avec cet exemple, nous allons maintenant utiliser deux des options de la commande tcpdump. Attention, il s'agit d'options qui ne concernent en rien la composition des expressions de filtrage :
# tcpdump -x -X -s 0 src host 192.168.0.1 and dst host 212.208.225.1 and port 53 and udp
Nous avons demandé l'affichage du contenu des paquets au format hexadécimal et ascii (-x -X) et ce, quelle que soit leur taille (-s 0). Nous obtenons les informations désirées
Mais la partie la plus interessante concerne les accès à un serveur POP3. Comme nous l'avons fait pour l'exemple précédent, nous pouvons capturer le contenu de paquets à destination d'un serveur POP3
# tcpdump -X -s 0 dst host 192.168.0.10 and src host 192.168.0.1 and port 110 and tcp
Et voici le suprenant résultat :

20:51:50.690745 193.253.217.180.42034 > 193.252.19.209.pop3: P 0:11(11) ack 79 win 5808 (DF)
0x0000 4500 003f 0000 4000 4006 c939 c1fd d9b4 E..?..@.@..9....
0x0010 c1fc 13d1 a432 006e b862 482d 520a 6b11 .....2.n.bH-R.k.
0x0020 8018 16b0 c3cf 0000 0101 080a 00a9 c278 ...............x
0x0030 0bfa 1f75 7573 6572 206f 6b6b 690d 0a ...uuser.bidon..
20:51:50.745300 193.253.217.180.42034 > 193.252.19.209.pop3: P 11:25(14) ack 84 win 5808 (DF)
0x0000 4500 0042 0000 4000 4006 c936 c1fd d9b4 E..B..@.@..6....
0x0010 c1fc 13d1 a432 006e b862 4838 520a 6b16 .....2.n.bH8R.k.
0x0020 8018 16b0 33d0 0000 0101 080a 00a9 c27e ....3..........~
0x0030 0bfa 1f7a 7061 7373 2079 746b 6b76 7875 ...zpass.coucou

0x0040 0d0a

La partie intéressante est bien sûr les deux derniers paquets. On lit clairement dans leur contenu ASCII les mentions "user.bidon" et surtout, "pass.coucou". En effet, dans la RFC 1725 décrivant le protocole Post Office en Version 3 (POP3), on découvre que les informations d'identification et d'authentification circulent de manière non chiffrée entre le client et le serveur.
Il serait possible en une seule journée de récupérer, grâce à tcpdump et un script Perl ou Awk, l'ensemble des noms d'utilisateurs et des mots de passe POP3 de toutes les personnes possédant un compte email dans une entreprise. Mais, dans la réalité, ceci est encore plus simple ...

Nmap :

nmap est un outil pour scanner les ports ouverts sur une machine distante. Son utilisation est des plus simple :

Pour scanner une machine
$ nmap 192.168.0.1

Pour scanner les machines se trouvant dans le plan d'adressage 192.168.0.0/24 :

$ nmap 192.168.0.0/24

Utilisez l'option -v pour avoir plus d'informations. On peut bien sûr ne scanner que certains protocoles, par défaut le protocole scanné est TCP. Pour scanner les deux, TCP et UDP :

$ nmap -v -sU -sT 192.168.0.1

Les options disponibles sont :
-sT Scanne les ports TCP -sU pour UDP (attention cela est inscrit dans les fichiers de log de la machine cible).
-sS Est identique au précédent sauf que cela ne laisse pas de trace. (il y a une différence quant à la méthode mais cela n'est pas l'objet de cette présentation).

-sP En fait un ping.

-p 20-140 Ne scanne que les ports entre 20 et 140 ;

-p 1024- scanne tous les ports à partir de 1024 ;

-I Pour avoir plus d'information sur le port ouvert, ne marche que si identd n?est pas utilisé sur la machine cible.

-O Permet de connaître l?os (voir aussi ?osscan_guess).

-P0 Permet de scanner les machines qui n?autorisent pas les ICMP echo request.

[root@aleu philippe]# nmap -v -sU -sT 192.168.200.1
Starting nmap V. 2.30BETA17 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host (192.168.200.1) appears to be up ... good.
Initiating TCP connect() scan against (192.168.200.1)
Adding TCP port 139 (state Open).
Adding TCP port 25 (state Open).
Adding TCP port 110 (state Open).
Adding TCP port 21 (state Open).
Adding TCP port 135 (state Open).
Adding TCP port 80 (state Open).
Adding TCP port 1026 (state Open).
The TCP connect scan took 1 seconds to scan 1534 ports.
Initiating FIN,NULL, UDP, or Xmas stealth scan against (192.168.200.1)
The UDP or stealth FIN/NULL/XMAS scan took 4 seconds to scan 1534 ports.
Interesting ports on (192.168.200.1):
Port State Service
21/tcp open ftp
25/tcp open smtp
80/tcp open http
110/tcp open pop-3
135/tcp open loc-srv
137/udp open netbios-ns
138/udp open netbios-dgm
139/tcp open netbios-ssn
1026/tcp open nterm
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds

Il n'est pas installé par défaut sur votre machine, mais on commence à le trouver sur le CD d'installation des distributions. Il existe une interface graphique (installer nmap-frontend en version rpm).
Evitez de scanner des machines qui ne sont pas vos machines. Ce produit a pour vocation de vérifier si votre machine est correctement configurée, pas pour tester les autres.

Ntop :

Un outil indispensable. Il tourne comme daemon et vous pouvez voir les résultats (entre autre ) via une interface web par défaut sur le port 3000 qu'il est possible de changer avec l'option -w.

Sources de l'article


 

Forum d'entraide
Les news du site
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
Azureus pas-a-pas
Lire les news de Linux-pour-lesnuls.com au format RSS
Gestion des paquets debian
101 commandes debian
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Ensemble
Divers