Introducción al diseño de Malware

En días pasados, con el “boom” de #WannaCry, me puse a recordar cuando hacía mis pruebas de concepto de virus y otro malware. Nunca llegué a hacer una amenaza seria, pero si tengo por lo menos una creación que es reconocida por una compañía Antivirus.

Decidí que #WannaCry era el pretexto ideal para volver a esta asombrosa escena (del malware), sólo que no decidí regresar haciendo nuevas creaciones, más bien, decidí regresar compartiendo lo poco que sé de creación de malware. Sigue leyendo

GPS Info

GPS Info

GPS Info es una aplicación para Android que no hace otra cosa que obtener y mostrar en bruto los datos del GPS del dispositivo, es decir, no les hace ningún tipo de procesamiento después de obtenerlos, mucho menos usa la ubicación basada en red, por lo que es buena opción para saber qué tan exacto es el hardware del GPS de tu dispositivo.

La aplicación muestra 3 pantallas con la siguiente información:

  • Pantalla de inicio. Muestra estado del GPS, ubicación, velocidad y altura.
  • Geocoder. Muestra ubicación en el mapa y dirección (se actualiza cada 150 metros)
  • Rodamiento GPS. Muestra velocidad y dirección de desplazamiento. Esta información es obtenida a partir del GPS incluso si el dispositivo cuenta con brújula.

GPS Info está optimizado para dispositivos con pantalla de 4.6” – 5.5”

Descargar GPS Info desde Google Play

Cómo identificar un enlace “clickbait”

Para saber identificar un enlace del tipo clicbait, debemos comenzar por tener una definición precisa de lo que es:

El clickbait, que traducido al español como «cebo de clics» o «anzuelo de clics», es un neologismo en inglés usado de forma peyorativa para describir a los contenidos en Internet que apuntan a generar ingresos por publicidad, especialmente a expensas de la calidad o exactitud de éstos, dependiendo de titulares sensacionalistas para atraer mayor proporción de clics.

Algunos sitios que emplean esta técnica pueden suponer un riesgo a la seguridad, ya que ademas de mostrar publicidad intrusiva pueden contener código malintencionado que instale Malware en el equipo del usuario.

Existen hoy en día gran cantidad de sitios que se valen del clickbait para generar visitas y con ello mayores ingresos. Algunos de los más conocidos son:

  • BuzzFedd
  • Upsocl
  • CulturaClctva

Como ya se mencionó antes, el contenido que muestran este tipo de sitios es de poca o nula calidad y en el caso de presuntas noticias suele ser contenido falso o no comprobable. Los ejemplos más claros son cuando “fallece” determinada figura pública, o bien cuando “EPN por fin renunció a la Presidencia de la República“.

Identificar este tipo de contenidos es relativamente fácil pues generalmente cumplen con las siguientes características:

1. Errores de redacción y faltas de ortografía. Incluso apreciables desde el título

2. Título sensacionalista que aparenta ser una noticia. O bien títulos que despiertan la curiosidad del usuario, por ejemplo “Esposo pensó que su mujer era infiel, puso una cámara oculta y lo que descubrió fue impresionante“.

Título sensacionalista para atraer la atensión del usuario. Incitarlo a que haga clic

Título sensacionalista para atraer la atención del usuario. Incitarlo a que haga clic

3. En el caso de las supuestas noticias, no aparece ni la agencia ni el medio desde el cual obtuvieron la información. También puede que la foto con la que anuncian la noticia en redes no aparezca en la publicación original.

e2

En una noticia genuina (izq.) aparece claramente el nombre de la agencia o medio que proporciona la información. La noticia falsa (der) no tiene nombre de agencia.

4. Por último y la razón de ser del clickbait: Demasiada publicidad, generalmente intrusiva y molesta.

Screenshot_2017-03-08-14-14-16

En este caso fueron 2 párrafos de “noticia” y el resto son anuncios e invitaciones para dar “Me gusta” en Facebook

Este post forma parte de los Miércoles de Mini-post.

 

 

 

Extraer archivos de un disco duro de VirtualBox (*.vdi)

En días pasados me vi en la necesitad de extraer una gran cantidad de archivos que tengo guardados en una máquina virtual cuyo formato de disco duro es el nativo de VBox (*.vdi).

No podía “pasarlos por red” de la máquina virtual al host como muchos me decían, ya que la máquina virtual tiene instalado Windows 3.11 y no tiene los drivers de red, así que definitivamente la red no era una opción.

La segunda opción era ir creando archivos .img, para montarlos en VBox como unidad A: e ir copiando los archivos. Después tendría que montar los img en la máquina host para pasarlos. en otras palabras, mucho relajo.

Así pues, me di a la tarea de buscar como convertir un archivo .vdi a .iso con la idea de poderlo montar en mi máquina host, pero no obtuve buenos resultados.

Después se me ocurrió que tal vez se podría montar directamente el archivo .vdi. Tampoco encontré como hacerlo, pero sí encontré algo muy parecido. Sigue leyendo

Cifrar contraseñas. ¿Es totalmente seguro sha1?

En recientes días, haciendo una investigación acerca de el funcionamiento de cierta aplicación móvil me encontré con que usa una API pública, en la cual se puede obtener información de dicha app y el servicio que ofrece esa empresa.

La API en cuestión es muy fácil de consumir, basta con llamarla de la siguiente forma:

http://ip-de-la-pagina/a/metodo/parametro

Es decir si ponía:

http://ip-de-la-pagina/a/servicios/

Me aparecía un JSON con los servicios que ofrece. Hasta aquí todo bien. ¿Y qué tiene que ver esto con seguridad? Te has de estar preguntando. Aquí empieza lo bueno.

Se me ocurrió poner:

http://ip-de-la-pagina/a/usuarios/

Y la página me contestó con un JSON bien bonito donde venían los datos de los usuarios, incluido su nombre de inicio de sesión (username) y un SHA1 de su contraseña.

Hacer bypass a ese “super cifrado” fue tan fácil como entrar a http://hashkiller.co.uk o https://crackstation.net y pegar los respectivos digest *. Sigue leyendo

Flotis (juego casual para Android)

Flotis

Flotis

Flotis” es un juego casual en fase experimental para Android al estilo plataformas; solo que en vez de ir brincando, va nadando. Su temática es bastante simple: un buzo que va recogiendo gemas, debes recoger tantas gemas como puedas .

No es la gran cosa, (es el trabajo de aproximadamente 32 horas entre investigación y desarrollo) pero por lo menos me permitió echar un vistazo a 2 cosas: el motor de Unity 5 y cómo ponerle anuncios a una aplicación con AdMob.

Aunque planeo terminarlo después, lo voy a dejar un rato en fase experimental. Si lo bajas y lo pruebas, estaré muy agradecido 🙂

Cómo jugar:

Toca la pantalla para hacer que el buzo se nade hacia arriba. ¡Recoge las gemas y evita que te toquen los peces!

Descarga “Flotis” desde Google Play.

Este post forma parte de los Miércoles de Mini-post.

 

Generar códigos QR con PHP

Hoy voy a hablar de una librería en PHP que ya llevo tiempo utilizando para generar códigos QR; me refiero a PHP QR Code.

Comencé a utilizar dicha librería cuando me pidieron un proyecto que llevara una firma digital “como las del SAT”. Tras comentarle a la líder del proyecto todo lo que llevaba implementar un verdadero sistema de firmas digitales, sumado a que -de verdad- la mayoría de usuarios tiene un escaso nivel técnico al grado de que no iban a ser capaces de generar sus archivos .key y .req por cuenta propia. La líder del proyecto y yo decidimos aplicar la vieja confiable: “Por lo mientras pónle (al documento que genera el sistema) un código de barras o algo, el chiste es que se vea que ya se va a empezar a implementar lo de las firmas electrónicas”, me dijo (ese “por lo mientras” lleva casi 6 años, pero esa, es otra historia).

Así pues, me di a la tarea de investigar, primero qué clase de código poner y luego cómo ponerlo.

Como dije al principio, la librería elegida fue PHP QR Code, entre otras cosas por su gran facilidad de uso. Solo debemos de incluirla en nuestro archivo PHP, y llamar a un método estático de la clase QRcode y ¡listo! (debe estar habilitada la extensión GD en el servidor)

Ejemplo 1: Generar un QR en formato PNG y mostrarlo en el navegador

require_once 'ruta/a/phpqrcode/qrlib.php';
QRcode::png("Visita mi blog https://underdog1987.wordpress.com");

Si optas por usar este método no deberás haber enviado ningún encabezado antes de llamar a QRcode. Este método puede ser útil para generar códigos con el texto de manera dinámica, por ejemplo, si el código anterior está en un archivo llamado qrgenerator.php podemos modificarlo para que quede:

require_once 'ruta/a/phpqrcode/qrlib.php';
$text=urldecode($_GET['t']);
QRcode::png("".$text);

Y entonces poder llamarlo desde un tag de la siguiente forma:

<img src="qrgenerator.php?t=Este%20es%20el%20texto%20que%20pase%20en%20la%20URL" />

Ejemplo 2: Generar un código QR y guardarlo en una carpeta

Este ejemplo me gusta más, ya que además de guardar una copia de la imagen generada, podemos indicar el tamaño y el índice de corrección de errores.

QRcode::png("texto","ruta/nombreArchivo.png",'INDICE_CORRECCION',TAMAÑO,MARGEN);

En donde:

ruta/nombreArchivo.png

Ruta (absoluta o relativa) donde se va a guardar el código generado. Se debe especificar la extensión .png

TAMAÑO

Tamaño en pixeles que tendrá cada punto del código. A mayor tamaño, más grande será la imagen generada.

MARGEN

Margen del código en unidades TAMAÑO (el margen es el espacio entre el perímetro de la imagen y la zona de los puntos).

INDICE_CORRECCION

Nivel de corrección de errores. Puede ser uno de los siguientes:

  • L – corrige hasta 7% de daño
  • M – corrige hasta 15% de daño
  • Q – corrige hasta 25% de daño
  • H – corrige hasta 30% de daño

Ejemplos

QRcode::png("Visita mi blog https://underdog1987.wordpress.com","imagenPrueba.png",'H',32,12);
imagenprueba

Corrección de errores: H Tamaño: 32 Margen: 12

QRcode::png("Visita mi blog https://underdog1987.wordpress.com","imagenPrueba.png",'L',32,12);
imagenprueba

Corrección de errores: L Tamaño: 32 Margen:12

QRcode::png("Visita mi blog https://underdog1987.wordpress.com","imagenPrueba.png",'H',5,1);
imagenprueba

Corrección de errores: H Tamaño: 5: Margen: 1

QRcode::png("Visita mi blog https://underdog1987.wordpress.com","imagenPrueba.png",'L',5,1);
imagenprueba

Corrección de errores: L Tamaño: 5 Margen: 1

Observa la diferencia de tamaño de la imagen generada en el tamaño 12 y tamaño 5.

Puedes descargar esta librería desde la página oficial del proyecto en sourceforge.net.

Este post, aunque un poco largo para ser considerado “mini”, forma parte de los Miércoles de Mini-post.