Allahu akbar: cómo hacer una bomba lógica

Que no cunda el pánico!

Relajad las tetas que en este post no vamos a hacer exaltación al terrorista ni os voy a enseñar a hacer un artefacto pirotécnico. Si habéis entrado buscando ese tipo de información ya os podéis dar media vuelta e iros a freír espárragos. Lo que vamos a aprender en el post de hoy es a hacer una bomba lógica o mas concretamente una bomba fork y que afecta a sistema GNU/Linux.

Algo ya viejo y conocido en el mundo de la inseguridad informática junto a otros amigos como los virus, los gusanos o los rootkits pero que siempre es divertido de aprender y conocer su funcionamiento y que si se lleva a cabo con un poquito de ingenio, con tan solo tirar un par de caracteres podemos hacer muuuuucho daño.

Vamos a ver qué es una bomba lógica, vamos a aprender a programar una bomba fork y sobre todo vamos a ver cómo solucionarlo.

¿Qué es una bomba lógica?

Actuación de una bomba fork
Actuación de una bomba fork

Según la wikipedia:

Una bomba lógica es una parte de código insertada intencionalmente en un programa informático que permanece oculto hasta cumplirse una o más condiciones preprogramadas, en ese momento se ejecuta una acción maliciosa

Esta bomba la podríamos añadir al init.d de nuestro sistema Linux y joder para siempre el arranque del sistema operativo o al menos hasta que un experto le meta mano y consiga arreglarlo.

Vale, creo que ya ha quedado claro qué es una bomba lógica pero y una bomba fork que es sobre lo que estamos hablando hoy.. ¿qué es?

Pues una bomba fork sigue el mismo paradigma que las bombas lógicas pero se diferencia en que estas bombas son un tipo de ataque DOS que consiguen ocupar todo el espacio disponible de memoria RAM de un sistema.

Las bombas fork funcionan de la siguiente manera. Una vez que ha sido activada, el proceso padre que la maneja es capaz de crear procesos hijos que a su vez crean mas procesos hijos que a su vez crean mas procesos hijos y así hasta el infinito y de una manera recursiva. Estos procesos no reciben una señal SIGKILL por lo que no pueden ser matados. Como os imagináis y debido a esto el consumo de memoria RAM cada vez es mayor y mayor y la única solución para parar una bomba lógica es reiniciar el sistema.

Pues bien una bomba fork puede ser programada en cualquier lenguaje de programación, lenguaje de programación que no de maquetación, escribir HTML no es programar mamones 😉

Las siguientes líneas son un ejemplo de bomba fork escrita en C++

#include <unistd.h>

int main()
{
  while(1) {
    fork();
  }
  return 0;
}

Como leéis en el código, a no ser que se cumpla una condición, se va a estar ejecutando la función fork indefinidamente ya que la condición no se va a cumplir nunca en este snippet, te va a petar la memoria… ufff

Pero si algo me ha motivado a escribir este post sobre cómo hacer una bomba lógica es un snippet escrito en una sola línea en bash.

:(){ :|:& };:

¿Verdad que mola? Es muy gracioso, me recuerdan a caritas de patitos, pero patitos cabrones los muy joputas, no lo ejecutéis en vuestro en ordenador si no queréis tener que reiniciar el aparato…

Vamos a intentar desgranar esta línea para que quede mas clara.

Lo que en una sola linea contiene toda la lógica, si lo formateamos podemos empezar a ver lo siguiente:

:(){ 
  :|:& 
};:

La primera parte o línea del snippet formateado e identado se corresponde con la el nombre de la función, es decir, en lugar de llamar a nuestra función con un nombre literal la hemos nombrado con el nombre de los dos puntos.

Esto

:(){ 
}

Es igual a esto

bomba(){ 
}

¿Hasta aquí bien no? Ok

La segunda línea se corresponde con la llamada recursiva a sí misma haciendo uso de las tuberías UNIX pero sobre todo y lo mas jodido es el ampersand utilizado al final. Si recordáis las clases de Linux, sabréis que el uso de este símbolo después de la llamada de una función hace que el proceso se ejecute en segundo plano y se mantenga en constante ejecución hasta que termine o sea matado.

Así pues esto

:|:& 

Es igual a esto

bomba | bomba & 

Y para rizar el rizo, una vez que la ejecución de la bomba lógica ha terminado, vuelve a llamarse a si misma volviendo a iniciar todo el ciclo y volviendo a tocar los cojones xD

Por lo cual, el código desgranado y explicado queda de una forma que es mucho mas sencillo de leer y entender.

bomba(){ 
  bomba | bomba & 
};bomba

Ahora bien, si hemos sigo tan tontos de auto hacernos un ataque DOS mediante bomba lógica o hemos sido infectados mediante por ejemplo un script en el init.d tal y como decía antes, ¿cómo podemos parar una de estas bombas?

Mitigación y solución a bombas lógicas

Como decía antes, parar una bomba de este tipo es algo bastante difícil debido a la recursividad y a que tienden a ir ocupando todos los bloques de memoria disponibles hasta saturar completamente toda la RAM. Una solución que podría llevarse a cabo sería en ejecutar un script que se dedicase a ir matando procesos aunque puede no ser posible si no hay posiciones vacías dentro de la tabla de procesos o espacio dentro de las estructuras de memoria.

Si realmente queremos prevenir un ataque de este tipo, la mejor solución sería limitar el número de procesos que pueden ejecutar los usuarios. En el kernel de Linux existe una variable llamada RLIMIT_NPROC, que indica la cantidad máxima de procesos que se puede ejecutar. Si un proceso intenta llamar a la función fork y el usuario que es propietario del proceso ya tiene igual o más procesos que los indicados en RLIMIT_NPROC la llamada a la función fallará y se evitará la ejecución lógica de la bomba.

Bueno pues nada chavales, ya habéis aprendido otra cosa mas sobre vuestros sistemas, si tenéis alguna duda podéis dejarme un comentario o escribirme a Twitter a través del banner de abajo. Si ponéis en práctica esta bomba lógica que sea sobre vuestro propio ordenador o sobre una máquina virtual, no seáis hijoputas y ataquéis a otras personas, si lo hacéis yo no quiero saber nada…

[xyz-ips snippet=”FAQS-GORKAMU-TW-YELLOW”]

 

Hala a mamarla!

Cómo hackear un foro público

[xyz-ips snippet=”ADSENSE-MOUSE-FOLLOWING”]

Creo que este va a ser el primer post que escriba sobre seguridad informática o mas bien inseguridad informática ya que cómo dice Chema Alonso…

El libro de la selva de Chema Alonso
El libro de la selva de Chema Alonso

Y es que en el mundo que vivimos estamos cada vez mas expuestos a posibles amenazas y por ello deberíamos de tomar conciencia y conocer cómo actúan los ciberdelicuentes para fortificar todos nuestros sistemas. Al fin y al cabo todos tenemos una cuenta de facebook, todos guardamos correos importantes en nuestra bandeja de Gmail y todos utilizamos ya la banca electrónica para realizar las funciones de nuestro día a día y todas estas identidades digitales contienen datos sensibles que cualquiera con los conocimientos necesarios y mucha leche puede comprometer.

A nivel de desarrollo debería ser imprescindible que todo pica teclas conozca los diferentes vectores de ataque para poder mitigarlos en futuros desarrollos, creo firmemente que un desarrollador tiene que ser antes hacker que desarrollador. Al fin y al cabo gran parte de la responsabilidad de la securización de los sistemas depende de nosotros ya que ello repercute en la calidad del producto que estamos desarrollando. Luego hay usuarios tontos que por muchas medidas de seguridad que pongamos van a seguir poniéndose en evidencia.

Para un atacante no resultaría dificil sacar el CCV a partir del PAN ID de la tarjeta
Para un atacante no resultaría dificil sacar el CCV a partir del PAN ID de la tarjeta

Pues bien, estaba el otro día revisando algunos blogs de seguridad informática y hacking cuando me encontré con una herramienta que podría hacer las delicias de cualquier script-kiddie y no hablo de suites completas de pentesting cómo Kali o Bugtraq no, hablo de un script escrito en perl y que nos ayuda en una primera fase de recogida de información sobre vulnerabilidades de foros basados en vBulletin.

Cómo hackear un foro

La herramienta en sí se llama VBScan y ha sido escrita por un tal Mohammad Reza Espargham. La podemos encontrar gratuitamente en su github y lo único que tendremos que hacer para descargárnosla es ejecutar el siguiente comando.

$ git clone https://github.com/rezasp/vbscan.git

Para hacerla correr lo primero que tendremos que hacer será darle permisos de ejecución, para ello…

$ chmod 775 vbscan.pl

El script en cuestión acepta un único parámetro y es el objetivo que queremos analizar. Una vez que está ejecutando el análisis iremos viendo on-the-fly las diferentes vulnerabilidades que tienen los foros basados en vBulletin y si son explotables o no.

Foro vulnerable a ataques basados en RFI
Foro vulnerable a ataques basados en RFI

Si siguiéramos el vector de ataque de la imagen superior podríamos llegar a ejecutar la ya famosa c99 php shell y tomar el control del servidor de la siguiente forma

Hipotético ataque RFI en un foro público
Hipotético ataque RFI en un foro público

Y con esto llegar a realizar un web defacement, conseguir el fichero de usuarios y contraseñas del servidor o comprometer datos sensibles que pudieran estar alojados en la base de datos.

Otra de las cosas chungas que he visto realizando estas pruebas de concepto son los ficheros de configuración del foro y su nula seguridad. Cuando uno de estos ficheros no han sido previamente securizados mediante htacces o no los excluimos de las fases de indexación de los buscadores con el robots.txt correctamente configurado, podemos ver las credenciales de conexión a la base de datos en texto plano junto a otra información valiosa. Que decir que las credenciales que me he encontrado en estas pruebas son una puta mierda…

Usuario root y password vacío, anonadado me hallo
Usuario root y password vacío, anonadado me hallo

Con todas esta información, un atacante con muy mala leche tardaría cero coma en hacer un ataque iSQL y comprometer la base de datos.

Bien, otra vulnerabilidad con las que me he encontrado es con el módulo uploader.swf de la liberría YUI en versiones 4.2.1. Este módulo basado en ActionScript, muy probablemente en su versión 3, nos permite subir ficheros al servidor y que si no ha sido correctamente configurado abre una brecha de seguridad ante ataques XSS.

Youve been pwned by Gorkamu
Youve been pwned by Gorkamu

Como veis en la imagen superior lo he probado mediante un simple e inofensivo alert pero ya me direís cuanto se tarda en hacer un script que robe las cookies de los usuarios…..nada.

Si seguimos analizando foros nos encontraremos con muchísimas brechas, durante todo este rato lo que mas he visto ha sido vulnerabilidades de Registration Bypass aunque y contra a todo pronóstico, mio, también me he encontrado con vulnerabilidades que mediante ataques LFI podemos sacar datos de los ficheros que ya están en el servidor en un bonito y majestuoso texto plano. Para uno de estos casos lo he probado con un fichero javascript de la configuración global del foro, pero si seguimos echando para atrás en el árbol de directorio podríamos llegar hasta el fichero /etc/passwd del servidor, siempre y cuando estuviera basado en entornos Linux, que todo apunta a ello…

POC de un ataque LFI
POC de un ataque LFI

En fin, no voy a seguir comprobando foros por que me podría salir un artículo de varios miles de palabras y tampoco es plan, el objetivo principal del artículo era enseñaros una herramienta para automatizar la recogida de información de vulnerabilidades en foros basados en vBulletin y cuales son los vectores de ataque mas comunes en dichos foros. Pero lo que creo que ha quedado bastante claro es que no estamos tan protegidos y seguros como nos creemos y que si en un rato que he echado en la tarde he conseguido sacar toda esta información imaginaos lo que se podría hacer si alguien se pone en serio a comprometer estos sistemas… Como recomendación final os diría que mantengáis todo actualizado a la última versión y desconfiad simpre de todo.

Hala, happy hacking! digo… a cascarla!!

Hackear un ordenador con la radio del móvil

Hola hamijos, como más de uno sabrá me dedico profesionalmente a la informática. No soy experto en redes ni en sistemas, en realidad trabajo en desarrollo y para afinar más, la especialidad que más me gusta es el desarrollo de aplicaciones web, pero eso no quita para que me dejen de gustar otras áreas como la seguridad o más bien la contraseguridad. Desde siempre he tenido una relación amor-odio con el hacking y he coqueteado con algunas técnicas a lo largo de los años.

Creo que mi pasión por la informática y mis encuentros con el hacking vienen de cuando era un crio. Recuerdo que cuando tenía unos 9 años vi la película de ‘Hackers, piratas informáticos‘, esa película totalmente surrealista protagonizada por Angelina Jolie y Jonny Lee Miller que interpretaban a unos adolescentes que eran unos fieras pirateando sistemas en los 90 y tenían que luchar contra el dueño de una megacorporación.

Ayy que mofleticos me tenía la Jolie...!!
Ayy que mofleticos me tenía la Jolie…!!

Vale que los guionistas de la película se lo fliparon demasiado con los detalles técnicos y todos los que hayamos visto la película nos reiremos de las interfaces de los ordenadores tan de los 90 pero no podemos negar que la película generaba un sentimiento de libertad y una sensación de que si eras informático no había dios que te parara los pies. Una de los razones que ayudaba a generar esta sensación era la banda sonora, que entre otros, Prodigy tenía un hueco con su temazo ‘Voodoo People‘, pero vaya, que al terminar de ver la película te quedabas como… Wow, esto mola un huevo.

Pues bien, de vez en cuando reviso mis RSS sobre seguridad y a veces encuentro noticias que son la leche y nunca dejan de asombrarme como por ejemplo aquella aplicación que presentaron en la conferencia Hack In The Box Conference y que aseguraban que se podía romper los sistemas y controlar un avión comercial desde un smartphone o aquella otra noticia que aseguraba que se podía hackear un marcapasos (implicaciones éticas aparte). Pues hoy, he leido una noticia sobre cómo hackear un ordenador con la radio del móvil, si si, como lo oyes, desde la radio… xD

Cómo creo que es lógico, todos sabemos que para hackear un ordenador es necesario que se tenga acceso al mismo, ya sea físico o a través de la red. Un ordenador que este desconectado de internet y aislado en un bunker hermético es imposible de vulnerar o eso nos parecía hasta ahora, porque se ha presentado una aplicación que es capaz de captar las ondas de radio que emiten los monitores y que nuestro móvil y desde la radio podremos leer.

Al final del pasillo hay un ordenador en el que sólo se puede jugar el Minecraft
Al final del pasillo hay un ordenador en el que sólo se puede jugar el Minecraft

La aplicación hace uso de una técnica de la que ya se hablaba por los años 60 y tiene por nombre TEMPEST (Transient ElectroMagnetic Pulse Emanation STandard) y que permite trucar las ondas electromagnéticas de un monitor haciendo que éste actúe como una antena.

Para poder obtener información de las emisiones electromagnéticas de la pantalla es necesario que previamente el ordenador tenga un malware instalado que traduzca en información útil las ondas de radio que detecta el receptor FM del smartphone, que también tendrá instalado el mismo malware. La clave de todo este asunto es utilizar la tarjeta de vídeo del ordenador para generar una señal de radio que luego se pueda captar.

La mayor brecha de seguridad se encuentra entre la pantalla y la silla

Según he leído, la técnica sería prácticamente inviable ya que hay que tener el receptor a una distancia de 7 metros como mucho del emisor porque la cantidad de aparatos electrónicos que hay a nuestro al rededor emitirían corrientes parasitarias que distorsionarían la señal a capturar. Se habla de que en los laboratorios han conseguido capturar una contraseña en 8 segundos y esto da mucho que pensar sobre si es la mejor técnica a llevar a cabo en un ataque pero por otro lado, el The New York Times ya informó de la existencia de un transceptor utilizado por la NSA que permitía acceder a ordenadores no conectados a internet a través de ondas de radio, así que no se yo…

Esto de momento se queda en una curiosidad sobre como gracias a la investigación somos capaces darle una vuelta de tuerca a tecnologías que parecían inamovibles y así poder aprovechar nuevas funcionalidades.

Ah y por si alguno quiere seguir investigando acerca de todo esto, la aplicación en cuestión se llama AirHopper y para más inri, esta circulando por internet un vídeo en el que dicen que si lo reproduces a pantalla completa y a 1080p puedes oír el tema Para Elisa de Beethoven desde la radio AM de tu smatphone, no se yo… yo no lo he probado… así que si lo probáis me gustaría saber vuestra opinión a través de la sección de comentarios.

http://smartywidget-1736116251.eu-west-1.elb.amazonaws.com/webservice/embed/9170/659794/510/280/0/0/0

¡Hasta que volvamos a vernos!