domingo, 29 de junio de 2014

FFMPEG Convertidor en formatos de audio y vídeo

Convertir formatos de video con ffmpeg
Para hacer esto tienes que tener instalado ffmpeg, si no lo tienes, lo puedes instalar con el comando:

sudo apt-get install ffmpeg

Una de las opciones para hacer las conversiones es con la Interfaz Gráfica, que podemos instalar con el comando:

sudo apt-get install winff

Para poder trabajar con los formatos de video .ogg y .ogv instalamos mencoder con el comando:

sudo apt-get install mencoder

Para poder trabajar con CODECS PRIVATIVOS o con problemas de licencia instalar el paquete Ubuntu Restricted Extras (para mp3...) con:

sudo apt-get install ubuntu-restricted-extras

Si nos encontramos problemas para convertir a .avi es que nos falta el paquete libavcodec-unstripped-52. Lo instalamos ejecutando en una terminal el siguiente comando:

sudo apt-get install libavcodec-unstripped-52

La forma de convertir videos es la siguiente:

ffmpeg -i video_a_convertir.avi video_convertido.mpg

Las opciones:
-i → Lo comentado. La orden básica para iniciar la conversión de archivos.
-b → El bitrate del vídeo resultante tras la conversión. El bitrate es uno de los determinantes de la calidad de imagen del vídeo resultante. Esto también afectará al peso total del archivo tras la conversión; algo a tener en cuenta si deseamos grabar el vídeo en formato físico (dvd’s, cd’s, etc.) o no contamos con memoria suficiente en el dispositivo externo de memoria.
-vcodec → la codificación que utilizaremos para el vídeo resultante. Como véis, en este caso es mpeg4.
-s → las dimensiones del vídeo. En el caso de ejemplo, 640×360.
-acodec → códec elegido para el audio.
-ac → canales de audio establecidos. Si no los establecemos, por defecto se determina un canal.
-ab → el bitrate del audio.
Obviamente, el proceso de conversión consumirá más o menos tiempo en función de la portencia de vuestro equipo, de las variables de ejecución de ffmpeg y del archivo a convertir.

EJEMPLOS:


De .mov -> .avi


ffmpeg -i video.mov -sameq -vcodec msmpeg4v2 -acodec pcm_u8 video.avi

De .avi -> .mp4

ffmpeg -i video.avi -b 750000 -vcodec mpeg4 -s 640×360 -acodec libfaac -ac 2 -ab 96000 video.mp4

De .flv -> .avi

ffmpeg -i video1.flv video2.avi

Se puede controlar los ratios de compresión, resolución... (peso y calidad), por ejemplo:

ffmpeg -i video.wmv -ab 56 -ar 22050 -r 15 -s 320×240 video.flv

Formatos de audio
ffmpeg -i audio.wma -f mp3 -ab 192 audio.mp3

ffmpeg -i audio.mp3 -acodec amr_nb -ar 8000 -ac 1 -ab 32 audio.amr

ffmpeg -i audio.wav -acodec mp3 -ab 32 -ar 44100 audio.mp3

ffmpeg -i video.mpg -f mp3 audio.mp3

Fromatos de video
ffmpeg -i video.avi -acodec mp3 -ar 11025 video.flv

ffmpeg -i video.avi -target pal-vcd video.mpg

ffmpeg -i video.mpg -vcodec flv -y video.flv

ffmpeg -i video.flv video.mpeg

ffmpeg -i video.flv video.avi

jueves, 19 de junio de 2014

Consultar IP pública desde terminal

Puedes consultar la ip publica desde tu terminal  con un sólo comando, o vía web si lo deseas en el mismo sitio.

El sitio en el que consultas es: ifconfig.me

TERMINAL:
 curl ifconfig.me

WEB
http://ifconfig.me 

en la web podrás ver algo como esto:









































miércoles, 18 de junio de 2014

Encriptar archivos con GPG

Si quieres encriptar tus archivos para que nadie tenga acceso a ellos, más que la persona que tenga la contraseña, lo puedes hacer con GPG (GNU Privacy Guard)

GPG maneja los tipos de cifrado: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224

ENCRIPTAR:

Opción 1
gpg -c miarchivo.tar.gz

esto nos pedirá una contraseña que será asignada al binario encriptado y generará un archivo binario .gpg
NOTA: si no recuerdas tu contraseña jamás vas a poder abrir tu archivo de nuevo

Opción 2
Si prefieres que se encripte en modo texto y no en binario ejecuta:
gpg -ca miarchivo.tar.gz


El comando anterior generará un archivo sac que se puede abrir con cualquier editor de texto plano, aunque no será legible su información.

Opción 3
Si quieres que tu archivo encriptado tenga otro nombre:
gpg -o otronombre.tar.gz.gpg -c miarchivo.tar.gz

Esto lo puedes hacer para archivos individuales, pero si lo que necesitas es proteger directorios completos, te recomiendo comprimirlos primero y luego encriptarlos como en los ejemplos anteriores.


DESENCRIPTAR:

gpg -d miarchivo.tar.gz.gpg

Nos pedirá la contraseña para desencriptar el archivo.

Si deseas más información para los usos y posibilidades de GPG puedes ejecutar :
gpg --help


viernes, 23 de mayo de 2014

Analisis forense a whatsapp (cracking msgstore.db.crypt5)

 Este tutorial es para los que tienen respaldos de conversaciones con la extensión  crypt5  de Whatsapp. Si tienes el crypt normal puedes ver el post anterior:
http://villatux.blogspot.mx/2013/04/analisis-forence-whatsapp-cracking.html


Este nuevo tipo de encripción  utiliza el correo de google con el que está registrado el telefono + una llave para formar la llave de encripción:

echo -n micorreo@gmail.com | md5sum
f114f9011ed7050730b29d78ba7f2883

El MD5 resultante tendrá un valor de 32 dígitos hexadecimales  y tendremos que convertirlo a un valor de 48 digitos agregando los primeros 16 digitos al final del hash resultante ,  nos quedaría algo así la llave para des encriptar:

f114f9011ed7050730b29d78ba7f2883f114f9011ed70507


Ahora necesitamos hacer una operación XOR en el hash obtenido de 48 digitos,  el resultado nos dará la llave para desencriptar. Para esto es necesario un valor inicializador :

1e39f369e90db33aa73b442bbbb6b0b9

Ya teniendo estos valores requeridos , usamos openssl para desencriptar el archivo directamente:

openssl enc -aes-192-cbc -d -nosalt -in msgstore.db.crypt5 -out msgstore.db -K [key] -iv [iv]

Para hacer el proceso más sencillo Mohamed Ibrahim escribió el siguiente script que hace todo el proceso. Para esto es necesario pasarle como parámetro el correo electronico con el que está registrado el teléfono, el nombre de el archivo encriptado  y el nombre de el archivo de salida como el siguiente comando:

./script.sh micorreo@gmail.com msgstore.db.crypt5 > msgstore.db


 SCRIPT:
#!/bin/bash
 
function xor24 ()
{
  x24=$1
  y24=$2
  z24=""
   
  for ((i=0;i<48;i=i+2))
  do
    x=${x24:$i:2}
    y=${y24:$i:2}
    z=`printf "%02x" $((16#$x^16#$y))`   
    z24="${z24}${z}"
  done
  echo $z24
}
 
 
if [ "$#" -ne 2 ] ; then
  echo "Usage: $0 (primary-android-email-account) (whatsapp-inputfile) > outputfile"
  exit 1
fi
 
key=8d4b155cc9ff81e5cbf6fa7819366a3ec621a656416cd793   
iv=1e39f369e90db33aa73b442bbbb6b0b9
emailacct="$1"
infile="$2"
 
md5_16=`echo -n $emailacct | md5sum | cut -c -32`
md5_24=`echo -n $md5_16 ; echo $md5_16 | cut -c -16`
aeskey=`xor24 $key $md5_24`
 
#openssl enc -aes-192-cbc -d -nosalt -in $infile -K $aeskey  -iv $iv
openssl enc -aes-192-cbc -d -nosalt -nopad -bufsize 16384 -in $infile -K $aeskey  -iv $iv

jueves, 22 de mayo de 2014

Bloquear dominios con POSTFIX (spam)

Al menos una ves en la vida, si no es que muy seguido, hay spamers que lanzan sus ataques desde nuevos "dominios. Lo cual hace muy complicado la administración deL MTA
Si tu sistema de bloqueo anti-spam aún no cubre el dominio de las cuentas desde las cuales te están enviando spam tienes estas opciones:

Opcion 1 :  bloquear correo por correo, para eliminar posibles ataques desde esa cuenta de correo   en /etc/postfix/access (lo explicaré en otro post)

Opcion 2 : bloquear el dominio completo (tema del post)

En la variable de configuración smtpd_recipient_restrictions que tiene tu /etc/postfix/main.cf  (si no lo tiene lo puedes agregar)

En esta parte puedes hacer:

Una lista  de direcciones (hash) de correo a bloquear por ejemplo: comochingo@spam.com, ventas@spam.com, premios@spam.com  y así sucesivamente escribiento cada direción exacta para bloquear

Una expresión regular (regexp) para bloquear todo lo que sea @spam.com

Con la finalidad de que no se vea "sucio" tu archivo de configuración main.cf recomiendo que agregues tu regexp de la forma:

regexp:/etc/postfix/dominios_bloqueados

quedando así:

smtpd_recipient_restrictions =
permit_mynetworks
reject_unauth_destination
regexp:/etc/postfix/dominios_bloqueados
permit_sasl_authenticated
reject_non_fqdn_hostname
reject_non_fqdn_sender
reject_invalid_hostname
reject_unknown_sender_domain
reject_unknown_recipient_domain
reject_rbl_client blackholes.mail-abuse.org
reject_rbl_client list.dsbl.org
reject_rbl_client sbl.spamhaus.org
reject_rbl_client cbl.abuseat.org
reject_rbl_client dul.dnsbl.sorbs.net

Una vez hecho esto creas la lista de tus dominios que quieres bloquear en : regexp:/etc/postfix/dominios_bloqueados de la siguiente manera:

/@spam\.com$/ 521
/@otrodominio\.com$/ 521
/@otrootro\.com$/ 521

NOTA: los códigos de el MTA los puedes consultar AQUI

Si no queremos bloquear el dominio completo, cambiamos "regexp:"  por "hash" y el archivo de la siguiente forma:

comochingo@spam.com 521
ventas@spam.com 521
premios@spam.com 521

Ya terminado las configuraciones  creamos un archivo entendible para el MTA a partir de nuestra lista con el comando

postmap /etc/postfix/dominios_bloqueados

después de esto recargamos nuestro POSTFIX  para que funcione con la nueva configuración:

/etc/init.d/postfix reload

Esto te ayudará bastante en la administración de tu servidor de correo.