viernes, 12 de junio de 2015

Test ports (applications) from command line UNIX

Commands to test applications (ports open)

Here you go three commands to test ports open. in this case im testing the port 80 of the site google.com


nc -v google.com 80

telnet google.com.mx 80


nmap google.com.mx -p 80




miércoles, 10 de junio de 2015

Start and stop services in AIX (SSH)




1.First check the status of the service (SSH) giving the below command
#lssrc -s sshd



2. Stop the service (SSH) by giving the below command

#stoptsrc -s sshd 

3. Start the service (SSH)
#startsrc -s sshd 

Note:
If you want to list all available services on the machine:

#lssrc -a 

For more information about the commands:
man

lunes, 24 de noviembre de 2014

Bloquear y desbloquear direcciones IP con iptables

Una de situaciones más importantes como Administrador de sistemas es la seguridad, es por eso que en este post les mostraré como bloquear direcciones ip en un servidor para que no tengan acceso a el   o bien bloquear las conexiones salientes hacia una IP determinada (en el caso de que se use ese servidor como gateway/router)


BLOQUEAR

Bloquear acceso a ip: 

iptables -A INPUT -s 189.240.240.8 -j DROP

Bloquear acceso a ip pero en un puerto y protocolo especifico:

iptables -A INPUT -s 189.240.240.8 -p tcp --destination-port 25 -j DROP

Bloquear conexión hacia IP: 

iptables -A INPUT -d 189.240.240.8 -j DROP

DESBLOQUEAR

Desbloquear acceso de IP:

iptables -D INPUT -s 189.240.240.8 -j DROP

Desbloquear conexión a hacia IP:

iptables -D INPUT -d 189.240.240.8 -j DROP



Ver reglas de iptables:
iptables --list



REGLAS PERMANENTES

Si deseas que estas reglas se queden de manera permanente es necesario instalar :

apt-get install iptables-persistent

para luego ingresar las reglas que iptables cargará desde el inicio de el equipo.

Archivo para IPv4: /etc/iptables/rules.v4 

Archivo para IPv6: /etc/iptables/rules.v6




viernes, 14 de noviembre de 2014

Realizar conexiones SSH sin password

En este post le mostraré como hacer conexiones SSH sin utilizar password de manera permanente.


Escenario:



PC2 necesita conectarse a PC1 por ssh sin utilizar password



Procedimiento:

1 ) Generar la llave pública (en PC2)

ssh-keygen -b 4096 -t rsa

Te pedirá tres datos,  en todos ellos solo es necesario dar [ENTER] sin introducir información

2 )  Mandar la llave pubica de PC2 a PC1

ssh-copy-id root@192.168.0.2

Te pedirá por única ocasión la contraseña de PC1

A partir de este momento podemos hacer una conexion SSH a PC1 sin utilizar password:
Ejemplo:
ssh root@192.168.0.2


NOTAS:
* En ambos equipos es necesario tener el servidor ssh
* Se deben respetar los usuarios con los que se generan las llaves públicas ya que con esos mismos usuarios deberás hacer la conexión SSH para que no te pida password.  si usas otros usuarios te lo pedirá.








miércoles, 12 de noviembre de 2014

SSH Inverso (saltando firewall con ssh)

Propósito:
Acceder a PC1 por ssh (está bajo firewall) desde PC2 (Con acceso público)




PASO 1 (en PC1)
ssh -v -NR 3333:127.0.0.1:22 villatux@189.224.13.X

- Nos pedirá el password de PC2

PASO 2 (En PC2)
ssh -v usuario@127.0.0.1 -p 3333

- Nos pedirá el password de PC1

Con esto podremos establecer conexión SSH desde PC2 A PC1 sin la necesidad de que PC1 tenga abierto los puertos de SSH en su firewall local

viernes, 10 de octubre de 2014

Generar contraseñas random

Cuando generas muchas cuentas de usuario, es muy engorroso ponerle una contraseña a cada uno y asegurarte de que sea segura.


Con este comando puedes generar contraseñas tan seguras como gustes de manera random,  el cual puedes utilizar en tus scripts de creación de usuarios:

 date +%s | md5sum | base64|  head -c 8 ; echo

Descripción:

date +%s  :  nos muestra la fecha en formato timestamp indicando los segundos
md5sum : encripta la salida anterior en md5
base64 :  encripta la salida anterior en base64
head -c 8: muestra solo los primeros 8 caracteres

martes, 7 de octubre de 2014

Error en Postfix "Message size exceeds fixed limit"

Cuando ocurre este error no pueden salir correos por medio de el servidor, y esto es debido a que el correo es muy pesado o el adjunto está muy grande y pesado.

Para solucionarlo cambiamos los valores de /etc/postfix/main.cf a lo siguiente :
mailbox_size_limit = 0
message_size_limit = 0
virtual_mailbox_limit = 0



si no tienes estos parámetros, puedes incluirlos en el archivo de configuración



viernes, 26 de septiembre de 2014

Vulnerabilidad en BASH CVE-2014-6271 "Shellshock"

Les dejo este howto para que actualicen el paquete "bash" ya que tiene la vulnerabilidad  BASH CVE-2014-6271 "Shellshock"   y con ella tu servidor puede ser comprometido y con el toda la información contenida.

Verifica si eres vulnerable
En una terminal ejecuta el siguiente comando:
env x='() { :;}; echo vulnerable' bash -c "esto es una prueba"

Si eres vulnerable te saldrá un mensaje:

vulnerable
esto es una prueba

Si no eres vulnerable te saldrá unicamente:

esto es una prueba

Para actualizar bash primero debes actualizar la lista de paquetes 
apt-get update

y luego actualizar bash
apt-get install --only-upgrade bash

Si no se actualizó bash, es que no tienes correctamente tus repositorios de paquetes.

edita el /etc/apt/sources.list  y agrega el siguiente repo:
deb http://ftp.debian.org/debian sid main contrib non-free

despues e esto vuelve a actualizar bash

jueves, 4 de septiembre de 2014

Vaciar la cola de correo en postfix

Es una de las cosas secillas pero no menos importantes a la hora de administrar un servidor de correo.

Mostrar los correos encolados:
mailq

Eliminar un correo en cola:

postsuper -d queue_id

Ver contenido de un correo:

postcat -q queue_id

Eliminar TODOS los correos en cola:

postsuper -d ALL

lunes, 18 de agosto de 2014

Sustituir palabras en VI /VIM

A veces estamos editanto archivos ya sea de configuración o programación, y resulta necesario cambiar muchas coincidencias en patrones de texto dentro de nuestros archivos.

para cambiar de una sola vez todos los patrones dentro de VI podemos usar este comendo dentro de la edición:
%s/palabra_a_sustituir/palabra_nueva/g

jueves, 24 de julio de 2014

El primer smartphone holográfico de mundo: Takee 1

A mi parecer es un nuevo mundo en el nicho de videojuegos y aplicaciones para automatización o ejecución de acciones a distancia.

Juzgalo por ti mismo:


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.

miércoles, 21 de mayo de 2014

Mostrar conversaciones de whatsapp en HTML

Anteriormente les comentaba como desencriptar los respaldos automáticos de Whatsapp : http://villatux.blogspot.mx/2013/04/analisis-forence-whatsapp-cracking.html


Ahora les pongo a disposición este script para mostrar en tu webserver las converzaciones de Whatsapp (Previamente desencriptadas) y se vean como en la siguiente imagen:



Script:
s

PD. Disculpen que les ponga el código en imagen, pero blogger no me permitió poner parte de el en este post.

martes, 20 de mayo de 2014

Compartir red / internet a partir de Cable de red en Ubuntu


LAN a Wifi




Anteriormente les comentaba como compartir red/internet  de  Wifi -> LAN  en el post: http://villatux.blogspot.mx/2014/02/compartir-red-internet-partir-de-wifi.html


Ahora les comento la forma inversa de hacer esto,  o sea de LAN -> Wifi


esto se hace buscando las opciones de red:


Nos saldrá la siguiente pantalla, y habilitamos la red inalambrica:
  


Damos clic en "Usar como hotspot"  :


Confirmamos la activación:


Y finalmente nos arrojará el nombre de la red (SSID)  y contraseña para conectarte rapidamente:



NOTA:   Es opcional hacer una configuración para cambiar el modo de cifrado, SSID y otros parametros personalizados.


miércoles, 30 de abril de 2014

Solución a GPG error "NO_PUBKEY"

Esto sucede por que la cláve publica para un repositorio ha cambiado ó no existe, y por tal motivo no se pueden instalar paquetes o simplemente actualizar los existentes.

W: GPG error: http://debian.uchicago.edu etch Release: The following signatures couldn’t be
 verified because the public key is not available: NO_PUBKEY 7D570D06M42584E2

PROBLEMA:
Cuando queremos actualizar la lista de paquetes nos aparece esto:
$sudo apt-get update
Get:1 http://debian.linux.org.tw lenny Release.gpg [394B]
Get:2 http://debian.linux.org.tw lenny Release [73.6kB]
Get:3 http://debian.linux.org.tw lenny/main Packages [5310kB]
Fetched 5384kB in 1m13s (73.5kB/s)
Reading package lists... Done
W: There is no public key available for the following key IDs:
7D570D06M42584E2
W: You may want to run apt-get update to correct these problems


SOLUCIÓN:
Ahi nos muestra el error, el cual podemos solucionar con los siguientes comandos para agregar la llave publica para los paquetes que están teniendo problemas:
$ gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 7D570D06M42584E2

# You should see the following output while executing the above command.
gpg: Total number processed: 1
gpg:               imported: 1

$ gpg --armor --export 7D570D06M42584E2 | apt-key add -
OK

$sudo apt-get update

Con esto ya no debe salir errores al actualizar o instalar paquetes:

LayoutIt! (crea plantillas web con bootstrap online)

Un excelente sitio, para crear plantillas web  con, html, css y javascript  usando una interfaz muy amigable con la cual puedes arrastrar al diseño y descargar tu código generado.

Enlace: http://www.layoutit.com/