Creación de archivos de autocompletado en Bash

El autocompletado permite predecir lo que el usuario va a escribir. Muchos programas soportan el autocompletado. Por ejemplo, si escribimos ls -- y pulsamos Tabulador en una terminal con Bash u otra shell similar, nos aparecen todas las opciones disponibles que comienzan con --. Si escribimos ls --au y pulsamos Tabulador, se autocompleta el parámetro --author porque es el único que comienza por --au. En el siguiente vídeo se puede ver en acción esta funcionalidad. Continúa leyendo Creación de archivos de autocompletado en Bash

¿Cómo crear un página web en la red Tor?

En este artículo enseño cómo crear un servicio oculto en la red Tor, concretamente un sitio web.

Lo primero que debemos hacer es tener Tor funcionando. Lo más sencillo es descargarse el Tor Browser de la página oficial de Tor e instalarlo.

Lo siguiente es instalar un servidor web. Puedes instalar un servidor GLAMP o cualquier otro tipo de servidor web. Debes configurar tu servidor web para que no dé información sobre ti, sobre tu ordenador o sobre tu ubicación si quieres contar con una mayor privacidad. Es una buena idea usar una máquina virtual.

Lo último es configurar el servicio oculto para que apunte al servidor local anteriormente instalado. Para ello necesitamos editar un archivo llamado torrc. La ruta de este archivo es la siguiente dentro de la carpeta obtenida al descargar Tor Browser: Browser/TorBrowser/Data/Tor/torrc. Si instalaste Tor de otra forma, el archivo torrc se encontrará en otra ubicación (lee la siguiente sección para saber donde encontrar el archivo: https://support.torproject.org/es/#tbb_tbb-editing-torrc).

Debes añadir dos líneas a tu archivo torrc:

  • HiddenServiceDir es el directorio donde Tor guardará la información sobre el servicio oculto. En concreto, Tor creará un archivo aquí llamado hostname que contendrá la URL onion y otro llamado private_key. Este no debe ser el directorio de tu servidor web, pues este directorio contendrá información secreta. No necesitas añadir nada dentro de este directorio
  • HiddenServicePort te permite especificar un puerto virtual (esto es, el puerto que los usuarios del servicio oculto pensarán que están usando) y una dirección IP y un puerto para redirigir las conexiones a este puerto virtual

En mi caso añadí estas líneas:

HiddenServiceDir /home/jorge/Documentos/tor/
HiddenServicePort 80 127.0.0.1

El archivo <code>torrc</code> configurado para ofrecer un servicio oculto

En la anterior imagen puedes ver mi archivo torrc. Cuando elijas el directorio HiddenServiceDir, no lo crees, es mejor que lo haga Tor automáticamente para evitar problemas con los permisos. En mi caso el directorio /home/jorge/Documentos/tor se creó cuando volví a iniciar Tor tras haber guardado el nuevo contenido del archivo torrc.

Una vez escrita en el archivo torrc la información anteriormente mencionada, debes abrir Tor Browser o ejecutar Tor de nuevo. Si no se inicia Tor correctamente, es que has escrito algo mal en el archivo torrc. Revísalo, corrígelo y prueba de nuevo. Si tienes problemas, puedes dejar aquí un comentario para que os intentemos ayudar o contactar con el proyecto Tor.

Si todo ha ido bien, cuando inicies Tor de nuevo, se crearán dos archivos en el directorio que indicaste en HiddenServiceDir, en mi caso en /home/jorge/Documentos/tor. Son los archivos private_key (tu clave privada) y hostname (archivo de texto con tu URL onion).

Cuando te dirijas con el Tor Browser a esa URL, verás el contenido del archivo index.html que está en la carpeta de tu servidor web, si es que existe (en mi caso es /var/www/html/index.html). Ahora puedes crear una página web sencilla y visualizarla en tu URL onion. Cualquiera que conozca esa URL y use Tor podrá ver tu página web.

Mi primera página web en la Deep Web

En https://riseup.net/en/security/network-security/tor/onionservices-best-practices puedes encontrar algunas recomendaciones más a la hora de crear servicios ocultos.

Convertir un vídeo a formato GIF

Animación de un gato hecha con
Pygame

Hay muchas formas y programas útiles para hacer esto. Aquí os cuento mi método:

  1. Si no tienes ffmpeg, instálalo (en distribuciones de GNU/Linux basadas en Debian con sudo apt-get install ffmpeg).
  2. Separa el vídeo en fotogramas: mkdir fotogramas && ffmpeg -i tuvideo fotogramas/fotograma%04d.png (los fotogramas se guardarán en la carpeta fotogramas).
  3. Borra los fotogramas que no necesites (paso opcional).
  4. Une los fotogramas extraídos creando un gif con el programa adecuado. Puedes usar animate (animate fotograma*.png anim.gif) para hacerlo rápido, pero si buscas controlar mejor el espacio de tiempo entre fotogramas utiliza convert (convert -delay 0 -loop 0 fotograma*.png anim.gif). -delay num indica el tiempo entre los fotogramas y -loop 0 quiere decir que cuando acabe de reproducir las imagenes empezará de nuevo. Estas herramientas suelen estar ya instaladas en muchas distribuciones de GNU/Linux, forman parte de ImageMagick (http://imagemagick.org/script/index.php).

Esteganografía sencilla

¿Alguna vez has querido ocultar un mensaje o un archivo en una imagen? Se puede hacer muy fácilmente en menos de treinta segundos.

Instrucciones para ocultar texto en una imagen (demostración práctica)
Ocultando texto en una imagen

En la imagen de arriba lo veis. Realmente, solo hace falta usar la instrucción echo 'Tu mensaje' >> tu_imagen, lo demás es solo para demostraros que funciona y para enseñaros a después el mensaje. La imagen se puede abrir posteriormente sin problema; tiene la misma apariencia. La única diferencia es que ocupa más espacio. En el ejemplo que os he mostrado, la imagen ocupa 15 bytes más que antes, después de haber escrito el mensaje.

¿No entendéis todo el código que he escrito? Tranquilos, ahora lo explico. file favicon.png, me dice el tipo del archivo. ls -l muestra información detallada de todos los archivos del directorio en el que me encuentro. Como solo hay uno, solo aparece la imagen. El número 2588 que aparece tras ejecutarlo es tamaño en bytes de la imagen. Con ls -lh puedo ver el tamaño en un formato más legible, en kilobytes en vez de en bytes. Como solo me interesa el tamaño, paso ls -lh a cut -d" " -f5 por una tubería para que solo me aparezca la columna 5, cada columna está separada por un espacio (" "). Por último, leo el mensaje oculto con strings, que extrae todos los caracteres alfanuméricos encontrados en la imagen.

Si vuelvo a ejecutar la instrucción file favicon.png, encontraré el mismo formato que antes: PNG.

Podemos aplicar este método no solo a texto, sino también a archivos de distinto tipo.

Screenshot from 2016-07-26 23-49-26