15 Marzo, 2017 a las 7:15

Cómo todos sabemos cuando un programa se actualiza este lo hace realizando una solicitud a un servidor, este le responde diciendo cual es la versión actual y donde descargarla. A continuación si el programa tiene una versión distinta descarga el instalador y lo ejecuta, hasta aquí nada nuevo pero si no se toman las medidas adecuadas las actualizaciones pueden ser un fallo de seguridad en si mismo. Contradictorio ¿no?

Básicamente son aquellas en las que una vez descargadas, el sistema de actualizaciones no comprueba si ese fichero es legítimo (bien mediante la firma del fabricante o cualquier otra medida de seguridad) por lo que si un atacante efectúa un Man In The Middle podría hacerse pasar por el servidor y decirle al actualizador que existe una nueva versión la cual debe descargarse desde un servidor ilegitimo.

Caso práctico vulnerabilidad Evilgrade en MiPony.

El primer paso es saber de que forma se actualiza la aplicación, saber cómo verifica si está actualizada o no y de dónde obtiene los ficheros necesarios para obtener dicha actualización. En mi caso he decidido auditar la última versión de MiPony simplemente por que me olía que sería vulnerable a este tipo de ataques. Obviamente he avisado MiPony de esta vulnerabilidad así que imagino que la resolverán en breve.

Para monitorizar como trabaja la aplicación a la hora de buscar actualizaciones simplemente dejaremos ejecutando MiPony sin ningún trabajo activo, además mediante WireShark capturaremos el tráfico de red. Por último pediremos a MiPony que nos busque actualizaciones, un vez hecho paramos Wireshark y analizamos el tráfico generado.

Continuar leyendo

Categorías: Pentesting, Programación, Seguridad, Sockets
Etiquetado , , , , , , , | Escribir un comentario

6 Junio, 2016 a las 10:05

logomtalkHoy he publicado la nueva versión de mTalk, esta versión trae las siguientes novedades:

  • Pequeños cambios de interfaz.
    • Error que impedía hacer login en algunos foros
    • Corregido el  problema en la carga de hilos de algunos foros.
    • Corregido el error “No autorizado:/1” al editar un post, borrarlo o enviar una respuesta con cita que ocurría en algunos foros.
  • Pequeños cambios de interfaz.
    • Se han mejorado los bordes para dar un aspecto mas uniforme y consistente en la interfaz.
    • Ahora las barras de desplazamiento no se superponen sobre el contenido (fecha de posts, botones de cita, etc.).
    • El tamaño de letra de los diferentes elementos se ha reestructurado según su importancia (Títulos mayor que fecha o resumen).
    • En pantallas anchas, PC y tablets aparece el botón de configuración junto al botón de panel de usuario.

Espero que las disfrutéis. Continuar leyendo

Categorías: mTalk, Proyectos
6 comentarios

17 Septiembre, 2013 a las 21:39

wp_ss_20130917_0001Hace algo mas de un mes os presenté Tapacoches, no ha pasado mucho tiempo desde que lo publiqué pero ya ha vivido momentos buenos y algo caóticos, no obstante hoy os escribo para comentaros uno de esos buenos momentos y es que, hoy por hoy, gracias a los usuarios Tapacoches ha superado los ocho mil usuarios y por si fuera poco gracias a vosotros, los que valoráis la aplicación, Tapacoches (con su icono de roto2) se ha colocado como la aplicación mejor valorada de la Tienda de Windows Phone en España.

Lo publiqué en el blog oficial de Tapacoches, para agradeceros todo, pero creo que no está de mas utilizar también este espacio (mas personal) para volver a deciros.

Gracias a todos por vuestra confianza

Categorías: Programación, Proyectos
6 comentarios

14 Agosto, 2013 a las 16:48

Hacía tiempo que no os presentaba ninguno de mis proyectos, hoy os traigo este que empezó mas como una forma de afianzar conocimientos sobre programación para este sistema operativo que otra cosa, cuando tenía una “base”, algo sosa (todo hay que decirlo) le propuse a un pequeño grupo de foreros probarla y poco a poco se ha ido mejorando hasta que hace un par de semanas se publicó en la tienda.

Forocoches es el foro mas activo de habla hispana y todo usuario de Windows Phone sabe que la versión móvil tiene ciertas carencias, la aplicación trata añadir a forocoches aquellas opciones que en la versión móvil no están disponibles o dan problemas, como el citar a alguien o ver tus temas suscritos. Además, añade características como poder ver quién te ha citado o recibir notificaciones en el móvil si se te envía un privado o alguien te menciona, además si estás navegando por el foro y quieres volver a un hilo que no recuerdas como se llamaba, puedes consultar tu historial de visitas o de mensajes enviados para encontrarlo muy fácilmente todo desde una aplicación intuitiva.

Continuar leyendo

Categorías: Programación, Proyectos
3 comentarios

14 Junio, 2013 a las 20:39

windows_phone

Como vimos en la entrada anterior, generar una interfaz para Windows Phone es bastante sencillo gracias a Visual Studio, que nos crea la mayoría de código XAML y nos lo muestra de forma que podamos modificar aspectos como los margenes (atributo margin), el texto  (atributo text), etc.

En la entrada de hoy veremos cómo crear un formulario de usuario y contraseña, en el que al introducir bien los datos nos muestre un nuevo formulario o ventana y si se introducen mal dará un mensaje de error.

De esta forma aprenderemos a obtener datos de elementos del formulario (los campos de texto), a editar elementos (el mensaje de error que se muestra o no) y a lanzar nuevas ventanas (el formulario que se lanzará al introducir bien los datos).

Es importante tener en cuenta que hay que tener nociones básicas de programación para seguir este manual. Por otro lado, si no has leído aún la primera parte del curso, este es el mejor momento ya que damos una introducción al entorno de programación de Windows Phone.

Creando nuestro primer programa en Windows Phone

Lo primero que haremos para hacer nuestro formulario de inicio de sesión será añadir a nuestra interfaz los elementos necesarios, en nuestro caso un textbox dónde escribir el usuario, un passwordbox dónde se escribirá la contraseña, un botón y  un textblock que mostrará un mensaje que nosotros elijamos, podemos alinearlo a nuestro gusto de forma gráfica o mediante los atributos margin en el que se establecen los diferentes margenes establecidos por comas, HorizontalAligment donde daremos una orientación tipo left, center o right y el atributo VerticalAligement que admite “Top, Bottom o Center”.

interfaz

Además, en nuestro ejemplo usaremos el atributo “text” para que aparezca el texto por defecto “Usuario” en el textbox, de esta forma el usuario sabrá que debe introducir y de la misma forma vaciaremos el atributo Text del TextBlock, dejandolo en Text=””, de esta forma no se verá al arrancar el programa, por último debemos cambiar el texto del botón, esto se hace a través del atributo Content=”TEXTO” en lugar del atributo text, que usamos en los elementos anteriores.

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
   <TextBlock HorizontalAlignment="Left" Margin="83,37,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top" RenderTransformOrigin="0.643,-0.059"/>
   <TextBox HorizontalAlignment="Left" Height="72" Margin="68,151,0,0" TextWrapping="Wrap" Text="Usuario" VerticalAlignment="Top" Width="305"/>
   <PasswordBox HorizontalAlignment="Left" Margin="68,228,0,0" VerticalAlignment="Top" Width="305"/>
   <Button Content="Entrar" HorizontalAlignment="Left" Margin="165,326,0,0" VerticalAlignment="Top"/>
</Grid>

Continuar leyendo

Categorías: Programación
Etiquetado , , , , | 7 comentarios

12 Junio, 2013 a las 20:38

windows_phoneSin duda la programación para dispositivos móviles es uno de los aspectos que mas está evolucionando y valorándose en los últimos años, por lo que conocer las diferentes plataformas es muy importante, sin duda en cuanto a propagación y cantidad de dispositivos Android es el líder del mercado, no obstante iOS y Windows Phone tienen entornos de programación de una calidad impresionante.

Por todo lo comentado y por que hace un tiempo hicimos un pequeño curso de programación en Android, vamos a empezar un curso de programación en Windows Phone.

Instalación del SDK

En Windows Phone se programa tanto en Visual Basic . Net como en C#, en nuestro caso los  ejemplos los haremos en C# ya que está mas propagado y a mi parecer bastante mejor documentado que VB.

Como todo lenguaje en .Net utilizaremos el SDK Visual Studio, podemos utilizar tanto Visual Studio 2010 como 2012. No obstante, si utilizas Windows 8 solo podrás utilizar la versión 2012. En nuestro caso utilizaremos la versión 2012 que puedes descargar gratuitamente, una vez instalado crearemos nuestro primer proyecto desde archivo>Nuevo proyecto Continuar leyendo

Categorías: Programación
Etiquetado , , , , , , | 10 comentarios

24 Abril, 2013 a las 20:22

antivirusHace un tiempo vimos las diferentes formas en las que un antivirus detectan las amenazas, centrándonos en el análisis de firmas y vimos una forma básica de burlarlo. En esta entrada (2.1) y en la siguiente (2.2) nos centraremos en los análisis heurísticos que tratan de identificar el malware a través de su comportamiento. Por ejemplo, si un ejecutable se copia a los diferentes pendrives  y se conecta a un servidor , es muy probable que un antivirus lo detecte como una amenaza.

Generalmente los antivirus corren los ficheros en un sandbox donde analizan su comportamiento. Una vez sabemos básicamente como funcionan estos análisis vamos a ver cuatro ejemplos de cómo burlar este tipo de análisis, que van desde saturar el proceso dedicado al análisis a detectar si estamos siendo analizados por un antivirus para realizar unas acciones u otras. En nuestro ejemplo usaré un Keylogger programado para la ocasión y el antivirus AVG el cual tiene protección heurística y como podemos ver es identificado como una amenaza.

Excediendo el tiempo límite de análisis.

Este es el ejemplo mas básico de los que vamos a ver, se basa en la limitación de los antivirus a la hora de analizar un fichero y es que por razones de optimización no es capaz de mantener un análisis constante hacia un fichero pasado un tiempo sin actividad sospechosa lo toma como fiable, este método aunque puede sonar sencillo es tenido en cuenta por muchos antivirus que suprimen las “pausas” que tenga el proceso, así que lo correcto es que el malware realice acciones legítimas durante el tiempo que dura dicho análisis a fin de ser considerado un software no malicioso. Un ejemplo de esto es el siguiente código:

Para vurlarlo en este primer ejemplo lo que haremos es iniciar la función keylogger() pasado un determinado tiempo, sin realizar llamadas a Thread.sleep o demás formas “deducibles”, para ello iniciamos en un hilo a parte una funcion encargada de ver si ha pasado dicho tiempo

  double inicio; //Guarda el milisegundo en el que se inicia el programa
 private void Form1_Load(object sender, EventArgs e)
        {
            inicio = new TimeSpan(DateTime.Now.Ticks).TotalMilliseconds;
            hilo_key = new Thread(startKeylogger);
            hilo_key.Start();
        }

Como podéis ver lo primero que hacemos es comprobar el momento en el que se ha iniciado la aplicación y guardarlo en la variable global inicio, a continuación llamamos al proceso startKeylogger la cual se encargará de ver si ha pasado el tiempo indicado como vemos a continuación Continuar leyendo

Categorías: Malware, Pentesting, Programación, Seguridad
Etiquetado , , , , , , | 3 comentarios

18 Abril, 2013 a las 14:04

seguridadHoy quiero compartir un método de ingeniería social que nunca he visto documentado, pero muy creíble y eficaz que se apoya de la propiedad que tienen muchas aplicaciones (Web o de escritorio) de realizar peticiones HTTP a servidores remotos. Un buen ejemplo sería la particularidad que tienen los foros de Internet a incluir imágenes de servidores externos mediante la etiqueta [IMG] o <img>.

Estas peticiones envían nuestras cabeceras igual que a cualquier otra Web y podemos enlazar imágenes o un fichero php corriente, la única diferencia es que el navegador intentará mostrarlo como una imagen una vez descargado y quizás no pueda, pero en la parte de servidor se ejecutará todo igual, por lo que estas consultas pueden diseñarse para realizar cualquier acción que se le permita al navegador y es aquí donde se puede aprovechar la ingeniería social para perpetuar ataques tipo phishing, entre otros.

Un caso típico de phishing es enviar un enlace donde se pide un usuario y contraseña simulando ser una página legítima, estadísticamente sigue funcionando, pero a día de hoy no es tan efectivo por que es fácilmente detectable con solo ver la URL, además la gente está bastante “educada” de no abrir enlaces desconocidos, así que lo que veremos es como solicitar las credenciales a un usuario sin que este visite un sitio Web, simplemente le aparecerá la ventana de login mientras abre un hilo.

Caso práctico: Robo de credenciales de un foro sin abandonar la Web

Como hemos visto antes, una consulta HTTP que solicita una imagen es exactamente igual a una consulta que solicita un fichero, una imagen puede tener extension .php o cualquier otra. Los captcha, por ejemplo al ser una imagen dinámica tienen extensión .php ya que se autogeneran a si mismos cada vez que se imprimen ¿pero cómo puede utilizarse esto en un ataque de phishing? El protocolo HTTP incluye una característica de autentificación que permite al administrador poner ciertos ficheros o directorios bajo contraseña, al realizar una petición hacia ellos el usuario verá un formulario de login, si habéis entrado a un router sabréis de lo que estoy hablando. Un ejemplo de fichero que solicita contraseña al recibir una petición HTTP sería este

fichero.php

<?php
    header('WWW-Authenticate: Basic realm="http://www.forodeejemplo.com/fileattach?foto.jpg"');
    header('HTTP/1.0 401 Unauthorized');
    exit();
?>

Continuar leyendo

Categorías: Internet, Pentesting, Privacidad, Seguridad
1 comentario

13 Abril, 2013 a las 14:57

mysqlSi habéis seguido el post inicial del curso os habréis dado cuenta de que SQLmap es una potente herramienta, mucho mas que un simple detector de SQLinjection es un potente framwork para la explotación de esta vulnerabilidad. En la pasada entrega aprendimos a buscar vulnerabilidades mediante las variables GET, a realizar consultas SQL y a volcar las bases de datos a nuestro disco duro, pero no debemos cerrarnos únicamente a las variables GET, ya que hay muchos apartados como buscadores, formularios de login que funcionan mediante las variables POST y Cookies lo cual supone cerca de un 70% de los “Inputs” de cualquier Web, por eso hoy veremos como buscar inyecciones de SQL en POST y Cookies. Además, aprenderemos a recolectar información acerca del usuario de la base de datos y sus permisos. Es muy importante tener en cuenta que para seguir este curso es necesario tener conocimientos de HTML y SQL Injection

Realizando un ataque hacia un formulario de login

Lo primero para esto es saber hacia que Web lanza la petición nuestro formulario, puesto que el lector de este curso tiene conocimientos de HTML no voy a reparar en explicar como saberlo, en nuestro caso la petición se hará contra checkuser.php, y los campos del formulario se llamarán inputUser e inputPassword

./sqlmap.py -u "http://ejemplo.com/checkuser.php" --data="inputUser=Admin&inputPassword=12345"

Como veis, igual que en los ejemplos anteriores introducimos la URL, pero despues añadimos el modificador --data, el cual define todos los datos que serán enviados mediante el método POST, las variables se separan con “&” igual que se hace en la cabecera.

Continuar leyendo

Categorías: Internet, Pentesting, Seguridad, Utilidades
Etiquetado , , , , , , , , | 3 comentarios

10 Abril, 2013 a las 20:45

2222Hace unos días os presentaba mDrive, un nuevo proyecto que estoy realizando para  sincronziar ficheros entre dispositivos de forma automática. Hoy os traigo una actualización del programa que trae las siguientes mejoras:

screen

  • Sistema de actualizaciones: mDrive es capaz ahora de detectar nuevas versiones y e instalarlas.
  • Mejora de velocidad: Se ha aumentado un 100% la velocidad a la hora de detectar cambios en nuestros ficheros y reducido un 50% del código.
  • Disminución del ancho de banda: Se ha conseguido optimizar el proceso de sincronización de forma que ahora realiza comprobaciones del listado de directorio remoto de forma incremental lo que reduce considerablemente el uso de ancho de banda.
  • Añadida la opción de mostrar u ocultar notificaciones al actualizar un fichero.
  • Corrección de errores menores

Ahora mismo mDrive está en desarrollo pero puedes probarlo gratuitamente utilizando nuestros servidores creando una cuenta de prueba.

descargar

A continuación os dejo unas gráficas de diferencia de rendimiento entre versiones. Continuar leyendo

Categorías: Cloud Computing, mDrive, Proyectos, Servidores, Utilidades
Etiquetado , , , , , , | 2 comentarios