El blog de Miguel Díaz
Siguiente
Screenshot mDrive

mDrive

Sincroniza tus documentos, fotografías y programas entre tus ordenadores, comparte tus ficheros con tus conocidos y accede documentos estés donde estés.Saber mas

RoboCAUpy

Copia eficiente de archivos, toda la potencia de robocopy con una interfaz sencilla y fácil de usar. Herramienta perfecta para migraciones de equipos y copia masiva de ficheros.Saber mas

Screenshot RoboCAUpy

Acortador de nombres

Detecta ficheros con nombres largos, acortalos de forma masiva y reduce el tamaño de la ruta a la cantidad de carácteres que quieras.
Saber mas

screenshot Acortador Nombres
screenshot mRemoto

DNSPropagationChecker

Controla la propagación DNS de cualquier dominio. Con un solo clic conocerás al instante si se ha propagado en los diferentes servidores DNS existentes.Saber mas

mRemoto

Administra remotamente equipos, controlalos gráficamente o través de la línea de comandos, envía y recibe archivos, habla con el usuario y mucho mas sin ningún tipo de configuración previa.Saber mas

Screenshot mRemoto
Anterior
Lunes 6 d junio dl 2016

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
2 comentarios
Martes 17 d septiembre dl 2013

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
4 comentarios
Miércoles 14 d agosto dl 2013

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
Viernes 14 d junio dl 2013

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
Miércoles 12 d junio dl 2013

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 , , , , , , | 9 comentarios
Miércoles 24 d abril dl 2013

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
Jueves 18 d abril dl 2013

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
Sábado 13 d abril dl 2013

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 , , , , , , , , | 2 comentarios
Miércoles 10 d abril dl 2013

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
Jueves 4 d abril dl 2013

mysqlLas inyecciones de SQL llevan siendo desde hace años el top de vulnerabilidades Web ya que es fácil cometer un error al validar una entrada, bien por despiste del programador o por desconocimiento. Detectarlas son medianamente fácil mediante el método de ensayo-error, pero justo por eso hay veces se torna una tarea tediosa. Por esto nació SQLmap, que se encargará de probar múltiples combinaciones  hasta dar con una válida. Además, una vez encontrada nos permitirá realizar acciones como descargar la base de datos o consultas SQL. Durante la primera entrega aprenderemos a buscar vulnerabilidades de una Web a través de las variables GET probando diferentes niveles de dificultad y una vez conseguido aprenderemos a ver las diferentes bases de datos, copiarlas a nuestro disco duro o ejecutar consultas SQL. Para seguir este curso debes conocer en qué consisten las inyecciones SQL.

Ejemplo básico de SQLmap para encontrar una vulnerabilidad en variables GET

Como todos sabemos, hay varias formas de enviar variables a un servidor Web, por un lado está GET, que incluye esta información de manera visible en la URL y por otro lado POST, que es aquella información enviada de forma transparente al usuario y generalmente usada en los formularios, pongamos un ejemplo de la típica Web de noticias en las que su URL termina con un id=NUMERO_NOTICIA, en nuestro ejemplo será http://ejemplo.com?id=3, si quisieramos lanzar un escaneo básico a esta Web deberiamos hacer

./sqlmap.py -u "http://ejemplo.com?id=3"

-u establece la URL a analizar, es muy importante poner la URL siempre entrecomillada, especialmente si queremos analizar mas de una variable ya que en caso contrario sqlmap no será capaz de reconocer mas que la primera de ellas.

Si la URL constara de mas de una variable y solo quisiéramos analizar una de ellas, manteniendo el resto estáticas utilizaremos el modificador -p “nombre_variable” para indicar que variable analizar, por ejemplo si tenemos la URL http://ejemplo.com/login.php?user=miguel&password=12345 y quisiéramos analizar la variable password deberiamos poner: Continuar leyendo

Categorías: Internet, Pentesting, Privacidad, Seguridad, Servidores
Etiquetado , , , , , , , , | 6 comentarios
Blog de Miguel Díaz
Diseño Web por Miguel Díaz.