elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Proteger contra solicitudes maliciosas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Proteger contra solicitudes maliciosas  (Leído 5,935 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Proteger contra solicitudes maliciosas
« en: 5 Marzo 2020, 13:50 pm »

Hace algunos días infectaron un servidor con un malware (ver https://blog.manchestergreyhats.co.uk/2018/11/07/php-malware-examination/), entonces llegue al blog de Jeff Starr (@perishable), en donde vi la siguiente entrada: https://perishablepress.com/protect-post-requests/.

Me llamo mucho la atención el poder ejecutar un script desde un .htaccess con la directiva ErrorDocument, así:
Código
  1. ErrorDocument <3-digit-code> <action>

Segun la entrada, ejecuta el script sí el retorno de la petición es 403 o 404
Código
  1. ErrorDocument 403 /error-handler.php
  2. ErrorDocument 404 /error-handler.php

Aquí es donde entra mi duda, entiendo que los codigos de respuesta 403 (Forbidden) y 404 (Not Found), pero si existe algun malware oculto en un archivo que si exista y se encuentre digamos index.php, como podría ejecutar el script si la petición arroja un codigo 200 (OK)?

La entrada de Jeff solo guarda peticiones POST por medio de file_get_contents('php://input'), necesito esto tanto como para POST y para GET. Alguna idea?


« Última modificación: 5 Marzo 2020, 16:17 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #1 en: 5 Marzo 2020, 15:27 pm »

La entrada de Jeff solo guarda peticiones POST por medio de file_get_contents('php://input'), necesito esto tanto como para POST y para GET. Alguna idea?

Hasta donde yo tengo entendido, lo que necesitas es un WAF.

Aquí es donde entra mi duda, entiendo que los codigos de respuesta 403 (Forbidden) y 404 (Not Found), pero si existe algun malware oculto en un archivo que si exista y se encuentre digamos index.php, como podría ejecutar el script si la petición arroja un codigo 200 (OK)?

El artículo en sí solo menciona ejemplos de como detectar posibles malas peticiones (por ejemplo, el user agent). Se queda muy corto en lo que yo consideraría posible SPAM y payloads para exploits y no hace mención a como automatizar el proceso (hasta donde yo leí, le di un vistazo rápido).

Básicamente, el inspecciona las peticiones recibidas, busca un patrón en las peticiones que considera son SPAM o dañinas y luego crea una regla para redirigir todas esas peticiones que encajen el patrón a una pagina de error 403, así las peticiones nunca llegan a tocar los scripts que intentaban tocar.

Es una estrategia muy rudimentaria. Si acaso, lo que puedes tomar de esto es que es buena idea inspeccionar tus peticiones antes de que lleguen a procesar los scripts.


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #2 en: 5 Marzo 2020, 15:37 pm »

Concuerdo con MinusFour, ese tipo de cosas no se recomienda validar desde el lado de la aplicación en php ya que una aplicación web solo debiera dedicarse a funcionar como servicio y nada mas, todos los puntos de control de seguridad adicional que no sea para mitigar una vulnerabilidad ya existente debiera hacerlo un waf, en este caso mod security por ejemplo.

Desde el apache puedes configurar que user agent quieres denegar, rangos de direcciones ip, cabeceras extrañas, peticones mal formadas, limpieza de variables, etc. Ten en cuenta que Apache carga las reglas en memoria, en cambio php debe leer e interpretar tus reglas y modificaciones cada ves que un usuario accede al sitio, por lo cual apache es mucho mas rápido y eficiente en el uso de memoria porque está diseñado para ello, no así php.

En Apache puedes configurar reglas de dos maneras, utilizando el htaccess o el host virtual. El .htaccess sólo sirve cuando necesitas especificar configuraciones muy puntuales para una aplicación web como por ejemplo el sistema de ruteo con mod rewrite, la ruta de los archivos de errores por defecto, etc, pero las configuraciones persistentes que ya no debieran depender de una aplicación específica como las reglas de seguridad debieran estar en el host virtual ya que estas se cargan una sola ves ahorrando latencia en las peticiones.

Por otro lado, tu primer link está caido, por otro lado debes tener en cuenta que debes atacar el problema raiz y es corregir la vulnerabilidad que se usó para hackear el sitio y darle un vistazo mas a profundidad sobre lo que pasó.

Saludos.
« Última modificación: 5 Marzo 2020, 15:39 pm por WHK » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #3 en: 5 Marzo 2020, 16:22 pm »

@MinusFour, entiendo.
@WHK no estaba caido jeje no use la etiqueta URL correctamente  :silbar:

En si, lo que paso es que hay un sitio con wordpress con buenas contraseñas, pluggins "seguros" (mejor aun, muy basicos para aplicarles exploits), y es la ultima versión. Lo que quiero es ver que peticiones envia el atacante para saber por donde esta ingresando ya que todo esta a la ultima versión.

Obviamente sin llamar la atención por WAF's ni nada de eso, para ver si existe un posible 0day de wordpress que anden usando.

Mi pregunta sigue siendo, analizar toda petición y guardarlo tipo log? Es decir, generar un script php que guarde información básica, por ejemplo:

-Generar este codigo es bastante sencillo lo que no sé, es como implementarlo para que en cada petición, sea cual sea, 200 403 404 etc... se llame el código-

Código:
IP: 88.190.61.193
HOST: 88-190-61-193.rev.horrible-host.com
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.92 Safari/537.4
Method: POST
Protocol: HTTP/1.0
POST Vars: name=AdhedAtmord&amp;email=east2013756%40mail.ru&amp;contact_submit=Send

Aunque sólo sea necesario a que archivo esta llamando y las peticiones sean GET o POST.
« Última modificación: 5 Marzo 2020, 16:24 pm por Shell Root » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #4 en: 5 Marzo 2020, 17:24 pm »

@MinusFour, entiendo.
@WHK no estaba caido jeje no use la etiqueta URL correctamente  :silbar:

En si, lo que paso es que hay un sitio con wordpress con buenas contraseñas, pluggins "seguros" (mejor aun, muy basicos para aplicarles exploits), y es la ultima versión. Lo que quiero es ver que peticiones envia el atacante para saber por donde esta ingresando ya que todo esta a la ultima versión.

Obviamente sin llamar la atención por WAF's ni nada de eso, para ver si existe un posible 0day de wordpress que anden usando.

Mi pregunta sigue siendo, analizar toda petición y guardarlo tipo log? Es decir, generar un script php que guarde información básica, por ejemplo:

-Generar este codigo es bastante sencillo lo que no sé, es como implementarlo para que en cada petición, sea cual sea, 200 403 404 etc... se llame el código-

Código:
IP: 88.190.61.193
HOST: 88-190-61-193.rev.horrible-host.com
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.92 Safari/537.4
Method: POST
Protocol: HTTP/1.0
POST Vars: name=AdhedAtmord&amp;email=east2013756%40mail.ru&amp;contact_submit=Send

Aunque sólo sea necesario a que archivo esta llamando y las peticiones sean GET o POST.

Lo mejor sería que no fuera parte de un script como resultado de una petición, sino que el servidor maneje todo esto por tí. Mod Security puede guardar las peticiones completas.

Por lo pronto, lo que puedes hacer es revisar los access logs por las URLs por la cual se acceden al backdoor. Con un poco de suerte hay información en común para encontrar como metieron el backdoor o por lo menos inspeccionar que estaban haciendo antes de usar el backdoor.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #5 en: 5 Marzo 2020, 17:32 pm »

Entiendo @MinusFour, el lio esta en que no tengo todos los permisos necesarios para instalarlo. Por eso queria si o si un script simple. Buscaré alguna solución.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
MinusFour
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.529


I'm fourth.


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #6 en: 5 Marzo 2020, 18:02 pm »

Entiendo @MinusFour, el lio esta en que no tengo todos los permisos necesarios para instalarlo. Por eso queria si o si un script simple. Buscaré alguna solución.

En el caso de wordpress, debe ser posible agregar logs a través de un plugin. Lo único es que estás limitado solo al acceso por medio de wordpress. No se si wordpress tenga "early hooks" para colgarse antes de todos (por si algo falla antes de ejecutarse el plugin), pero yo empezaría por ahí.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #7 en: 5 Marzo 2020, 19:39 pm »

Si no puedes controlar la seguridad de tu propio sitio debieras considerar cambiar de hosting, talves a un vps y crear tus propias reglas de seguridad.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #8 en: 5 Marzo 2020, 19:57 pm »

Si no puedes controlar la seguridad de tu propio sitio debieras considerar cambiar de hosting, talves a un vps y crear tus propias reglas de seguridad.
No es eso, solo me contrataron pero no me dieron todos los permisos, solo puedo editar y subir archivos por ftp. Por eso quiero hacer algo simple mi propio log de peticiones.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Proteger contra solicitudes maliciosas
« Respuesta #9 en: 20 Marzo 2020, 16:19 pm »

Como me sospechaba, siempre eliminaba las rutas y archivos "infectados" (includes a un archivo malicioso) y volvia a aparecer. El sitio usa WordPress a una versión anterior a la actual. Genere un codigo básico y lo agregue en el archivo /public_html/xxx/wp-blog-header.php y pude captar la siguiente petición:

Código
  1. [Request   : 2020/03/19 11:34:40]
  2. User-Agent : Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
  3. Ip Address : 85.10.245.113
  4. Method     : POST
  5. URL        : xxx .com/?uhl=pzdem
  6. Params     :
  7.    sjcvfu = cDVjKSVjcG90NTZvejRtf2wxN3BvPGRqLXFhJCYoYzNjJmQ2c2pjdmZ1c2pjdmZ1c2pjdmZ1c2pjdmZ1c2pjdmZ1c2pjdmZ1MzQs
  8.  
  9. --
  10.  
  11. [Request   : 2020/03/19 15:11:50]
  12. User-Agent : Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_2 like Mac OS X) AppleWebKit/603.2.4 (KHTML, like Gecko) Version/10.0 Mobile/14F89 Safari/602.1
  13. Ip Address : 35.187.121.58
  14. Method     : POST
  15. URL        : xxx .com/?fcfrm=dmhgv
  16. Params     :
  17.    bi = YTZiNiF/YWx1KjJzazdsYGgtJnNuI2B2PHJgOyI0cjBiOWAqYmliaWJpYmliaWJpYmliaWJpYmliaWJpYmliaWJpYmliaWJpIjct

Buscando patrones de malware ofuscado encontre esto:

https://ghostbin.co/paste/9kotok39
pass: n4
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
proteger un programa de VB contra el crackeo « 1 2 3 »
Programación Visual Basic
Krnl64 22 8,055 Último mensaje 27 Julio 2006, 18:13 pm
por LuckyMonkey
Google quiere proteger Chrome contra las descargas maliciosas
Noticias
wolfbcn 2 2,102 Último mensaje 7 Abril 2011, 17:34 pm
por chillinfart
Las solicitudes contra descargas P2P de Google crecen imparables
Noticias
wolfbcn 0 1,054 Último mensaje 3 Noviembre 2014, 18:06 pm
por wolfbcn
¿Proteger tu WI-FI contra VIRUS?
Redes
Usuario Indes## 4 2,239 Último mensaje 11 Agosto 2015, 14:33 pm
por Usuario Indes##
proteger USB contra copias
Dudas Generales
pokchino 2 4,680 Último mensaje 21 Agosto 2015, 20:04 pm
por pokchino
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines