sábado, 23 de julio de 2016

Aprende de la mejor manera tus primeros pasos con Debian.

Creado por Felipe Barrios

Post6

Bienvenidos a esta nueva sección, el blog que Backtrack academy desarrollando con mucho afecto para todos  nuestros alumnos de la comunidad, en agradecimiento por todo su apoyo.
Uno de nuestros principales objetivos es apoyar  tu proceso de aprendizaje, que podamos cubrir todas tus dudas respecto al aprendizaje.

Es por ello que vamos a partir desde lo más básico, vamos aprender conceptos rápidos relacionado con Linux especialmente distribuciones que estén basadas en Debían , como es el caso de Kali Linux. Desde una vista rápida y sencilla, aprenderemos a identificar los tipos de versiones, como realizar particiones en nuestro disco, gestores de arranque, instalación de paquetes repositorios y algunos comandos más utilizados.

Esperamos que esta información sea útil para nuestros usuarios que por primera vez se inician en este sistema operativo.

Para tener más información o querer descargar alguna de estas distribuciones:
  1. https://www.kali.org/
  2. https://www.debian.org/index.es.html
  3. http://www.ubuntu.com/

1.       Tipos de versiones

El proyecto Debian GNU/Linux posee tres ramas: “stable”, “testing” y “unstable”:

a)       Unstable: Como su nombre indica es la distribución más inestable porque contiene paquetes muy nuevos. La utilizan los desarrolladores de Debian para depuración. Contiene software muy reciente y puede traer problemas de estabilidad graves.

b)       Testing: Como su nombre indica esta distribución ya paso un tiempo de prueba, pero que aún debe pasar una fase de test adicionales para considerarlo estable, es la utilizada por aquellos usuarios que desean disfrutar de las nuevas características del S.O. y de las versiones de software mas reciente sin esperar a la liberación oficial de una nueva versión. 

c)       Stable: Como su nombre indica es la más estable de las distribuciones, ya que su software a superado varios meses de pruebas y correcciones.

2.       Particionado de disco

En Linux cada partición se monta en tiempo de arranque. El proceso de montaje hace disponible el contenido de esa partición dentro del sistema. El directorio raíz (/) será la primera partición.

Las particiones, cuando se montan, aparecen como un árbol de directorios unificado en vez de unidades separadas, el software de instalación no diferencia una partición de otra. Solo hay que preocuparse de en que directorio esta cada archivo. Como consecuencia de ello, el proceso de instalación distribuye automáticamente sus archivos por todas las particiones montadas, así que las particiones montadas representan diferentes partes del árbol de directorios donde se sitúan los archivos.

Al configurar un servidor, es recomendable tener particiones separadas para algunos directorios, tales como:

a)       /home, donde están los directorios de todos los usuarios.
b)       /usr, donde se sitúan todos los archivos de programa.
c)       /var, el destino final de los archivos log.
d)       /tmp, donde se sitúan los archivos temporales.

Adicionalmente tenemos una partición denominada “swap”. Este es un sistema de archivos no accesible para el usuario. Es donde se almacena el archivo de memoria virtual, tenerlo en otra partición mejora el rendimiento del S.O.
Es usado como memoria secundaria cuando la memoria principal está completamente usada. Por estar en disco es más lenta que la memoria RAM.

3.       Gestores de arranque
El gestor de arranque indica al computador que S.O. o kernel se iniciara y donde se encuentran los archivos necesarios para ejecutarlo. Dependiendo del tipo de distribución escogida se instalara por defecto uno de estos dos gestores de arranque:

a)       Lilo
b)       Grub

Durante este proceso se añadirán automáticamente los diferentes S.O. que tengamos instalados en nuestro equipo. Posteriormente los parámetros pueden ser configurados desde consola (terminal) o mediante una herramienta de administración gráfica como: “Webmin”.

4.       Instalación de  paquetes
Este proceso se puede realizar de diferentes maneras, dependiendo del tipo de repositorio, comando y paquetes a instalar. A continuación se describen 3 de ellas.

4.1.  Dpkg (Debian Package)
Si en vez de paquetes fuentes lo que tenemos es un paquete pre-compilado o binario podemos utilizar el gestor de paquetes dpkg. A continuación se especifican las opciones más comunes:

Comando                                                            Descripción

#dpkg -l                                                                Lista paquetes instalados
#dpkg -i <paquete>                           Instala paquete
#dpkg --install <paquete>                                Instala paquete
#dpkg -r <paquete>                           Elimina paquete
#dpkg -remove <paquete>                              Elimina paquete
#dpkg --purge <paquete>                                Borra un paquete incluidos los archivos de configuración
#dpkg -c <paquete>                          Lista los archivos contenidos
#dpkg --contents <paquete>            Lista los archivos contenidos y sus directorios
#dpkg --info <paquete>                    Información del paquete

4.2.  Apt (Advanced Packaging Tool)
El programa apt se encarga de manejar automáticamente las dependencias del conjunto de paquetes del sistema. Como parte de su funcionamiento, apt utiliza el archivo sources.list, que contiene las “fuentes” en donde se encuentran los paquetes, su ubicación es: /etc/apt/sources.list

El archivo sources.list puede contener varios tipos de líneas. APT sabe cómo interpretar líneas del tipo http, ftp y file (archivos locales). La primera palabra de cada línea indica el tipo de archivo:

a)       deb, indica un paquete pre-compilado (binario)
b)       deb-src, indica código original (fuentes)

A continuación se especifican las opciones más comunes.

Comando                                                            Descripción

#apt-get update                                                  Sincroniza el índice de paquetes respecto a su fuente. Actualiza la lista local de paquetes con el archivo /etc/apt/sources.list

#apt-get upgrade                                               Instala la versión más nueva de todos los paquetes instalados en el sistema provenientes de alguna de las fuentes listadas en el archivo /etc/apt/sources.list.

#apt-get dist-upgrade                                       Actualiza a la distribución más reciente
#apt-get install <paquete>                               Instala paquete
#apt-get remove <paquete>                            Desinstala paquete
#apt-get remove --purge <paquete>              Desinstala paquete y borra sus archivos de configuración
#apt-cdrom ident                                                                Identifica un CD
#apt-cdrom add                                                  Añade un CD a /etc/apt/sources.list
#apt-cache show <paquete>                           Muestra información de un paquete especifico
#apt-cache depends <paquete>                    Muestra de que paquetes depende

4.3.  Aptitude
El programa aptitude, es una herramienta gráfica que se encarga de manejar el conjunto de paquetes del sistema.

5.       Comandos generales

La forma general de los comandos en Linux es:

$ comando [opciones] [parámetros]

Las opciones son modificadores para los comandos y no siempre es necesario teclear alguna. Las opciones se suelen indicar con el signo – seguido por una letra. Los parámetros son informaciones que el comando puede necesitar para ejecutarse. Esta necesidad depende de cada comando concreto. A continuación vamos a ver algunos comandos básicos.

a)       man, es uno de los comandos más útil del modo texto. La forma de ejecutarlo es teclear man seguido del nombre del comando sobre el que queremos obtener ayuda.

Ejemplo: man ls

b)       ls, lista el contenido del directorio especificado como parámetro. Si no se indica ningún directorio se utiliza el directorio actual. Este comando tiene multitud de opciones para alterar el tipo de información mostrada.

Ejemplos:

ls –l                        Lista extendida de archivos y directorios del directorio actual
ls –l /var/log          Lista extendida del directorio /var/log
ls –a                       Lista de todos los archivos y directorios, incluídos los acultos, que en Linux
empiezan por el carácter punto ( .)

ls –R                      Lista de archivos y directorios y de todos los directorios dentro de él.

c)       

cd: Cambia el directorio actual por el especificado como parámetro. Ejemplos:
cd /usr/local/doc                 Ejemplo del comando cd utilizando una ruta absoluta
cd local/doc                          Suponiendo que nos encontramos en /usr, igual que el anterior pero usando ruta relativa
cd ..                                        Cambio al directorio un nivel por encima del actual
cd                                           Cambio al directorio home del usuario.

Nota:
Ruta absoluta: Es la ruta completa desde el principio del árbol hasta el directorio al que nos referimos. Una ruta absoluta siempre comienza con el directorio raíz (/).

Ruta relativa: Es la ruta a un archivo o directorio desde el directorio actual. Es decir, es el camino de directorios que hay que recorrer, partiendo del directorio actual.

"Si te gusto este post y quieres más post de este estilo, comenta pidiendo el próximo y te regalaré un descuento en nuestro próximo curso Premium!"

d)       pwd: muestra el directorio actual (o la ruta al directorio actual).

e)       mkdir: crea un directorio. 

Ejemplo: mkdir directorio1

f)         rmdir: borra un directorio. 

Ejemplo: rmdir directorio1

g)       cp: Copia archivos (o, opcionalmente directorios). 

Ejemplo: cp /etc/apt/sources.list   /home/directorio1

h)       rm: borra archivos. Por lo normal no borra directorios, pero cuando se especifica la opción –r o –R se borra el árbol de directorios entero a partir del directorio especificado (se incluyen los subdirectorios). 

Ejemplos:
rm /home/directorio1/sources.list
rm –r directorio1

i)         mv: mueve o renombra archivos o directorios
mv /etc/apt/sources.list   /home/directorio1
mv /etc/apt/sources.list   /home/directorio1/sources.txt

j)         find: busca archivos en la estructura de directorios que cumplan la condición especificada, admite muchas opciones de búsqueda diferentes, tales como:
-name ‘nombre’   busca archivos con el nombre especificado.
-user usuario1     busca archivos que pertenezcan al usuario usuario1.
-group                   busca archivos que pertenezcan al grupo especificado.

Ejemplos:

find –name ‘sources.*’                       busca en el directorio actual archivos que se llamen sources, con cualquier extensión.
find /tmp –user usuario1                   busca en el directorio /tmp archivos que pertenezcan al usuario1.

k)       su: permite cambiar de usuario. Ejemplo:
su usuario1          permite cambiar del usuario actual al usuario1
su                           permite cambiar del usuario actual al usuario root

l)         who: muestra los usuarios que se encuentran conectados al equipo (los usuarios del sistema).

m)     whoami: muestra el nombre del usuario actual.

n)       finger: muestra información sobre usuarios. 
Ejemplo: finger usuario1    muestra información del usuario1

o)       ps: muestra la lista de procesos que se están ejecutando en el sistema. 

Ejemplos:

ps                           muestra los procesos de un usuario, ejecutados desde la shell correspondiente.
ps –u usuario1    muestra mas información de los procesos de un usuario, ejecutados desde la shell correspondiente.

p)       top: muestra información en tiempo real de la actividad del procesador así como de los procesos que se están ejecutando en el sistema.

q)       kill: permite terminar un proceso. Ejemplos:
kill                           permite terminar un proceso mediante su PID (identificación numérica)
killall                      permite terminar un proceso mediante su nombre

r)        chown: cambia el propietario de un archivo

s)       chgrp: cambia el grupo al que pertenece el archivo

t)         ifconfig: muestra la configuración de las interfaces de red

u)       ping: permite determinar rápidamente si existe conexión entre hosts.

6.       Usuarios
Es muy recomendable crear usuarios de trabajo dentro del sistema, ya que con el usuario root es posible crear, modificar o eliminar cualquier archivo del S.O., lo que supone un riesgo ya que se podría dañar el sistema en caso de cometer algún error.

El comando necesario para crear un nuevo usuario es adduser.

Ejemplo: adduser usuario1

Este mandato crea una nueva entrada en el archivo /etc/passwd. Este archivo contiene información como el nombre de usuario, contraseña, directorio de trabajo y shell predeterminado.
Podemos modificar la contraseña de cualquier usuario si hemos iniciado una sesión de root, o nuestra propia contraseña en caso de iniciar una sesión con nuestra cuenta, mediante el comando passwd.

 Ejemplo: passwd usuario1

Si el sistema está bien administrado, se ha de almacenar información imprescindible de los usuarios. Para cambiar la información de una cuenta se usa el comando chfn.

Ejemplo: chfn usuario1

Y para remover o eliminar al usuario se utiliza el comando deluser. 

Ejemplo: deluser usuario1

7.       Grupos

Para añadir un nuevo grupo al sistema se utiliza el siguiente comando:
groupadd -g [GID] [nombregrupo]        donde GID es el n° de grupo que se asignara.

Si tenemos usuarios ya creados y deseamos añadirlos o eliminarlos de un grupo podemos usar:

gpasswd -a [nombreusuario] [nombregrupo]                  añadir usuario
gpasswd -d [nombreusuario] [nombregrupo]                  eliminar usuario

8.       Permisos de archivos
Hay tres niveles de permisos de archivos y directorios. Estos tres niveles pertenecen a las siguientes categorías:

a)       Usuario (el propietario)
b)       Grupo
c)       Otros

Cada nivel o categoría tiene los privilegios asociados de:

a)       Lectura
b)       Escritura
c)       Ejecución

Un archivo está identificado por el grupo al que pertenece y su propietario. Cuando realizamos un listado de un archivo, encontramos los siguientes parámetros:

ls -l <archivo>

- rwx rwx rwx root root 512 Jan 7 10:50 nom
archivo

El primer carácter identifica el tipo de archivo. Podemos encontrar por ejemplo:

-              Archivo normal (generalmente un archivo binario o de texto ASCII)
d             Directorio

8.1.  Modificación de permisos
Para modificar los permisos de acceso a un archivo se utiliza el comando chmod. Es necesario especificar los siguientes elementos:

a)       Nivel que se va a modificar (propietario, grupo o otros)
b)       Permiso que se va a modificar (lectura, escritura o ejecución)
c)       Archivo o archivos que se van a modificar

Los permisos pueden ser especificados con letras:

chmod g+w /home/archivo       da permiso de lectura al grupo
chmod g-w /home/archivo        quita permiso de lectura al grupo 

O con números:

chmod 751 /home/archivo        da lectura, escritura y ejecución al propietario; Lectura y ejecución al grupo; Ejecución a otros.

Las opciones de chmod, son:

Opción          Descripción

u                     Propietario
g                     Grupo
o                     Otros
a                     Todos

r                      Lectura
x                     Ejecución
w                    Escritura
0                     Sin privilegios
1                     Ejecución
2                     Escritura
3                     Escritura y ejecución
4                     Lectura
5                     Lectura y ejecución
6                     Lectura y escritura
7                     Lectura, escritura y ejecución

Esperamos que toda esta información sea de mucha utilidad y de gran ayuda para tu proceso de aprendizaje.

Fuente : http://backtrackacademy.com/posts/aprende-de-la-mejor-manera-tus-primeros-pasos-con-debian


https://view.genial.ly/5dee5944ae1d2d0fb3a4916c/learning-experience-challenges-prueba


Aircrack-ng: La potente Suite para Auditorías Wifi.

Creado por Samuel Esteban
Post6 n

Aircrack-ng es una suite muy completa para las auditorías Wifi, esta suite permite realizar un completo análisis sobre una red Wifi, permitiendo así obtener credenciales de servicios WEP, WPA, WPA2.    
¿Qué es WEP, WPA, WPA2?
WEP: (Wireless Equivalent Privacy), es un mecanismo de cifrado utilizado por el protocolo de comunicación Wifi. WEP permite al administrador definir un conjunto de "claves" para cada usuario de la red inalámbrica basadas en "cadenas de clave" que se someten al algoritmo de cifrado WEP. Se deniega el acceso a todo aquel que no disponga de la clave exigida. Conforme a lo especificado en la norma, WEP utiliza el algoritmo RC4 con una clave de 40 bits o de 128 bits. Cuando está activada la seguridad WEP, cada estación (clientes y puntos de acceso) dispone de una clave. La clave se utiliza para cifrar los datos antes de transmitirlos a través de ondas. Si una estación recibe un paquete que no está cifrado con la clave adecuada, el paquete es rechazado y no se envía al host, lo que impide el acceso no autorizado y el espionaje.
WPA: (Wi-Fi Protected Access) fue creado por el grupo industrial y comercial Alianza Wi-Fi, dueños de la marca registrada Wi-Fi y certificadores de los dispositivos que ostenten dicho nombre.
Los datos utilizan el algoritmo RC4 con una clave de 128 bits y un vector de inicialización de 48 bits. Una de las mejoras más sobresalientes sobre su predecesor, WEP, es TKIP (Temporal Key Integrity Protocol o Protocolo de integridad de clave temporal), el cual consiste en el cambio dinámico mientras se utiliza el sistema. Cuando se combina con Vectores de Inicialización mayores, hace considerablemente más difícil realizar ataques para la obtención de llaves, como ocurre con WEP.
WPA2: (Wi-Fi Protected Access 2), también conocido como IEEE 802.11i. Se trata de una enmienda en la seguridad del estándar 802.11 (WPA). WPA2 establece medidas estándares de seguridad para redes inalámbricas. Además, WPA2 termina de reemplazar por completo el sistema de seguridad WEP, que carecía de la seguridad suficiente. WPA2 reemplaza el WPA. Introduce el CCMP, una nueva forma de encriptación basada en cifrado por bloques AES con gran seguridad. Funcionamiento del WPA2 IEEE 802.11i (o WPA2) mejora el IEEE 802.11-1999, añadiendo un RSN (Robust Security Network) con dos nuevos protocolos: el 4-Way Handshake y el Group Key Handshake. Estos utilizan los servicios de autenticación y control de acceso a puertos descritos en IEEE 802.1X para establecer y cambiar las claves criptográficas apropiadas.
Aircrack-ng permite realizer potentes auditorías hacia estos protocolos, a continuación se mostrarán el listado de herramientas de Aircrack-ng.
 Herramientas de la Suite Aircrack-ng
Estas herramientas serán explicadas una vez que hayan sido utilizadas.
Para esta primera instancia realizaremos un cracking realizaremos un cracking a red WEP.
Las herramientas que se utilizarán serán airmon-ngairodump-ngaireplay-ng y aircrack-ng.
  • airmon-ng: esta herramienta se utilizará para levantar nuestra interfaz wifi en modo monitor.
  • airodump-ng: Para capturar los paquetes que recibe nuestra interfaz en modo monitor
  • aireplay-ng: Para crear una autentificación falsa y poder inyectar paquetes, si es que nuestro hardware lo permite
  • aircrack-ng: Para interpretar los datos capturados con airodump y poder obtener la clave
En primer lugar utilizaremos el commando iwconfig para verificar el nombre de nuestra tarjeta de red inalámbrica, en este caso nos apareció con el nombre de wlan0 (cabe mencionar que si estas utilizando Kali Linux en una máquina virtual, necesitarás una tarjeta de red inalámbrica externa para que este tipo de ataques funcione, si tienes Kali Linux de manera nativa, no habrá problema al respecto).
El primer paso sera setear la interfáz wifi en modo monitor, el modo monitor nos permitirá escuchar las redes inalámbricas que se encuentran en el aire, además nos permitirá realizer una inyección de paquetes hacia el objetivo, para este proceso ejecutamos:
#airmon-ng start wlan0
Cambiamos wlan0 por el nombre de nuestra interfáz de red wireless .Se verá que se creo otra interfaz llamada mon0 o algo similar.
Posteriormente utilizaremos la herramienta airodump-ng. Esta herramienta nos permitirá escuchar las redes inalámbricas en conjunto con la interfaz en modo monitor (mon0).
#airodump-ng mon0
Este comando nos arrojarará las redes disponibles:
  Redes Disponibles
 Información de la estructura de airdodump-ng
Para esta prueba atacaremos la red llamada “club”. Entonces ejecutamos airodump-ng con los parámetros necesarios para que se enfoque únicamente en su mac y su canal.

# airodump-ng -w output --channel 6 --bssid 00:02:CF:B4:DC:5B mon0
    Opciones fundamentales de airodump-ng

A continuación se utilizarán dos herramientas más para la inyección de paquetes. La inyección de paquetes nos sirve par “obligar” al router a que genere trafico y nos envie los #Data que necesitamos (Con aproximadamente 40.000 #Data es possible crackear la red). Primero, utilizaremos aireplay-ng para generar una autentificación falsa.
# aireplay-ng -1 64 -a 00:02:CF:B4:DC:5B -h 00:1E:65:CB:29:64  mon0
Pasamos la MAC de nuestro objetivo bajo el parametro -a y nuestra MAC mediante -h. Con -1 indicamos que usaremos el modo de ataque numero 1.
Mientras esperamos que se genere la autentificación falsa, dejaremos corriendo en otra terminal  aireplay-ng en modo de ataque 3, para que inyecte paquetes.
# aireplay-ng -3 -b 00:02:CF:B4:DC:5B -h 00:1E:65:CB:29:64 mon0
Cuando tengamos todos los ataques corriendo y el airodump-ng capturando paquetes, podremos ver una pantalla como la siguiente:
        Cantidad de paquetes incrementando
Finalmente abrimos una cuarta terminal, con la cual procederemos a realizar el crack, es recomendable iniciar el crack cuando el #Data sobrepase los 30.000 paquetes. Con el siguiente comando podremos realizer el crack en cuestión:
# aircrack-ng output*.cap
Donde el .cap indica el nombre del archivo generado por airodump-ng con esa extension. Finalmente podremos observar un crackeo exitoso:
  Contraseña Crackeada
La contraseña encontrada es CBC7353303. Es importante mencionar que en la actualidad hay herramientas que facilitan este trabajo, sin embargo en este documento se desea enseñar el funcionamiento como tal de este tipo de ataques.
Siguiendo con la estructura de las redes móviles proceremos a realizar un ataque a redes de tipo WPA/WPA2. En este caso sera WPA2 ya que para WPA es una estructura similar.
    Ejecutando Interfaz en Modo Monitor
En este caso la interfaz en modo monito es wlan0mon. Posteriormente utilizaremos el comando airodump-ng wlan0mon para escuchar las redes disponibles.
           Redes disponibles
Al usar el comando airodump-ng wlan0mon, logramos obtener esa lista de redes WPA2, en este caso nos enfocaremos en la red llamada “Hogar”. Como se puede observer en la imagen anterior, esta red posee un cliente conectado (en la esquina inferior izquierda se refleja esto), gracias a este cliente será possible extraer lo que se conoce como el Handshake. El Handshake es un proceso automatizado de negociación que establece de forma dinámica los parámetros de un canal de comunicaciones establecido entre dos entidades antes de que comience la comunicación normal por el canal. Al obtenerlo es posible realizar un ataque brute force offline para intentar crackear la contraseña. A continuación veremos como obtener este Handshake. Para ello utilizaremos el siguiente comando:
airodump-ng --bssid B4:52:7D:D4:B1:9D --channel 6 -w redhogar wlan0mon
Como vimos anteriormente con este comando podemos ver como se esta comportando el AP y cuanto tráfico esta generando.
       Estado del AP “Hogar”
Para lograr obtener el Handshake, es necesario desautenticar al cliente que esta conectado a la red que se desea atacar. Una vez que el cliente sea desconectado e intente nuevamente conectarse a la red, se obtendrá el Handshake para posteriormente ser crackeado. Para realizar esta técnica se utilizará la herramienta aireplay-ng con la siguiente estructura.
#aireplay-ng -0 3 -a B4:52:7D:D4:B1:9D -c E0:2A:82:DA:DA:A4 wlan0mon
Con este comando le estamos diciendo que ataque al AP “Hogar”, de tal manera que se desautentificará el cliente conectado a dicha red.

<img src="https://lh6.googleusercontent.com/4Yihg1x-U5KGSQcwTMbMh38KxQWhRGis5KaAT83PE7J7c85BEfZbddt9iKyASBIdX7Zfo5klZpcYp07ooD7j5TsAiYXDruCAnKTNGyZ7Q156xqNeRTEkqF7Jjm5Xvo8IWyEzbvu5NUUiF5" width="589" height="152" class="img-responsive">
   Desautenticación exitosa

Como es posible visualizar en la imagen anterior fue posible realizar el ataque y obtener el Handshake. Finalmente se intentará realizar un ataque de fuerza bruta offline hacia este Handshake.
#aircrack-ng redhogar-01.cap -w rockyou.txt
Con este comando le decimos que nos intente realizar un crack con el diccionario rockyou.txt al archivo redhogar-01.cap el cual fue creado con airodump-ng.
<img src="https://lh4.googleusercontent.com/qsugof0AWRDjSJ2yKzH8ZoEWfXxtew0wpGxSbG0DhjKvuV-oD9hOJl7Gpb7TlautFIhIBV9vtU4pZYwwgfRilEFPVWNeMgoa-xuIBm3RZApjCoXv2P2RCgTn1lI4s1OqwZqIl7g5EfB" width="589" height="280" class="img-responsive">
   Cracking WPA2 exitoso
Más adelante se verán técnicas más avanzadas sobre auditorías Wifi, cabe resaltar que este document estuvo enfocado netamente en aprender el como realizar un ataque a una red wifi y comprender los escenarios de ataque.

Mas informacion : backtrackacademy
by: http://backtrackacademy.com/posts/aircrack-ng-la-potente-suite-para-auditorias-wifi