lunes, septiembre 08, 2025
miércoles, febrero 07, 2024
Amazon Web Services (AWS): Hardening de Infraestructuras Cloud Computing en @0xWord
Figura 3: Índice del libro "Amazon Web Services (AWS):
![]() |
Figura 5: Perfil de 0xWord en MyPublicInbox. Opción de "Añadir a la Agenda". https://MyPublicInbox.com/0xWord |
![]() |
Figura 6: Cuando lo agregues estará en tu agenda |
Publicado por
Chema Alonso
a las
6:01 a. m.
0
comentarios
Etiquetas: 0xWord, Amazon, AWS, Cloud, Cloud computing, Firewall, firewalls, fortificación, hardening, libro, Libros, MyPublicInbox, Tempos, WAF
martes, noviembre 17, 2020
La importancia de los laboratorios para aprender hacking y un WAF como modSecurity a prueba
![]() |
Figura 2: Libro de Docker: SecDevOps de Fran Ramírez, Rafael Troncoso y Elías Grande |
Muchos me habrán escuchado decir que no vale de nada que yo lo haga, que yo ya lo hice muchas veces, que tienes que probarlo tú, hacer el conocimiento tuyo, hacerlo interno, entenderlo a base de encontrarte problemas cuando al profesor no se le presentaron dichos problemas. Creo que en algún minuto de este video se puede ver justo lo que comento.
Figura 3: Pablo González en CiberCamp 2018: Aquellos años locos
No creáis que hoy me he levantado nostálgico o que voy a dejar algo que me llena tanto como seguir conociendo al talento, al potencial que hay detrás de cada historia que se sienta a ver lo que éste joven les tiene que contar. Solo quería dar pie al artículo técnico que quería contar hoy y es que hoy quiero hablar de la importancia de montarte tus laboratorios y aprender. Hoy quiero dar respuesta a algunas consultas que me llegan y que me preguntan por mi buzón de MyPublicInbox por algún consejo para aprender, para iniciarse, para entrar en este mundo tan apasionante, por consultas de alguno de mis libros, etcétera.
- Una máquina Ubuntu a la que instalaremos modsecurity.
- Una máquina Kali Linux 2020 a la cual llamaremos “la mala”.
- Un entorno web vulnerable al que ayudaremos a proteger.
Instalando ModSecurity: Manos a la obra
Vamos a instalar ModSecurity. Haremos un resumen y una instalación sencilla, ya que el proceso se puede complicar hasta límites, en algunos casos, insospechados. A continuación, se resumen el proceso de instalación de un Apache con :
- Instalar apache2 y modsecurity a través de Ubuntu con apt install. Ejemplo: apt install apache2 libapache2-mod-security2.
- Tras instalar apache2 y la librería de modsecurity hay que verificar que modsecurity está habilitado. Para ello se puede hacer uso de apachectl -M. con esta instrucción podemos verificar que modsecurity se encuentra instalado, incluso podríamos filtrar con un grep para encontrar entre todo lo disponible.
- Encontramos el módulo security2 con el valor “(shared)”.
- Si es así, parece que todo ha ido bien, toca configurar modsecurity.
La configuración de modsecurity se puede llevar a cabo a través del fichero /etc/modsecurity/modsecurity.conf. Hay varias cosas que debemos mirar y revisar en este fichero que vamos a ver a continuación.
La primera regla y la más importante es SecRuleEngine que habilita modsecurity. Después, modsecurity tiene un conjunto de reglas por defecto, las cuales se encuentran en el directorio /usr/share/modsecurity-crs. Es altamente recomendable descargar reglas actualizadas desde repositorios de Github, con ejemplos para aprender.
Un ejemplo de repositorio a tener localizado es el de SpiderLabs con Owasp-modsecurity-crs. Ahora se conoce como OWASP Modsecurity Core Rule Set. Para poder descargarlo se puede hacer uso de git clone. Una vez descargado se puede copiar el fichero de configuración a /usr/share/modsecurity-crs/crs-setup.conf.
Ahora se puede configurar dichas reglas editando el fichero security2.conf que se encuentra en el directorio /etc/apache2/mods-enabled. Debemos añadir un par de IncludeOptional en el fichero security2.conf.
o IncludeOptional /usr/share/modsecurity-crs/*.conf.
o IncludeOptional /usr/share/modsecurity-crs/rules/*.conf.
Una vez hecho todo esto, debemos reiniciar el servicio de Apache2 y tendremos listas las nuevas reglas descargadas y ModSecurity.
Lo primero es definir qué tendremos en la máquina Ubuntu, en este caso tenemos una aplicación web vulnerable y nuestro apache con la librería de modsecurity. Hemos montado un DVWA sobre Ubuntu, la instalación se puede encontrar fácilmente. Nuestro modsecurity protegerá al DVWA y se podrá estudiar el funcionamiento del WAF in situ. En este ejemplo vamos a utilizar uno de los ataques a aplicaciones web más conocidos y del que Chema Alonso escribió un libro junto con Enrique Rando: Los ataques de SQL Injection.
![]() |
Figura 8: Libro Hacking de Aplicaciones Web: SQL Injection 3ª Edición de Chema Alonso y Enrique Rando en 0xWord |
Con la configuración de DVWA en modo fácil, en la última versión hay 4 niveles, introduciendo una comilla veremos como se genera un error de sintaxis. Si aplicamos un ‘or’1’=’1 veríamos los datos de la tabla a la que se consulta. Seguramente sea el SQL Injection más sencillo y más intuitivo. Perfecto para aprender.
Ahora habilitamos modsecurity a través del fichero /etc/modsecurity/modsecurity.conf. Habilitamos la opción SecRuleEngine y la ponemos a ON. A partir de aquí todo el tráfico pasará por las reglas de modsecurity que descargamos y añadimos en los apartados anteriores. Ahora veremos que cuando se intenta llevar a cabo la misma operación el resultado es un “forbidden”.
Una forma de aprender cómo funcionan, no solo los ataques de SQL Injection, sino todas las técnicas de Hacking Web Technologies, e incluso se pueden ver los ataques Client-Side que pasan por un servidor web, y como un WAF puede ir trabajando sobre ellos para protegernos es éste. Aplicando a diferentes tipos de ataques en plataformas como DVWA se puede aprender y mucho. Siempre pensando en el ataque y en la protección. En la vida real te encontrarás protecciones y tendrás que conocer cómo funcionan para poder aplicar bypasses. Eso lo dejamos para otra historia.

![]() |
Contactar con Pablo González |
Publicado por
Chema Alonso
a las
11:30 a. m.
0
comentarios
Etiquetas: Apache, BSQLi, docker, fortificación, hardening, HTTP, Linux, pentest, pentesters, pentesting, SQL, SQL Injection, WAF
lunes, mayo 02, 2016
Security Day 2016_: Security Evolution [Madrid]
![]() |
Figura 1: Security Day 2016_ - Security Evolution |
También vamos a hablar de novedades con MetaShield Protector para Exchange Server y MetaShield para Office 365. Vamos hablar de nuevas alianzas estratégicas que hemos firmado con Fortinet o las integraciones que hemos hecho con CheckPoint y Kaspersky. Y vamos a hablar de las implementaciones con Sinfonier y Latch que se han hecho en los concursos.... y alguna sorpresa más. Esta es la agenda que tenemos preparada.
![]() |
Figura 2: Agenda del evento |
![]() |
Figura 3: Ubicación del evento |
Publicado por
Chema Alonso
a las
8:30 a. m.
0
comentarios
Etiquetas: Eleven Paths, Eventos, Faast, Firma Digital, Kaspersky, Latch, Metashield, Office365, SandaS, Sandas GRC, Sinfonier, Telefónica, WAF
jueves, febrero 25, 2016
La higiene en los mensajes de error de la web. Un ejemplo con Microsoft.com
La primera de las demos la hice con la web de Microsoft.com, en la que, dependiendo de cómo fuerces los errores obtienes resultados diferentes. Estos son los ejemplos.
![]() |
Figura 3: Error con redirección tras pedir https://www.microsoft.com/foca.aspx |
![]() |
Figura 4: Error controlado y consistente con el error controlado. Sin redirección |
![]() |
Figura 5: Error generado por el Engine de PHP. Totalmente inconsistente. |
![]() |
Figura 5: Error generado por Request Filtering |
![]() |
Figura 6: Error no controlado del framework .NET al detectar un ataque de HTML Injection |
![]() |
Figura 7: Error generado por el WAF. En este caso por el WAF de Akamai que gestiona la CDN |
![]() |
Figura 8: Momentos durante mi charla de ayer }:) |
Aprovecho para mandar un saludo, un fuerte abrazo y un beso a tod@s los que os acercasteis a mí para saludarme, pedirme una foto o charlar un rato dentro del evento. Hicisteis que me volviera a sentir como esperaba sentirme cuando regresé de mis vacaciones. Si no te saludé, deberías haberte acercado a decir "hola", que seguro que me hubiera encantado hacerlo.
Publicado por
Chema Alonso
a las
5:38 a. m.
2
comentarios
Etiquetas: .NET, Fingerprinting, footprinting, Hacking, hardening, IIS, Microsoft, pentesting, WAF
miércoles, junio 17, 2015
RootedCON 2015: Vídeos Online ¡Disfruta las 21 charlas!
![]() |
Figura 1: RootedCON 2015, Vídeos Online |
Entre las charlas se encuentran ponentes de la talla de Hugo Teso, Raúl Siles, David Barroso, Alfonso Muñoz, José Picó, David Pérez, Miguel Tarascó, Sebastián Guerrero o Alejandro Ramos, por citar algunos de los ponentes más conocidos. Además, hay charlas dignas de no perderse como la de Carmen Torrano y sus investigaciones sobre los Web Application Firewall, la de Félix y Yaiza sobre "How I meet your eWallet" o la mind-shaking de Jorge Bermúdez.
Figura 4: Chema Alonso "Can I Play with Madness?"
Saludos Malignos!
Publicado por
Chema Alonso
a las
6:53 a. m.
5
comentarios
Etiquetas: Android, Apple, Bitcoins, esteganografía, Eventos, hackers, Hacking, Java, Malware, NFC, pentesting, reversing, Tacyt, WAF, WiFi
jueves, marzo 26, 2015
¿Y tú cómo juegas con el QueryString en un pentesting?
![]() |
Figura 1: ¿Y tú cómo juegas con el QueryString? |
A lo largo de todos estos años, mi visión era que para hacer una auditoría web completa había que probar todo. Al igual que los investigadores que van en busca de bugs en binarios utilizan técnicas de fuzzing para localizar cualquier anomalía que pueda llevar a descubrir un fallo de seguridad, en las aplicaciones web mi idea es que hay que conseguir hacer lo mismo. Por supuesto, éste no es exactamente el mismo entorno, ya que con un binario puedes trabajar en tu equipo y aprovechar al máximo la potencia de computo de tu máquina, mientras que en un servidor web tienes que contar con la línea de comunicaciones en medio y las medidas de seguridad que protejan el sitio.
Aún así, es fundamental probar todo lo probable, todo lo improbable y parte de lo imposible si quieres conseguir encontrar los secretos que detrás de una URL esconde un servidor web. Hay que jugar con el QueryStging a ver quién hay detrás y cómo se comporta, que muchas veces te sorprende. Yo me dedico a jugar mucho con él, y si sale alguna nueva pieza de información útil, a la mañana siguiente que pase por la oficina de Eleven Paths me siento un rato con los compañeros que llevan los plugins de nuestro sistema de Pentesting Persistente para que metan en la knowledge base de Faast las pruebas pertinentes para detectar en los servidores de nuestros clientes ese defecto, bug, leak o trick.
![]() |
Figura 2: Un sencillo fuzzing con parámetros puede generar un error no esperado |
El QueryString, tomado como una cadena de caracteres que pueda ser procesada como un string puede dar mucho juego. Por ejemplo, cuando haces una llamada a un determinado servidor web con un QuerySgtring cualquiera, eso antes puede pasar por los elementos de seguridad de red. Sabiendo eso puedes intentar hacer saltar el WAF y sacar información de él. Esto ya os lo conté en el artículo que explicaba lo fácil que es simular un ataque de LFI para hacer cantar al WAF. Esta misma idea se puede aplicar de igual forma con los ataques de inyección de código Server-Side y Client-Side.
![]() |
Figura 3: Errores por protecciones contra ataques de HTML Injection |
En muchos servidores IIS, por ejemplo, es suficiente con simular un ataque de Inyección de comandos HTML para obtener un Error 400 o un Error 500 que lo identifique, o, como se ve aquí, hacer saltar por los aires una aplicación .NET como en el caso de la propia Microsoft.com.
![]() |
Figura 4: Error forzado en Microsoft.com simulando un ataque de HTML Injection |
Dedicarse a hacer fuzzing del QueryString añadiendo caracteres a un determinado nombre de dominio o directorio puede dar muchas sorpresas. Hay que tener en cuenta que muchas veces, puede que ese QueryString esté siendo parseado por algún módulo del servidor que esté haciendo URL Rewrite o que directamente esté siendo entregado a una aplicación que va a procesar el QueryString completamente. Una cosa que hacen muchos sitios es, cuando se solicita por URL una dirección que una aplicación que no existe, el módulo de tratamiento de errores, en lugar de enviar un Error 404 directamente lanza una consulta a ver si puede extraer alguna otra página y devuelven documentos.
![]() |
Figura 5: El QueryString sirve para buscar páginas con el título que tengan en Rolling Stones |
En el momento en del QueryString se saque una cadena de caracteres y se trate como un parámetro, esto podría desembocar en un ataque de inyección de código tanto del lado del cliente como del lado del servidor. Podría acabar en una consulta a una base de datos o en un parámetro que se imprimiese en la página del cliente. En muchos casos, simplemente porque el QueryString se ha copiado íntegramente en la página de respuesta.
![]() |
Figura 6: En esta página el QueryString puede convertirse en una cadena de búsqueda. Además sufre una sanitización peculiar. |
Por supuesto, hacer fuzzing en el QueryString puede desembocar en la generación de mensajes de error en todos los niveles que pueden interpretarlo, lo que ayudaría a poder sacar mucha información del sitio objetivo. Pensad que solo el QueryString puede ser procesado por el WAF, por el WebServer, por el motor del Engine que ejecute la aplicación, por el programa en concreto que se ejecute, por el sistema de ficheros y por los programas que se lanzan en el tratamiento de errores. Así aparecen cosas como el bug de IIS, los leaks del módulo de Mod_Negotiation, los mensajes de errores con tanta información de PHP, de TomCat, ColdFussion y demás.
![]() |
Figura 7: Elementos que pueden acabar procesando el QueryString según el flujo |
La gracia está en que, depende de cómo esté construido ese QueryString, vas a poder comunicarte con uno u otro de los elementos de toda la cadena y, tal vez, sacar información diferente de cada uno de ellos para encontrar, quién sabe, un nuevo camino. ¿Qué pruebas haces tú cuando te enfrentas un www.server.com para jugar con el QueryString?
Saludos Malignos!
Publicado por
Chema Alonso
a las
9:37 a. m.
0
comentarios
Etiquetas: .NET, Apache, auditoría, Faast, Hacking, HTML, IIS, Microsoft, pentesting, PHP, WAF
martes, febrero 03, 2015
Simular un falso ataque de LFI para que “cante” el WAF
![]() |
Figura 1: Simular un ataque LFI para que "cante" el WAF |
![]() |
Figura 2: Mensaje de error del WAF de un blog tecnológico |
![]() |
Figura 3: Mensaje 403 de un dominio de Apple.com |
![]() |
Figura 4: Mensaje de Error 403 de una empresa que indica la detección del LFI |
![]() |
Figura 5: Mensaje de Error 403 en la web de DefCon generado por McAfee Global Threat Intelligence |
Publicado por
Chema Alonso
a las
5:48 a. m.
3
comentarios
Etiquetas: Apache, auditoría, Firewall, Hacking, hardening, HTTP, LFI, Linux, pentesting, Proxy, WAF
Entrada destacada
+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial
Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares
-
Circula por la red un truco que llegó a mí de casualidad , donde se explica cómo conseguir ver más de una vez - e incluso capturar - las fot...
-
Ayer publiqué un post que tiene ver con las opciones de privacidad de Facebook asociadas a los correos electrónicos , y mañana sacaré la se...
-
Las técnicas de OSINT son aquellas que te permiten buscar información en fuentes abiertas. O lo que es lo mismo, sacar datos de plataformas...
-
Hoy os traigo una " microhistoria " peculiar que tiene que ver con la historia de la tecnología. Es una historia de esas que empie...
-
Hace mucho tiempo, cuando se creo el " Modo Incógnito " de los navegadores, que algunos llamaron también " Modo Privado ...
-
Dentro de una investigación de una fotografía, tal vez te interese saber dónde está hecha, o a qué hora se hizo. Cualquiera de esas dos info...
-
Conseguir la contraseña de Facebook de una cuenta es una de las peticiones más usuales que se suele recibir de la gente que busca solucion...
-
Una de las opciones que se puede configurar a nivel de hipervínculo, de documento o de servidor web en los navegadores es el funcionamiento...
-
El SEPE (Servicio Público de Empleo Estatal) ha sido víctima de la archiconocida crisis del COVID-19 enlazando la avalancha de expedientes...
-
La app de mensajería instantánea Telegram tiene muchos fans por el atributo de seguridad que ha querido potenciar desde el principio, per...