Aplicaciones que deberías usar en tu PS3

Más allá de ser una gran consola para jugar, la PlayStation 3 tiene muchas más utilidades como si se tratase de un computador ya que en el podemos navegar por Internet, ver películas, escuchar música e incluso jugar esos clásicos títulos de la Super Nintendo y otra cantidad de consolas haciendo uso de emuladores, también existen distribuciones Linux especialmente diseñadas para correr en la PS3 y aunque en la actualidad el proceso de instalación es más difícil que antes por algunas restricciones establecidas por Sony, aun es posible hacerlo.

Las siguientes aplicaciones son las que yo uso en mi consola y en mi parecer no deberían faltar, cabe mencionar que algunas son hombreak  y requieren Jailbreak, para su instalación bajas el archivo .pkg lo copias en un pendrive y luego en la consola vas a Juego->Install Packages Files y sigues los pasos.

PS3 Media Server

No es precisamente una aplicación para el Ps3 sino para el computador, permitiéndonos crear un servidor multimedia para reproducir películas y audio vía “streaming” por medio de la red local, de esta forma se evita estar moviendo archivos de un disco a otro teniendo todo en un solo sitio ¿genial verdad?. El programa soporta múltiples codecs, hasta el momento me ha reproducido todo lo que le he puesto y lo mejor es que funciona en Windows, Linux y Mac OS X, además de eso también te sirve con otros dispositivos como Televisores, teléfonos Android, Xbox 360 y más.

Descargar PS3 Media Server Continuar leyendo…

¡El Día de la Libertad del Software se acerca!

Para todos los interesados en Software Libre y el mundo que lo rodea, sean novatos o no, sé que les interesará participar en este evento llamado Software Freedom Day (SFD) o en español Día de la Libertad del Software que es celebrado a nivel mundial por diferentes comunidades y colaboradores de cada ciudad, con la principal idea de dar a conocer los beneficios del Software Libre aplicado a diferentes tipos de necesidades como empresariales, de educación y como no, ocio; para ello se realizarán diferentes tipos de actividades como talleres, conferencias, torneos y más allá de eso es un espacio ideal para conocer personas con el mismo gusto por la informática y sus derivados.

El evento será realizado el día 17 de septiembre, la hora puede variar dependiendo de la ciudad en ese caso puedes pasarte por la Wiki del SFD y ver información más detallada. Por mi parte asistiré a la ciudad de Bogotá gracias a la invitación que nos hicieron para que Red Informática Colombiana se hiciera cargo de realizar el Wargame para el evento. ¡Nos vemos allá!

Comparar dos imágenes pixel a pixel

Un sencillo método a tener en cuenta para retos de esteganografía:

<?php
$original = imagecreatefromjpeg('1.jpg');
$modified = imagecreatefrompng('2.png');
$size = getimagesize('1.jpg');
$output = imagecreate($size[0], $size[1]);
imagecolorallocate($output, 255, 255, 255);
$cblack = imagecolorexact($output, 0, 0, 0);
for ($a = 0; $a < $size[0]; $a++) {
for ($b = 0; $b < $size[1]; $b++) {
$colororiginal = imagecolorat($original, $a, $b);
$colormodified = imagecolorat($modified, $a, $b);
if ($colororiginal != $colormodified)
imagesetpixel($output, $a, $b, $cblack);
}
}
imagepng($output, 'resultado.png');
?>

¿Qué es Open Graph protocol y cómo funciona?

Para definir Open Graph de una forma sencilla piensa en el momento cuando compartes un enlace en Facebook: lo normal sería ver una imagen, una descripción y un titulo que toma automáticamente Facebook para mostrar, el problema es cuando por ejemplo toma una imagen aleatoriamente del sitio que muchas veces no tiene nada que ver con lo que queremos compartir o en el peor de los casos no aparece una imagen y de la misma forma el titulo y descripción que toma no son descriptivas.

Ahí es donde Open Graph trabaja, permitiendo con un simple método incluir información precisa sobre nuestro sitio web para una correcta representación del contenido de nuestro sitio en redes sociales. En el caso específico de la red social de Mark Zuckerberg, usar este método no solo nos servirá a la hora de compartir un enlace sino también cuando un usuario le de un “me gusta” a un post, en vez de publicarse en su muro un simple enlace aparecerá el titulo, descripción y imagen que nosotros queramos; de esta forma podemos atraer nuevos visitantes/clientes.

¿Cómo funciona Open Graph?

Sencillo, solo debes incluir en la cabecera de tu sitio la etiqueta <meta> especificando la información de la siguiente forma:

<head>
<title>El Tales</title>
<meta property="og:title" content="El Tales"/>
<meta property="og:type" content="movie"/>
<meta property="og:url" content="http://tales.com/info/"/>
<meta property="og:image" content="http://visajes.com/tales.jpg"/>
<meta property="og:site_name" content="Tales"/>
<meta property="fb:admins" content="TU_ID"/>
<meta property="og:description"
content="El tales o visaje visajoso es aquel elemento visaje que se une con el tin
         para formar el visajimiento conocido como TinTales, el cual reune cosillas varias."/>
</head>

Continuar leyendo…

Realizar ataques de fuerza bruta a volumenes TrueCrypt

Antes que nada debo presentarles TrueCrypt para quienes no lo conozcan, es un Software que nos permite encriptar archivos haciendo uso de diferentes algoritmos de cifrado. Lo que más me gustó de este aplicativo es que nos permite crear volúmenes virtuales (como si se tratase de otro disco más en nuestro computador) que en realidad no es más que es un archivo con extensión .tc el cual después de poner la contraseña correcta se “monta” para poder ser usado y así es mucho más sencillo y rápido administrar los archivos del mismo.

En un reto que vi hace algún tiempo para un Wargame, había que realizar un ataque por diccionario a un volumen TrueCrypt y así fue que di con true.crypt.brute, que también puede ser útil en caso de olvidar la contraseña del .tc con archivos importantes. Eso si hay que tener en cuenta que se necesita un buen diccionario y que no es del todo efectivo el ataque, ya que como he visto en algunos casos de personas que usan 50 o más caracteres en su contraseña, haciendo imposible dar con ella usando un diccionario. Otro detalle es que el proceso es muy lento, hay que tener paciencia.

Descargar true.crypt.brute.

Cracking hash with PHP

PHPCracker: Crackear diferentes tipos de hash con PHP

Últimamente resolviendo algunos retos me ha tocado crackear diferentes hash y aunque existen muchos programas para esa labor (como Cain) estos no ofrecen soporte para realizar fuerza bruta a algunos tipos de hash. Por esta razón hice PHPCracker, un sencillo script que permite realizar ataques por fuerza bruta y ataques por diccionario usando PHP.

<?php

if (defined('STDIN')) {
        if (count($argv) < 2) {
            echo "#########################################################################\n" .
            "#           PHPCracker UrbaN77 www.RedInfoCol.org  - www.BrianUR.info   #\n" .
            "#########################################################################\n" .
            "# Uso: php phpcracker.php [Modo] [Nombre del hash] [Hash] [Opciones]    #\n" .
            "# --------------------------------------------------------------------- #\n" .
            "# Modo: usa -b hacer un brute force o -d para un ataque por diccionario.#\n" .
            "# Nombre del hash: Por ejemplo md5, sha1 o cual sea el nombre.          #\n" .
            "# Hash: Hash a crackear.                                                #\n" .
            "# Opciones: Estas dependen del modo elegido.                            #\n" .
            "#  - Charset: min para minusculas, may para mayusculas   o all para las #\n" .
            "#             anteriores con numeros y simbolos (Solo para el modo -b). #\n" .
            "#  - Diccionario: nombre del fichero de tu wordlist (Solo para modo -d).#\n" .
            "#########################################################################";
            exit;
        }
        $modo = $argv[1];
        $tipoHash = $argv[2];
        $hash = $argv[3];

        function crackear($hash, $tipoHash, $charset) {
            if ($charset == "min") {
                $desde = 97;
                $hasta = 122;
            } elseif ($charset == "may") {
                $desde = 65;
                $hasta = 90;
            } elseif ($charset == "all") {
                $desde = 33;
                $hasta = 126;
            } else {
                echo "Necesitas especificar el Charset: min, may o all.";
                exit;
            }
			echo "Crackeando...\n";
            for ($i = $desde; $i <= $hasta; $i++) {
                for ($j = $desde; $j <= $hasta; $j++) {
                    for ($k = $desde; $k <= $hasta; $k++) {
                        for ($l = $desde; $l <= $hasta; $l++) {
                            $salida = hash($tipoHash, chr($i) . chr($j) . chr($k) . chr($l));
                            if ($hash == $salida) {
                                echo "Password encontrado: " . chr($i) . chr($j) . chr($k) . chr($l)."\n";
                                exit;
                            }
                        }
                    }
                }
            }
        }

        if ($modo == "-d") {
            $wordlist = $argv[4];
            if (file_exists($wordlist)) {
                $diccionario = file($wordlist);
				echo "Crackeando...\n";
                foreach ($diccionario as $rel) {
                    $salida = hash($tipoHash, $rel);
                    if ($salida == $hash) {
                        echo "El password es: " . $rel;
                        exit;
                    }
                }
            } else {
                echo "El archivo " . $wordlist . " no existe.";
                exit;
            }
        } elseif ($modo == "-b") {
            $charset = $argv[4];
            crackear($hash, $tipoHash, $charset);
        }
        echo "Password no encontrado :/ intenta probando con otro tipo de hash, otro charset o diccionario.";
} else {
    echo("Necesitas correr este script desde la consola.");
}
?>

Continuar leyendo…

Curso en video sobre el lenguaje corporal

Hace unos días me entró la curiosidad de conocer más detalladamente el funcionamiento del lenguaje corporal y en general el comportamiento humano que en lo personal me parece un tema bastante interesante. De esta forma me encontré con el blog de Álvaro Bonilla, el cual está realizando una serie de vídeos sobre el lenguaje corporal. Totalmente recomendado ver las charlas, te pueden ser útil para socializar mejor o entender que quier decir otra persona o cual es su estado emocional. También en los vídeos se aborda el tema de el lenguaje de la seducción.

Primer episodio

Es clave saber que no sólo comunicas con tus palabras, sino a través de los gestos, de la manera en que te mueves, la manera en que te ves. En este primer vídeo aprenderás más razones que hacen importante esta serie, y también podrás empezar a acercarte a los fundamentos del lenguaje del cuerpo, aprenderemos sobre bloqueos y sobre zonas relevantes del cuerpo.

Puedes ver los otros vídeos aquí.

Herramienta para analisar imaganes

StegSecret: Herramienta para estegoanálisis

Herramienta para analisar imaganesStegSecret es una interesante herramienta para estegoanálisis de imágenes en busca de información oculta, comprobando diferentes tipos de técnicas comunes y patrones usados por programas como camouflage, inThePicture, inPlainView, steghide, dataStealth y entre otros más. Muy útil para wargames cuando necesitas saber rapidamente el tipo de tecnica de un reto de esteganografía antes de ponerte a comprobar manualmente.

Programas y técnicas detectadas

  • camouflage V1.2.1, inThePicture v2, JPEGXv2.1.1, PGE (Pretty Good Envelope) v1.0, appendX v<=4, steganography v1.6.5, inPlainView, DataStash v1.5 y dataStealth v1.0.
  • Programas basados en  técnicas EOF (End Of File).
  • Suporta los formatos BMP, GIF y JPEG.
  • Cuenta con una Base de Datos de Aplicaciones Esteganográficas “bdas v0.1” con más de 40 tipos de técnicas esteganográficas.

En resumen una herramienta que no puede faltar en el repertorio.

Sitio web y descarga de StegSecret.

Enviar datos vía post y get usando cURL y PHP

Continuando con el uso de cURL y PHP veremos la forma de enviar datos ya sea por Post o Get, útil en caso de querer por ejemplo rellenar un formulario de forma automatizada, hay scripts que usan este método para saltar captchas así que las funcionalidades son bastantes.

Enviar datos por Post

Para el envío por de datos por Post se hace uso de CURLOPT_POST y CURLOPT_POSTFIELDS para enviar los parámetros que se quieran, en caso de que dichos parámetros usen espacios se recomienda el uso de urlencode. Manos al código:

//Iniciamos cURL.
$ch = curl_init();
//Accedemos a la URL
curl_setopt($ch, CURLOPT_URL, "http://web.com/for.php");
//Indicamos que vamos a enviar datos por Post.
curl_setopt ($ch, CURLOPT_POST, true);
//Iniciamos una sesion
curl_setopt($ch, CURLOPT_COOKIE, 'COOKIE O SESION');
//Indicamos que queremos imprimir el resultado
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
//Hacemos uso de un User Agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows
NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
//Enviamos los datos por post
curl_setopt ($ch, CURLOPT_POSTFIELDS, "codigo=".urlencode($datos));
//Ejecutamos e imprimimos el resultado
echo curl_exec($ch);

Continuar leyendo…

Uso de cURL en PHP


cURL es una herramienta para usar en un intérprete de comandos para transferir archivos con sintaxis URL, soporta FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP. cURL soporta certificados HTTPS, HTTP POST, HTTP PUT, subidas FTP, Kerberos, subidas mediante formulario HTTP, proxies, cookies, autenticación mediante usuario+contraseña (Basic, DIgest, NTLM y Negotiate para HTTP y kerberos4 para FTP), continuación de transferencia de archivos, tunneling de proxy http y muchas otras prestaciones. De Wikipedia

cURL ofrece miles de usos, normalmente en el ámbito de desarrollo web se usa para trabajar con APIs, extraer información concreta en webs, etc. Manos al código:

//Iniciamos cURL
$ch = curl_init();
//Especificamos en la variable url el sitio al cual nos vamos a conectar
$url = "https://www.brianur.info";
//Accedemos al sitio
curl_setopt($ch,CURLOPT_URL,$url);
/*CURLOPT_RETURNTRANSFER se usa para almacenar el valor de curl_exec
en una variable, en este caso es false porque queremos que se imprima
el resultado en pantalla en vez de almacenarlo en la variable*/
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
/*Opcionalmente en caso de que la web requiera iniciar sesion, se puede
hacer uso de CURLOPT_COOKIE*/
curl_setopt($ch, CURLOPT_COOKIE, 'PHPSESSID=cookie;');
//Como opción podemos indicar un Usear Agent
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows
 NT 6.1; es-ES; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
//Ejecutamos y imprimimos
echo curl_exec($ch);
//Opcionalmente cerramos la conexión.
curl_close($ch);

Continuar leyendo…