jueves, 29 de diciembre de 2011

Publicaciones multimedia sobre GNU/Linux

  El post que nos ocupa proviene de la idea en CPH de hacer una recopilación sobre distintas publicaciones multimedia, ya sea podcast, canciones, entrevistas, documentales y un largo etc sobre GNU/Linux.
  Se agradecen cualquier colaboración para ampliar la lista y esta se irá actualizando conforme encuentre nueva información ;).


PODCASTS

Pánico en el núcleo  -> Pánico en el Núcleo es un programa en audio, de radio o como quieras llamarle, que trata sobre Linux y Software Libre. Intentamos tratar temas que nos resultan interesantes de forma rigurosa, pero sin olvidar el sentido del humor, ya que hacemos esto por amor al arte.

DaboBlog PodCast -> De un modo distendido y (procuramos que así sea) ameno, vamos repasando temas del mundo GNU/Linux (sección Kernel Panic) y de Apple (sección Manzanas Traigo) cada 15 días.

El podcast de Linux Hispano -> El podcast de Linux Hispano es un podcast audiovisual sobre Linux y Software Libre.

Droidcast -> Podcast sobre Android.

Puroandroid -> Podcast sobre Android.



DOCUMENTALES / ENTREVISTAS


REVOLUTION OS -> Parte 1 / Parte 2 / Parte 3 / Parte 4 / Parte 5 / Parte 6 /  Parte 7 / Parte 8 / Parte 9 / Parte 10  --> Muestra la historia de como un grupo de Hackers se reveló contra el modelo de software privativo y Microsoft creando el sistema operativo libre GNU/Linux y el movimiento Open Source o Código Abierto.


Canciones

Villancico Linuxero -> Villancico del podcast de Pánico en el núcleo. 




 Si queréis ver el post original de CPH -> 


Aetsu

sábado, 24 de diciembre de 2011

Conociendo fdisk

  En esta entrada voy a presentar una introducción al programa fdisk que nos permite particionar (mediante la terminal) nuestros sistemas de almacenamiento. Este post no pretende destripar todas las posibilidades del software, sino conocer su utilidad básica para, por ejemplo, poder particionar nuestro HD para instalar una distribución GNU/Linux.

  Empezamos, y lo hacemos viendo las particiones de nuestro disco duro, para ello utilizaremos fdisk con el parámetro -l:
 fdisk -l <disco>
  como ejemplo (en este caso el HD está vacío):
fdisk -l /dev/sda

  Visto ya el estado de nuestro HD, vamos a particionarlo, para ello llamamos al programa fdisk sin parámetros:
 fdisk <disco>
 ejemplo:
fdisk /dev/sda

  Con esto ya estaremos dentro de la herramienta y tendremos múltiples posibilidades (con m mostramos la ayuda):
 
    [+]  p -> mostramos las particiones existentes en el disco.


  [+] n -> para crear nuevas particiones, tanto primarias como extendidas.
              Para el ejemplo crearemos una partición primaria para /boot, por tanto su tamaño serán 128 MB.
       [1]  Al pulsar n nos preguntara si queremos crear una partición primaria (p) o extendida (e),  nosotros escogemos primaria (p).
       [2]  Lo siguiente sera escoger el número de la partición, escogemos la opción por defecto (1).
       [3]  A continuación en aparecer será la posibilidad de escoger el inicio de la partición, dejamos la opción por defecto.
       [4]  Por último el final de la partición o tamaño de esta, nosotros escribiremos +128M.
       
    [+] a -> marcamos la partición como de arranque (para el /boot):
               Para nuestro ejemplo marcaremos como partición de arranque la que acabamos de crear, la primera.
        [1] Escribiremos a y nos dirá que partición queremos marcar como de arranque, escogemos la primera.
        [2] Cuando nos vuelva a pedir que escojamos el comando, pondremos p para ver las particiones y veremos que la partición 1 tiene un asterisco en la columna Boot.


    [+] n -> Esta vez crearemos una partición extendida para el directorio /.
             
Para el ejemplo crearemos una partición extendida para /, por tanto tendrá 7000 MB de tamaño.
       [1]  Al pulsar n nos preguntara si queremos crear una partición primaria (p) o extendida (e), nosotros escogemos extendida (e).
       [2]  Lo siguiente sera escoger el número de la partición, escogemos la opción por defecto (2).
       [3]  A continuación en aparecer será la posibilidad de escoger el inicio de la partición, dejamos la opción por defecto.
       [4]  Por último el final de la partición o tamaño de esta, nosotros escribiremos +7000M.


    [+] n -> Esta vez crearemos una partición primaria para la partición de intercambio swap.
             
Para el ejemplo crearemos una partición primaria para swap, por tanto tendrá el tamaño restante del HD que será alrededor de 800MB.
       [1]  Al pulsar n nos preguntara si queremos crear una partición primaria (p) o extendida (e), nosotros escogemos primaria (p).
       [2]  Lo siguiente sera escoger el número de la partición, escogemos la opción por defecto (3).
       [3]  A continuación en aparecer será la posibilidad de escoger el inicio de la partición, dejamos la opción por defecto.
       [4]  Por último el final de la partición o tamaño de esta, dejaremos la opción por defecto.
       [5]  Como es la partición de intercambio (swap) tenemos que cambiar su tipo, para esto cuando estemos en el promt de Command, escribiremos t.
       [6]  Al preguntarnos sobre a que partición queremos modificar, nosotros escogemos la 3 (la swap).
       [7]  Nos pide que escribamos un código hexadecimal, el referente a swap es 82 (el de las particiones ext es 83 que es la opción por defecto).


-------> Un listado de todos los tipos de partición disponible <-------



    [+] w -> Esta opción escribe las particiones en el disco.


    [+] d -> Ya para finalizar, si quisiéramos eliminar alguna partición con d y seleccionando dicha partición la eliminaríamos.  
    [+] q ->  Nos permite salir sin guardar los cambios.



Con esto concluyo el post, espero que os sea útil y nos leemos en breve.

Aetsu

martes, 20 de diciembre de 2011

#tuxherramienta Nslookup


Antes de comentar esta herramienta debemos saber que son los servidores DNS:
 - El DNS (Domain Name System) es el encargado de transformar los nombres de cualquier ordenador en su dirección IP y viceversa.

  Por ejemplo, cuando ponemos en el navegador www.google.es el DNS es el encargado de convertir esa dirección a su dirección IP 74.125.39.106.



  Para interactuar con el servidor DNS tenemos Nslookup, una herramienta que realiza consultas a estos.

[+] Su sintaxis es simple:
   nslookup <nombre del host>

  Por ejemplo:
$ nslookup www.google.com
Server:         192.168.0.1
Address:        192.168.0.1#53


Non-authoritative answer:
www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 74.125.39.104
Name:   www.l.google.com
Address: 74.125.39.103
Name:   www.l.google.com
Address: 74.125.39.99
Name:   www.l.google.com
Address: 74.125.39.147
Name:   www.l.google.com
Address: 74.125.39.106
Name:   www.l.google.com
Address: 74.125.39.105

    Donde:
      [-] Server es nuestro servidor DNS (en mi caso el router).
      [-] Address es su dirección, acompañada del puerto, 53 en este caso que es el por defecto para un
          servidor DNS.
      [-] A continuación encontraremos su dirección canónica y sus alias.


[+] Un parámetro interesante que podemos pasarle a nslookup es -query seguido de una de las siguientes opciones:
    [-] mx -> nos muestra información relacionada con los servidores de correo del dominio
        especificado.

    [-] cnma -> nos muestra información relacionada con los alias.
    [-] hinfo -> para obtener información relacionado con el sistema operativo del host (si está
        disponible).
    [-] a -> es la opción por defecto y nos permite enumerar  nombres canónicos y alias de un host.
    [-] soa -> nos muestra información del campo SOA (inicio de autoridad).

  Ejemplo:
      $ nslookup -query=mx correu.uv.es
      Server:         192.168.0.1
      Address:        192.168.0.1#53


      Non-authoritative answer:
correu.uv.es    mail exchanger = 20 postin.uv.es.


[+] Existe otro método para utilizar nslookup, y es de forma interactiva.
    Para ello escribiremos en la terminal nslookup y nos aparecerá un ">" que nos permitirá hacer consultas mediante "set q=" utilizando los parámetros antes comentados.

    Ejemplo:
$ nslookup
> set q=a
> www.google.es
 Server:         192.168.0.1
 Address:        192.168.0.1#53

 Non-authoritative answer:
 www.google.es   canonical name = www.google.com.
 www.google.com  canonical name = www.l.google.com.
 Name:   www.l.google.com
 Address: 74.125.39.99
 Name:   www.l.google.com
 Address: 74.125.39.103
 Name:   www.l.google.com
 Address: 74.125.39.104
 Name:   www.l.google.com
 Address: 74.125.39.105
 Name:   www.l.google.com
 Address: 74.125.39.106
 Name:   www.l.google.com
 Address: 74.125.39.147
 >

    Para salir de este modo basta con escribir "exit".


[+] Como observación comentar que también existe una versión web que nos permite realizar las mismas consultas que la versiones locales, la podemos encontrar en:


#Nota: en GNU/Linux la dirección del servidor DNS usado se encuentra en /etc/resolv.conf.


  Este post sobre la herramienta nslookup lo podéis encontrar también en DragonJar en un curso de EH impartido por Leo Banchiero (si alguien quiere apuntarse, bienvenido será).



 Un saludo y nos leemos en breve ;)


Aetsu

miércoles, 14 de diciembre de 2011

Hydra y los dispositivos iOS

  El otro día encontré en exploit-db un paper en castellano sobre "hacking dispositivos iOs" (escrito por  Japson)  mediante un acceso  por SSH. Leyendo el tutorial llegaba a un punto en que comentaba sobre la viabilidad de un ataque por fuerza bruta o ataque de diccionario puesto que la seguridad del servidor SSH del dispositivo era precaria. Debido a este punto me decidí a escribir este post para probar un ataque por diccionario al servidor SSH de un dispositivo iOS (en mi caso un ipod Touch 4) con Hydra.
  Tened en cuenta que este ataque puede ser útil para un servidor de un iOS o de un sistema GNU/Linux por poner un ejemplo, aunque estos estarán mucho mejor protegidos.



[+] Antes de empezar suponemos que la ip del ipod es 192.168.0.14.


[+] Lanzando el ataque con Hydra:
    [-] La sintaxis de hydra para lanzar un ataque por diccionario al servidor SSH es la siguiente:

hydra -l <usuario> -P <diccionario> -f  -v <ip> ssh -s <puerto>

   [-] Donde: 
          [--] -l especifica el usuario con el que se realizará el login, si quisiéramos pasar una lista de usuarios utilizaríamos el parámetro -L seguido del nombre del fichero.
          [--] -P especifica una lista de posibles contraseñas (un diccionario), para solo probar un solo password utilizaríamos -p.
          [--] -f implica que el programa finalizará después de encontrar el primer par de usuario/password válido.
          [--] -v (verbose) que vaya mostrando información durante el proceso.
          [--] <ip> es la ip del dispositivo.
          [--] ssh implica el protocolo sobre el que se realizará el ataque.
          [--] -s el puerto del servicio a atacar, en nuestro caso utilizaremos el 22 y como es el puerto por defecto del servidor SSH no es necesario ponerlo.

   [-] Veamos un ejemplo del ataque anterior:

[alpha@alpha-pc ipod]$ hydra -l root -P dic -f -v 192.168.0.14 ssh



[+] Pausa y continuación de un ataque con Hydra:
  En el caso del ejemplo anterior el ataque ha sido breve, pero es muy probable que se de el caso de que nuestro ataque requiera horas o días para que surta efecto, todo depende del diccionario utilizado, entonces    Hydra nos permite pausar el ataque para continuarlo en otra ocasión.
    [-] Para interrumpir la ejecución de Hydra:
pulsamos ctrl+c
    [-] Para restaurar el proceso:
hydra -R





  Con esto solo nos queda tener suerte en nuestro ataque, y si queréis proteger vuestro servidor tocad un poco la configuración de el fichero /etc/ssh/ssh_config y seguid los consejos de este articulo en Seguridad Apple:   http://www.seguridadapple.com/2010/08/configuracion-openssh-en-dispositivos_31.html

  Como curiosidad y puesto que no es fácil obtener una contraseña por fuerza bruta, con Hydra tambien podemos dejar sin recursos el dispositivo iOS y volverlo prácticamente "inutilizable". Para ello basta con especificar aumentar el numero de intentos de conexión simultáneos que realizará la herramienta (por defecto son 16) a 256 que es el máximo, con lo que agotaremos la memoria del iAparato.
  En este caso el comando sería de la siguiente forma:
[alpha@alpha-pc ipod]$ hydra -l root -P dic -f -v -t 256 192.168.0.14 ssh


 Ya para finalizar este post, voy a escribir sobre un usuario que se encuentra en los dispositivos iOS (por lo menos en mi iPod) , del que yo desconocía su existencia y por tanto no había cambiado su contraseña, con lo que podría haber sido víctima de un ataque. Dicho usuario llamado "mobile" tiene la contraseña por defecto "alpine" y aunque no tiene los mismos privilegios que el usuario root puede acceder a bastante información sensible del dispositivo objetivo.

  Ahora me despido y nos leemos en la próxima entrada,

Aetsu


lunes, 12 de diciembre de 2011

John The Ripper y GNU/Linux

  En las dos entradas anteriores he escrito sobre los ficheros que gestionan a los usuarios y sus respectivas contraseñas en GNU/Linux, estos son /etc/passwd y /etc/shadow.

  Lo que viene a continuación es como unir esos dos ficheros y descifrar las contraseñas de los usuarios del sistema. Para crackear los password que contienen utilizaremos la archiconocida herramienta John The Ripper.

  Primero asumimos que contenemos en el mismo directorio una copia de los ficheros /etc/passwd  y /etc/shadow de la máquina objetivo. Para mezclar su información utilizaremos unshadow con la siguiente sintaxis:

   unshadow <fichero passwd> <fichero shadow>


  el problema de utilizar el comando de esta forma es que nos mostrará por pantalla el resultado, por lo que es preferible redirigirlo a un fichero, con lo que el comando quedaría:

  unshadow <fichero passwd> <fichero shadow> > <fichero salida>


veamos un ejemplo:


[alpha@alpha-pc ejemplo]$ unshadow passwd shadow > datos

  

 
Con esto ya tendremos el fichero datos con toda la información necesaria solo nos queda utilizar a John.

  Basándonos en este ejemplo veremos algunos de los usos comunes de esta potente herramienta:

[+] Podemos utilizar esta herramienta sin parámetros, con lo que John utilizará su propio diccionario, la sintaxis sería:

     john <fichero salida unshadow>

     siguiendo con el ejemplo:

[alpha@alpha-pc ejemplo]$ john datos



[+] En el caso de que la contraseña fuera compleja de descifrar podemos interrumpir el proceso para restaurarlo en un futuro:
    [-] Para interrumpirlo:
pulsamos ctrl+c
    [-] Para restaurarlo:
john -restore



[+] Por último, si quisieramos utilizar nuestro propio diccionario bastaría pasarselo como parámetro:

 john --wordlist:<diccionario> <fichero salida unshadow>

    con el ejemplo quedaría:
[alpha@alpha-pc ejemplo]$ john --wordlist:diccionario datos



  Con esto concluyo la entrada sobre John The Ripper, no sin invitaros a que busqueis mas información sobre él, ya que yo solo he expuesto algunos usos básicos, pero tiene muchísimas más posibilidades.

  Nos leemos,

Aetsu

El fichero /etc/shadow

  Si en la entrada anterior comentaba sobre el formato del fichero /etc/passwd, en esta escribiré sobre /etc/shadow.

  Dicho fichero almacena la contraseña cifrada de cada usuario y se complementa con el archivo /etc/passwd.

  Cada línea del fichero tiene la siguiente forma:
     usuario:password:último:pueda:vida:aviso:caduca:duración:reserv

  Donde:
    [-] usuario es el nombre del usuario.
    [-] password es la contraseña cifrada correspondiente al usuario.
    [-] último  son los días transcurridos desde la última vez que se cambió la
          clave, cuenta desde el día 1/1/1970.
    [-] pueda son los días que deben pasar antes de que la clave pueda ser
          cambiada.
    [-] vida es el tiempo de vida de la clave antes de que tenga que ser
          cambiada.
    [-] aviso es el número de días de aviso al usuario antes que expire la clave.
    [-] caduca son los días en que la clave quedara deshabilitada tras caducar.
    [-] duración son los días de duración de la cuenta desde 1/1/1970.
    [-] reserv pertenece a un campo reservado.

  Con está entrada ya he comentado como funcionan los ficheros que gestionan los usuarios y sus claves, en el siguiente veremos como podemos descifrar las claves con John the Ripper.

Un saludo,
Aetsu

domingo, 11 de diciembre de 2011

El fichero /etc/passwd

  En esta ocasión voy a comentar el formato del fichero /etc/passwd de GNU/Linux donde se almacena información de los usuarios del sistema, aunque no las contraseñas como podría sugerir el nombre del fichero, ya que estas se encuentran en el fichero /etc/shadow.

  Cada línea del fichero tiene la siguiente forma:
     usuario:password:UID:GID:descripción:home:shell

  Como por ejemplo el usuario root:
     root:x:0:0:root:/root:/bin/bash

  Donde (los campos están separados por dos puntos):
    [-] usuario es el nombre del usuario.
    [-] password es la contraseña, pero por motivos de seguridad no se aloja
        en este fichero, sino que se encuentra en /etc/shadow, esto explica
        porque este passwd tiene una máscara mucho mas "pública" que shadow.
    [-] UDI es el identificador numérico del usuario, en el caso del root (como
        en el ejemplo) es 0.
    [-] GID es el identificador numérico del grupo, en el caso del root es 0.
    [-] descripción es la descripción de la cuenta.
    [-] home es el directorio de la carpeta local del usuario.
    [-] shell es el intérprete de órdenes por defecto del usuario.


Con esto concluyó esta entrada, nos vemos en breve.

Aetsu

martes, 6 de diciembre de 2011

Entorno de 32 bits en sistemas de 64 bits

  Este post no hace referencia a ninguna novedad ni ningún descubrimiento digno de alarde, sino que es una posibilidad que estaba ahí, que no conocía y que me pareció interesante compartir.

  El otro día peleándome con la instalación de gentoo para un netbook me surgió la necesidad de compilar aplicaciones (entre ellas el kernel) de 32 bits sobre un sistema de 64 bits (i686 sobre amd64) obteniendo errores que me impedían proseguir con mi inmersión gentooniana. Como de costumbre la solución para ello la encontré en la siempre genial wiki de archlinux.

 
  La salida a mi problema se encontraba en la sección Arch64 y proponía la creación de un entorno de 32 bits mediante linux32, realizando una tarea muy similar a un chroot (man chroot para mas información ;) ), pero en este caso se nos encerrará en una jaula de 32 bits.

   Para preparar el entorno tenemos que tener habilitada la librería multilib en el fichero /etc/pacman.conf.

      [multilib]
      Include = /etc/pacman.d/mirrorlist


y actualizamos los repositorios con:

pacman -Sy

  Lo siguiente será instalar el gcc contenido en multilib:

pacman -S gcc-multilib gcc-libs-multilib binutils-multilib libtool-multilib lib32-glibc

  Además también requerimos linux32 para cerrar la jaula, con lo que lo instalaremos:

pacman -S util-linux

   el siguiente paso será realizar preparar la jaula:
    
     mount --bind /dev /<directorio>/dev 
     mount --bind /dev/pts /<directorio>/dev/pts
     mount --bind /dev/shm /<directorio>/dev/shm
     mount -t proc none /<directorio>/proc 
     mount -t sysfs none /<directorio>/sys

  donde directorio es la ruta donde queremos crear nuestro entorno de 32 bits.
 
  Para final solo queda entrar en dicha jaula: 

      linux32

  Para realizar las comprobaciones y saber si lo hemos hecho correctamente tenemos el comando uname:
uname -m

   En el caso de haberlo introducido correctamente nos debe mostrar i686 como salida.


   -> Como siempre para más y mejor información  mirad la entrada de la wiki de Arch:
  https://wiki.archlinux.org/index.php/Arch64_FAQ#Can_I_run_32-bit_apps_inside_Arch64.3F


  Antes de finalizar decir que aunque estas instrucciones son para Archlinux, no debería ser excesivamente difícil usarlo en otras distribuciones.

  Un saludo.

Aetsu


martes, 29 de noviembre de 2011

Megaupload y los DNS

  Parece que algunos que usamos ciertos DNS tenemos problemas con megaupload como vemos en noticias como:
->  http://www.fayerwayer.com/2011/11/confiscacion-de-dominio-vuelve-inaccesible-a-megaupload


 Una solución para esto es cambiar nuestros DNS por los de openDNS (por poner un ejemplo) con los que si que funciona:

208.67.222.222   /  208.67.220.220

La otra forma de acceder es no utilizar un servidor dns y acceder mediante IP. Veamos mediante que ips podemos acceder a megaupload:
[alpha@alpha-pc ~]$ nslookup www.megaupload.com
Server:        208.67.222.222
Address:    208.67.222.222#53

Non-authoritative answer:
Name:    www.megaupload.com
Address: 174.140.154.20
Name:    www.megaupload.com
Address: 174.140.154.21
Name:    www.megaupload.com
Address: 174.140.154.22
Name:    www.megaupload.com
Address: 174.140.154.23
Name:    www.megaupload.com
Address: 174.140.154.24
Name:    www.megaupload.com
Address: 174.140.154.12
Name:    www.megaupload.com
Address: 174.140.154.13
Name:    www.megaupload.com
Address: 174.140.154.14
Name:    www.megaupload.com
Address: 174.140.154.15
 Cualquiera de las ips mostradas con nslookup nos llevará a www.megaupload.com.

  Si ahora queremos acceder a un archivo, podemos hacerlo concatenando una de las IPs obtenidas antes junto con la url de megaupload quitando la parte de "www.megaupload.com".

  Con ejemplos se ve más claro:
Si tenemos la url -> http://www.megaupload.com/?d=ES4KXK52    
su equivalente seria -> http://174.140.154.15/?d=ES4KXK52
es decir ->  174.140.154.15 + http://www.megaupload.com/?d=ES4KXK52   
es
174.140.154.15/?d=ES4KXK52


  Con una de estas dos posibilidades podemos salir al paso y continuar teniendo acceder a megaupload mientras se soluciona este contratiempo.


Actualización:
  Como ha comentado un usuario en otro blog donde había publicado el post al pulsar el botón de descarga nos daba un error de que la pagina no existía. Esto sucede porque megaupload utiliza otra url para descargar los archivo, ahora veremos como lo solucionamos:

  Una vez nos aparezca el botón de descargar si ponemos el cursor sobre el veremos que la url cambia a www122.megaupload.com con lo al realizar un nslookup sobre la dirección vemos una ip distinta a las anteriores:

[alpha@alpha-pc ~]$ nslookup www122.megaupload.com
Server:        208.67.222.222
Address:    208.67.222.222#53

Non-authoritative answer:
Name:    www122.megaupload.com
Address: 95.211.95.67

  Con esta información pulsamos sobre el botón de descarga y nos saldrá un error, que siguiendo con el ejemplo anterior sería:

http://www122.megaupload.com/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf

entonces realizaremos el mismo proceso que antes:
Si tenemos la url -> http://www122.megaupload.com/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf  

su equivalente seria -> http://95.211.95.67/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf  

es decir ->  95.211.95.67 +   http://www122.megaupload.com/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf

es

http://95.211.95.67/files/e8e9df0dca648bb1fca293c6af45b675/%23breaking80211.pdf


  Con todo esto ya deberíamos poder descargar sin problemas ;)


Un saludo
Aetsu

martes, 22 de noviembre de 2011

Paper #breaking80211 by Aetsu


#breaking80211

by Aetsu

 

--- Contenido ---
[+] Introducción

[+] Materiales/Herramientas utilizados

[+] Conceptos básicos
[-] Cambiar dirección MAC
[-] Modo monitor

[+] Cifrado WEP
[-] Ataque 1+3

[-] Ataque Chop Chop

[-] Ataque fragmentación

[-] Hirte Attack

[-] Caffe Late Attack

[+] Cifrado WPA
[-] Obteniendo el handshake

[-] Obteniendo la contraseña: Aircrack-ng

[-] Obteniendo la contraseña: coWPAtty

[-] Obteniendo la contraseña: Pyrit

[-] Obteniendo la contraseña: Rainbow Tables

[-] Rainbow Tables -> coWPAtty

[-] Rainbow Tables -> Pyrit

[+] Otras defensas
[-] Filtrado MAC

[-] Ataque de desasociación

[-] ESSID oculto

[+] Descifrar capturas
[-] Airdecap-ng + WEP

[-] Airdecap-ng + WPA

[+] Ataques sociales -- Creación de puntos de acceso
[-] Airbase-ng + brctl

[-] Airbase-ng + iptables

[+] Ataque sociales -- Ataques en LAN
[-] DNS-spoofing con Ettercap y Metasploit

[-] S.E.T.

[+] Ataques sociales -- Todo en uno
[-] Karmetasploit

[+] Documentación

    

[+]  Enlace a exploit-db:          -- DESCARGAR --

[+]  Enlace scribd:         -- LEER ON-LINE --

   

 

Un saludo y hasta la próxima ;)

jueves, 28 de julio de 2011

#tuxcomandos basename y dirname

En este post daremos a conocer dos #tuxcomandos, el primero de ellos basename que nos permite extraer el nombre de un fichero de una ruta:

[alpha@myhost descargas]$ pwd
/home/alpha/personal/descargas
[alpha@myhost descargas]$ basename sqli
sqli


El otro #tuxcomando es dirname, que nos permite extraer la ruta:
[alpha@myhost ~]$ pwd
/home/alpha
[alpha@myhost ~]$ dirname ~/personal/descargas/sqli
/home/alpha/personal/descargas
[alpha@myhost ~]$


Dos comandos simples pero que nos pueden servir de ayuda en algún momento concreto y con los que cerramos esta ración de #tuxcomandos.


Aetsu

#tuxcomando wc

Después de un tiempo sin escribir volvemos con un nuevo #tuxcomando, en este caso hablaremos de wc (word count) que nos permite contar el numero de lineas, palabras y caracteres de un fichero:


[alpha@myhost descargas]$ wc sqli
166     1438     13834     sqli


vemos que el fichero sqli tiene 166 lineas, 1438 palabras y 13834 carácteres.

Con esto concluimos este #tuxcamando, nos vemos ;).


Aetsu

martes, 5 de julio de 2011

#tuxcomando cal

Hoy veremos el #tuxcomando cal que nos muestra un calendario (nadie lo esperaría) del mes actual o de la fecha escogida.


Si utilizamos cal sin parámetros:
[alpha@myhost ~]$ cal
julio de 2011
lu ma mi ju vi sá do
1   2   3
4    5    6    7    8   9   10
11   12  13  14  15  16  17
18  19  20 21 22 23 24
25 26 27 28 29 30 31


Si por otro lado queremos ir a una fecha especifica la especificamos a continuación de cal (día mes año):
[alpha@myhost ~]$ cal 5 8 1988
agosto de 1988
lu ma mi ju vi sá do
1     2     3     4     5     6   7
8    9   10   11   12  13  14
15  16  17  18  19  20  21
22 23 24 25 26  27  28
29 30 31


Un simple comando que puede llegar a sernos útil en alguna ocasión.

Un saludo y nos vemos en el próximo #tuxcomando.

-------------------------------------


Aetsu

sábado, 2 de julio de 2011

#tuxcomando which

El #tuxcomando which nos permite buscar ejecutables y alias en el $PATH.

Primero veamos la variable de entorno $PATH para saber donde buscará which, en mi caso:
[alpha@myhost ~]$ echo $PATH | tr : \\n
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
/sbin
/opt/java/bin
/opt/java/db/bin
/opt/java/jre/bin
/opt/kde/bin
/usr/bin/core_perl
/opt/qt/bin

Ahora veamos unos ejemplos de which:
[alpha@myhost ~]$ which vim
/usr/bin/vim


[alpha@myhost ~]$ which ls
/bin/ls


[alpha@myhost ~]$ which java
/opt/java/bin/java








[alpha@myhost ~]$ which locale-gen
/usr/sbin/locale-gen




Con estos ejemplos concluimos este #tuxcomando, nos vemos en el siguiente post.


---------------------


Aetsu

#tuxcomando mv

El #tuxcomando mv nos permite mover archivos, renombrarlos o ambas cosas, veamos una serie de ejemplos:

Primero veamos el entorno donde trabajaremos:

[alpha@myhost pruebas]$ ls *

a:





caca



b:



c

Si queremos mover el archivo caca a la carpeta b:

[alpha@myhost pruebas]$ mv a/caca b/

[alpha@myhost pruebas]$ ls b





c  caca

Ahora queremos volver el archivo caca a la carpeta a y llamarlo morsa:

[alpha@myhost pruebas]$ mv b/caca a/morsa

[alpha@myhost pruebas]$ ls a





morsa


->
Si el archivo destino existe este sera reemplazado por el nuevo.

-> También es posible mover directorios, para ello utilizamos la misma sintaxis que como si fueran ficheros.

Por último saber que si queremos mas información siempre podemos utilizar verbose (-v), para el ejemplo a y b son directorios:

[alpha@myhost pruebas]$ ls

a  b

[alpha@myhost pruebas]$ mv -v a b

«a» -> «b/a»

[alpha@myhost pruebas]$ ls *

a  c














Con esto concluimos con mv, hasta el próximo #tuxcomando.

------------------


Aetsu




#tuxcomando history

El #tuxcomando history nos permite ver los últimos comandos introducidos en nuestra terminal, por defecto los 500:

Con un history nos mostrará la lista:
[alpha@myhost ~]$ history
1  sudo modprobe coretemp
2  sudo sensor-detect
3  sudo sensors-detect
4  sudo modprobe coretemp
5  sensors
6  pacman -S firefox
7  sudo pacman -S firefox
8  sudo pacman -S pidgin bash-completion
...


Si ahora queremos solo ver los X últimos pondremos como parámetro el numero deseado.
Para ver los 2 últimos:
[alpha@myhost ~]$ history 2
350  history
351  history 2


Ahora supongamos que el numero 128 es el comando ls, pues si quisiéramos ejecutarlo utilizaríamos !:
[alpha@myhost ~]$ !128
ls


Para finalizar si quieremos limpiar el historial utilizaremos el parámetro -c:
[alpha@myhost ~]$ history -c
[alpha@myhost ~]$ history
1  history


Con este concluimos este #tuxcomando, hasta la próxima ;)

--------------------------


Aetsu

#tuxcomando import

El #tuxcomando import nos permite hacer capturas de la ventana que escojamos.

Para utilizarlo simplemente tenemos que poner como parámetro la ruta, nombre y formato de la imagen a capturar:
[alpha@myhost ~]$ import Desktop/img.png
Ahora cambiará el cursor del ratón con lo que seleccionaremos la ventana que queremos capturar y pulsamos el botón izquierdo. Con esto ya tendremos en el directorio escogido la imagen de la ventana seleccionada.

Tras esta breve explicación nos vemos en el próximo #tuxcomando.

----------------------------------


Aetsu

#tuxcomando whereis

El #tuxcomando whereis nos permite (como dice en su man) buscar binarios, código fuente o paginas del man.
Para ello utilizaremos el comando seguido de lo que queremos buscar como parámetro:

[alpha@myhost ~]$ whereis whereis
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz

Sin parámetros este comando buscará los tres elementos comentados antes, aunque podemos utilizar filtros según nos interese:
-b -> archivos binarios:
[alpha@myhost ~]$ whereis -b whereis
whereis: /usr/bin/whereis


-m -> paginas del man:
[alpha@myhost ~]$ whereis -m whereis
whereis: /usr/share/man/man1/whereis.1.gz


-s -> archivos de código fuente (está vació porque no tengo el código fuente de whereis):
[alpha@myhost ~]$ whereis -s whereis
whereis:


Con esto concluimos este #tuxcomando, hasta la próxima ;)

---------------------------


Aetsu

martes, 21 de junio de 2011

#tuxcomando cp

Este comando nos permite copiar archivos o directorios.


Ejemplos de copiar archivos y directorios:

* Copia el archivo "a" al directorio home del usuario actual.

alpha@alpha-pc ~/Desktop/pruebas $ cp a ~



* Copia el archivo "a" al directorio home del usuario actual renombrandolo a b.

alpha@alpha-pc ~/Desktop/pruebas $ cp a ~/b



* Copia el directorio mandril al directorio home del usuario actual.

alpha@alpha-pc ~/Desktop/pruebas $ cp -r mandril ~/



* Copia el directorio mandril al directorio home del usuario actual y lo renombra a gallina.

alpha@alpha-pc ~/Desktop/pruebas $ cp -r mandril ~/gallina

-

-

Un saludo y hasta el proximo #tuxcomando.

------------------------------


Aetsu

domingo, 19 de junio de 2011

Introduccion a sudoers -- #tuxcosas

 
  El fichero sudoers
(/etc/sudoers) permite asignar derecho a ejecutar comandos de administrador a uno o varios usuarios en una o varias máquinas.

  Básicamente nos permite ejecutar comandos de root sin tener que cambiar de usuario a este o, solo poder usar un numero concreto de ordenes con permiso de root.

  El fichero donde se guarda la configuración del sudo esta en /etc/sudoers o podemos acceder a el directamente con el comando visudo que por defecto lo abrira con el editor "vi"(amado por muchos, odiado por muchos mas xD).

La sintaxis sería:
usuario1 máquina = (usuario2) comando
Donde:
  [+] usuario1 es el usuario al que se le aplican los comandos.
  [+] máquina es la maquina en la que se aplica la regla.
  [+] usuario2 es la cuenta con la usuario1 ejecutará el comando.
  [+] comando es la orden a ejecutar.

  Para que un usuario tenga acceso a todos los privilegios de root con sudo tenemos que añadir esta linea al fichero sudoers (distribuciones como Ubuntu lo añaden automáticamente al crear un usuario por primera vez, en otras como Archlinux o Debian hay que hacerlo de forma manual):
nombre_usuario ALL=(ALL) ALL
 Si un usuario quiere ver los permisos de sudo que tiene, para ello esta el comando sudo -l:
[alpha@alpha-pc ~]$ sudo -l
User alpha may run the following commands on this host:(ALL) ALL
  Ahora supongamos que no queremos que el usuario "usuario1" tenga acceso total a los comandos de root, sino que simplemente tenga acceso al comando shutdown, pues entonces añadiriamos:
user1 ALL = /sbin/shutdown
entonces ahora el usuario "user1" podría utilizar shutdown en todas las máquinas donde estuviera esta regla  definida en el fichero sudoers, previo uso de sudo.



Aetsu

domingo, 12 de junio de 2011

#tuxcomando pushd y popd


Estos comandos nos sirven para apilar/desapilar directorios, es decir, interactua con los directorios que escojamos como si se tratase de una pila.

A grandes rasgos, podemos definir una pila como "el primer elemento que entra es el ultimo que sale", ya veremos porque.

Si utilizamos pushd apila, mientras que popd desapila. Veremos esto mas claro con un ejemplo.

-

Empezamos en el directorio home:

[alpha@alpha-pc ~]$ pwd

/home/alpha



apilamos el directorio actual (utilizamos pushd .):

[alpha@alpha-pc ~]$ pushd .

~ ~

con esto hemos apilado home/alpha.

A continuación tenemos que ir a /etc/X11:

[alpha@alpha-pc ~]$ cd /etc/X11/

[alpha@alpha-pc X11]$ pwd

/etc/X11



Una vez hayamos hecho lo que queríamos en el directorio para volver al directorio en el que estábamos antes(utilizaremos popd):

[alpha@alpha-pc X11]$ popd

~

[alpha@alpha-pc ~]$ pwd

/home/alpha



Con esto hemos desapilado el directorio que había en la pila, y puesto que solo teníamos uno si volvemos a utilizar popd veríamos:

[alpha@alpha-pc ~]$ popd

bash: popd: la pila de directorios está vacía



Puede que en este caso no sea lo mas rápido utilizar una pila de directorios para volver a home (ya que con un simple cd se podría) pero la idea era ilustrar el funcionamiento del comando.

-

Hay que tener en cuenta que no solo podemos apilar un directorio, sino todos los que queramos (no se el tope, si alguien se aburre que lo busque xD), veamos un ejemplo de como funciona con varios directorios:

[alpha@alpha-pc ~]$ pushd .

~ ~

[alpha@alpha-pc ~]$ pwd

/home/alpha

[alpha@alpha-pc ~]$ cd /etc/

[alpha@alpha-pc etc]$ pwd

/etc

[alpha@alpha-pc etc]$ pushd .

/etc /etc ~

[alpha@alpha-pc etc]$ cd /var/

[alpha@alpha-pc var]$ pwd

/var

[alpha@alpha-pc var]$ pushd .

/var /var /etc ~

[alpha@alpha-pc var]$ cd /

[alpha@alpha-pc /]$ pwd

/

[alpha@alpha-pc /]$ pushd .

/ / /var /etc ~

[alpha@alpha-pc /]$ popd

/ /var /etc ~

[alpha@alpha-pc /]$ pwd

/

[alpha@alpha-pc /]$ popd

/var /etc ~

[alpha@alpha-pc var]$ pwd

/var

[alpha@alpha-pc var]$ popd

/etc ~

[alpha@alpha-pc etc]$ pwd

/etc

[alpha@alpha-pc etc]$ popd

~

[alpha@alpha-pc ~]$ pwd

/home/alpha

[alpha@alpha-pc ~]$ popd

bash: popd: la pila de directorios está vacía

-

-

Un saludo y hasta el próximo #tuxcomando.


------------------------------


Aetsu

jueves, 9 de junio de 2011

#tuxcomando sleep

Hoy veremos el #tuxcomando sleep, util para posponer ciertas acciones.

Su sintaxis es simple: sleep y s (segundos), m (minutos), h (horas) o d (días). Sino ponemos nada considerara que hemos escogido segundos como opcion (s). Este comando lo que hace es esperar X.

Veamos un ejemplo:

-> Primero se ejecutaria sleep, con lo que la terminal quedaria esperando 100 minutos, despues se ejecutaria lo que hay detras del ";" con lo que se mataría el proceso amarok, es decir el reproductor de audio Amarok (uno de los mejores reporductores sin duda ;)).
[alpha@alpha-pc ~]$ sleep 100m; killall amarok




Si pusieramos "sleep 100; killall amarok" esperaría 100 segundos ya que es la opcion por defecto.

Un saludo y hasta el proximo #tuxcomando.

------------------------------


Aetsu

lunes, 6 de junio de 2011

#tuxcomandos lsmod, lspci, lspcia, lsusb y lscpu

Hoy veremos varios #tuxcomandos para mostrar información sobre nuestro hardware y nuestro sistema.
Empezaremos con lsmod que nos muestra los módulos que tenemos cargados en estos momentos:
[alpha@alpha-pc ~]$ lsmod
Module                  Size  Used by
ipv6                  277189  16
fuse                   64542  3
cryptd                  7661  0
aes_x86_64              7436  2
aes_generic            26066  1 aes_x86_64
usbhid                 33814  0
hid                    76802  1 usbhid
btusb                  11185  0
bluetooth              55409  1 btusb
....

Tenemos también lspci que nos muestra los dispositivos pci:
[alpha@alpha-pc ~]$ lspci
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 671MX
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] (rev 01)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.1 Controller (rev 0f)
...


Si queremos ver los dispositivos pcia lo haremos con lspcia:
[alpha@alpha-pc ~]$ lspcmcia
Socket 0 Bridge:       [yenta_cardbus]     (bus ID: 0000:00:09.0)


Con lsusb listaremos los usb:
[alpha@alpha-pc ~]$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0c45:62c0 Microdia Sonix USB 2.0 Camera
Bus 002 Device 002: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 002 Device 003: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Por ultimo con lscpu veremos información de nuestra cpu:
[alpha@alpha-pc ~]$ lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    2
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 23
Stepping:              6
CPU MHz:               2109.451
BogoMIPS:              4220.70
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              3072K
NUMA node0 CPU(s):     0,1


Con esto vemos que podemos conocer bastante información de nuestra maquina con unos pocos comandos.

Un saludo y hasta el próximo #tuxcomando ;).
------------------------------

Aetsu

sábado, 4 de junio de 2011

#tuxcomando ls

Hoy vamos a ver el #tuxcomando ls y algunas de sus utilidades mas conocidas.
Empezamos con ls sin parámetros que vemos como nos muestra todos los ficheros  del directorio en que nos encontremos:
[alpha@alpha-pc ~]$ ls
Desktop  Firefox_wallpaper.png    es_ES.oxt  personal  uS7on.jpg
Dropbox  VirtualBox VMs        fuji.png   scripts   workspace


Si ahora ponemos el parámetro -l que nos muestra diversas propiedades de todos los archivos, como son permisos, tamaño o el usuario al que pertenecen entre otros:
[alpha@alpha-pc ~]$ ls -l
total 4420
drwxr-xr-x  7 alpha users    4096 Jun  3 23:36 Desktop
drwx------ 14 alpha users    4096 Jun  3 23:24 Dropbox
-rw-r--r--  1 alpha  1000 1153343 May  8 04:08 Firefox_wallpaper.png
drwxr-xr-x  3 alpha users    4096 Jun  3 15:34 VirtualBox VMs
-rw-r--r--  1 alpha  1000  499673 Oct 18  2009 es_ES.oxt
-rw-r--r--  1 alpha users 2642408 Feb 26 03:26 fuji.png
drwxr-xr-x 10 alpha users    4096 Jun  2 23:02 personal
drwx------  3 alpha users    4096 Oct  1  2010 scripts
-rw-r--r--  1 alpha users  198019 May 13 18:30 uS7on.jpg
drwx------  6 alpha users    4096 Jun  3 15:27 workspace


Respecto al tamaño, si añadimos la opción -h veremos los tamaños en unidades mas "cómodas":
[alpha@alpha-pc ~]$ ls -l -h
total 4.4M
drwxr-xr-x  7 alpha users 4.0K Jun  3 23:44 Desktop
drwx------ 14 alpha users 4.0K Jun  3 23:24 Dropbox
-rw-r--r--  1 alpha  1000 1.1M May  8 04:08 Firefox_wallpaper.png
drwxr-xr-x  3 alpha users 4.0K Jun  3 15:34 VirtualBox VMs
-rw-r--r--  1 alpha  1000 488K Oct 18  2009 es_ES.oxt
-rw-r--r--  1 alpha users 2.6M Feb 26 03:26 fuji.png
drwxr-xr-x 10 alpha users 4.0K Jun  2 23:02 personal
drwx------  3 alpha users 4.0K Oct  1  2010 scripts
-rw-r--r--  1 alpha users 194K May 13 18:30 uS7on.jpg
drwx------  6 alpha users 4.0K Jun  3 15:27 workspace


Por otro lado, si queremos ver los archivos ocultos tendríamos la opción -a:
[alpha@alpha-pc ~]$ ls -a
.           .dropbox-dist  .gstreamer-0.10  .thumbnails
..           .eclipse       .gtk-bookmarks   .vimrc
.ICEauthority  .emacs          .gvfs           .wesnoth1.8
.Skype           .emacs.d       .jd           .xsession-errors
.VirtualBox    .emerald       .libreoffice     Desktop
.adobe           .esd_auth      .liferea_1.6     Dropbox
.bash_history  .face          .local           Firefox_wallpaper.png
.bashrc        .face.icon     .macromedia      VirtualBox VMs
.cache           .filezilla     .mozilla           es_ES.oxt
.checkgmail    .fontconfig    .nevernote       fuji.png
.config        .gconf          .pulse           personal
.conkyrc       .gconfd          .pulse-cookie    scripts
.dbus           .gnome2          .purple           uS7on.jpg
.dropbox       .gnupg          .subversion      workspace


Si queremos listar todos los archivos que contengan una palabra o letra basta con ponerla a continuación del comando, veamos un ejemplo de listar todos los ficheros que empiecen por f:
[alpha@alpha-pc ~]$ ls f*
firefox_lady.png  fuji.png


La ultima opción que comentaré es la posibilidad de distinguir las carpetas y los fichero con colores, para lograr este efecto utilizaremos --color=auto:
[alpha@alpha-pc ~]$ ls --color=auto
Desktop VirtualBox VMs firefox_lady.png  personal uS7on.jpg
Dropbox es_ES.oxt       fuji.png          scripts workspace


Aclarar antes de cerrar el post que los parámetros se pueden meter en un mismo comando con la posibilidad de combinar resultados como seria ls -lah --color=auto y decir que para mas información el man.


--------------------------------


Un saludo


Aetsu

miércoles, 1 de junio de 2011

#tuxcomando pwd

El segundo #tuxcomando sera breve, pero útil xD. En este caso hablaré de pwd, este comando nos dice el directorio actual en el que nos encontramos (bueno, en el que se encuentra la terminal).

alpha@alpha-pc ~ $ pwd
/home/alpha


Como nota, aclarar que cuando tenga mas tiempo pondré comandos mas complejos que esta semana tengo dos exámenes y voy mal de tiempo ;).

————————–


Hasta la próxima,

Aetsu

sábado, 28 de mayo de 2011

#tuxcomando uname

El comando uname nos muestra información de nuestro sistema Linux, este posee varias opciones (como la gran mayoría) siendo posiblemente la mas usada -r que nos muestra la versión del kernel.

alpha@alpha-pc:~$ uname -r



2.6.38-8-generic

Vemos que nos muestra la versión del núcleo como ya he comentado antes.

Otra opción útil es la que nos muestra la arquitectura, -i:

alpha@alpha-pc:~$ uname -i



x86_64

El resto de opciones, siendo útiles para determinadas ocasiones, no las utilizaremos asiduamente. Como alternativa siempre podemos utilizar el parametro -a para mostrar toda la información disponible:

alpha@alpha-pc:~$ uname -a



Linux alpha-pc 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Antes de acabar veamos la salida de un --help (doble guión antes de help) para ver todas las posibilidades que ofrece uname:

alpha@alpha-pc:~$ uname --help

Modo de empleo: uname [OPCIÓN]...

Imprimir información del sistema. Sin opciones es lo mismo que -s

-a, --all                imprimir toda la información en el siguiente orden,

excepto omitir -p y -i si es desconocido:

-s, --kernel-name        imprimir el nombre del núcleo

-n, --nodename           imprimir el host del nodo de la red

-r, --kernel-release     imprimir la versión del núcleo

-v, --kernel-version     imprimir la versión del kernel

-m, --machine            imprimir el nombre del hardware de la maquina

-p, --processor          imprimir el tipo de procesador o "desconocido"

-i, --hardware-platform  imprimir la plataforma del hardware o "desconocido"

-o, --operating-system   imprimir el sistema operativo

--help     muestra esta ayuda y finaliza

--version  informa de la versión y finaliza

Informar de uname errores a bug-coreutils@gnu.org

GNU coreutils página de inicio: <http://www.gnu.org/software/coreutils/>

Ayuda general para usar software de GNU: <http://www.gnu.org/gethelp/>

Informar de errores en la traducción uname a <http://translationproject.org/team/>

Para una información completa, ejecute: info coreutils «uname invocation»

--------------------------


Hasta la proxima,

Aetsu