Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas
Mostrando entradas con la etiqueta Seguridad. Mostrar todas las entradas

Como hacer nuestro Linux más seguro II: Administración de directorios y ficheros

Continuando el tema ya sabemos administrar a los usuarios y grupos ahora toca el turno de los directorios y ficheros. Pero antes de empezar debemos saber algunas cosas sobre el sistema de ficheros en Linux.

Definición y características.
  • Para Linux todo es un fichero.
  • Un fichero es un conjunto de información relacionada usualmente almacenada en un dispositivo de memoria (disco, cd-rom ...)
  • En Linux hay 7 tipos de ficheros: 
    • Comunes (ficheros de texto, ficheros binarios)
    • Carpetas: contiene referencias de nombres para otros ficheros
    • Enlaces simbólicos: un puntero a un fichero
    • Dispositivos de caracteres
    • Dispositivos de bloques
    • Local Domain Sockets
    • Named pipes.
Para saber que tipo de fichero es podemos utilizar el comando:
$ ls -l
Este comando nos devuelve una información donde el primer caracter no indica el tipo:
  • -: normal
  • b: fichero controlador de dispositivos orientado a bloques
  • c: fichero controlador de dispositivos orientado a caracteres
  • d: directorio
  • l: enlace simbolico
  • s: socket
  • p: named pipe
Tipos de permisos

Cada ficheros y directorio posee tres conjuntos  de permisos del tipo:
  • r: lectura
  • w: escritura
  • x: ejecución
Estos permisos son asociados a los usuarios, grupos o usuarios públicos. Y para establecer estos permisos, Linux utiliza la notación octal (base 8) de modo que querian representados de la siguiente manera:
  • r: 4
  • w: 2
  • x: 1
Existen permisos especiales denominados:
  • setpid: 4000 En lugar del permiso de ejecución x aparecerá s. Este fichero cuando se ejecuta permite convertirte en el dueño.
  • setgid: 2000 En lugar del permiso de ejecución x aparecerá s. Esta carpeta cuando se ejecuta permite convertirte en el dueño.
  • sticky: 1000 Permite proteger de borrados accidentales de las carpetas, de forma que solo puedan ser borradas por el propietario, esta representado mediante t en el comando ls.
Como establecer los permisos y propietarios de los ficheros.

Para establecer los propietarios de los ficheros y/o carpetas disponemos del comando chown. Su uso lo podremos ver con el comando man:
$ man chown

Pero la opciones basicas son:
  • Para cambiar el propietario de un fichero o carpeta:
    • $ chown usuario fichero
  • Para cambiar el usuario y el  grupo de un fichero o carpeta
    • $ chown usaurio.grupo fichero.

Para cambiar los permisos utilizaremos el comando chmod, para más información de este comando:
$ man chmod

El comando chmod se emplea utilizando símbolos como a,u,g,o que representan a todos (a "all"), al usuario (u), al grupo (g) y a todos los demás (o). Existen símbolos para agregar (+) quitar (-) o dejar invariantes los permisos (=). Además tendrán que usarse los símbolos característicos para cada tipo de permiso. Para el permiso de lectura (r), para el permiso de escritura (w) y para el permiso de ejecución (x). Solo el dueño del archivo puede cambiarlo con él; excepción del root que también lo puede hacer.  Ahora bien, esta es la forma simbólica. Pero existe una forma un poco más sistemática que es la forma de representación octal. El comando chmod permite establecer los permisos de un archivo por medio de un número octal. Comúnmente nosotros usamos para contar una representación decimal (0,1,2,3,4,5,6,7,8,9) pero en una representación octal solo se usan 8 números (0,1,2,3,4,5,6,7). Para establecer el permiso habrá que sumar los dígitos octales de acuerdo a una tabla que se dará a continuación. Dado que no se realiza acarreo, la suma será trivial.

Dicho esto para establecer los permisos lo hariamos de la siguiente manera:
$chmod  a quien +- permiso a que (chmod a-rw \home\usario\permiso.txt)

Como hacer nuestro Linux más seguro I: Administración de usuarios y grupos de usuarios.


Todo sistema operativo tiene que tener un sistema de administración de usuarios y los grupos de usuarios para tener un sistema seguro. Y para hacer nuestro Linux sea mas robusto tenemos y/o debemos saber como funcionan estos sistemas. Para ello vamos a explicar este funcionamiento.

En Linux, independientemente de la distribución que usemos, los ficheros relacionados con la gestión de los usuarios y grupos estarán en:
  • /etc/passwd
  • /etc/shadow
  • /etc/group
  • /home/usuario (directorio)
  • /etc/skel
El fichero /etc/passwd
Este fichero contiene la lista de todos los usuarios definidos en el sistema.  Contiene 7 campos separados por ":" :
  • Login name: Nombre corto del usuario, este debe ser único, no poseer mas de 32 caracteres, no debe empezar por números y puede contener letras, números y signos de puntuación exceptuando ":". Cabe recordar que son case sensitive, es decir diferencia entre mayúsculas y minúsculas.
  • Encryted password: El campo de contraseñas, si se encuentra vacío, no se requiere contraseña, si contiene una "x" es que se utiliza el concepto Shadow password, si contiene un "*" indica que la cuenta se encuentra deshabilitada.
  • User ID (UID) number: Identificador único de usuario, cada usuario posee un UID, el usuario root posee el UID 0, otras cuentas del sistemas poseen el UID < 100. Normalmente los UIDs de los usuarios finales comienzan a partir de 500, pero esto puede ser configurable, por ejemplo en Ubuntu empiezan en 1000. Se recomienda conserva un mismo UID a través de toda la red para evitar problemas de seguridad. Es decir si dos equipos de una red tienen usuarios diferentes y estos tienen el mismo UID esto podría generar problemas de seguridad.
  • Default Group ID (GID) number: Identificador de grupo primario. Cada usuario pertenece a un grupo primario por defecto, de forma automática es miembro de ese grupo al iniciar la sesión. Los grupos se encuentran definidos en un fichero. Cada grupo posee su propio GID, el GID del root es el 0. Siempre hay que diferenciar los grupos de los usuarios aunque posean el mismo nombre.
  • Comment: Campo comentario. Este campo es utilizado para añadir información adicional sobre el usuario. Los usuarios pueden actualizarlo a través del comando chfn. Este campo es utilizado por algunos servicios como es el caso de finger, para mostrar información en la red.
  • Home Directory: La carpeta personal del usuario. Es la ubicación del usuario al iniciar la sesión. Utilizado para almacenar configuraciones y ficheros.
  • Default Shell: Interprete de comando por defecto al iniciar la sesión, este suele ser por defecto Bash: Los usuarios pueden cambiar el shell utilizando el comando chsh
El fichero /etc/shadow
El uso de shadow password permite eliminar el acceso publico a las contraseñas encriptadas de los usuarios eliminándolas  del fichero /etc/passwd e incorporándolas en /etc/shadow que solo solo tiene acceso el usuario root.

La estructura de este fichero es:
  • username: identificación del usuario.
  • password: contraseña encriptada del usuario.
  • lastchg: el último día que se cambio la contraseña del usuario contados desde el el año 1970.
  • min: número mínimo de días que deben pasar antes que una contraseña se permita ser cambiada.
  • max: número máximo  de días que pueden pasar antes que una contraseña deba ser cambiada.
  • warm: número de días previos de aviso a que la contraseña venza.
  • inactive: número máximo de días  que pueden pasar entre dos accesos al sistema (periodo de inactividad).
  • expire: fecha de expiración de cuenta de usuario
  • flag: campo reservado por parte del sistema operativo.
El fichero /etc/group
Los grupos de usuarios se encuentran definidos en este fichero y contiene la siguiente información:
  • Group name: El nombre del grupo que no puede comenzar con: guiones "-", signo más "+", la arroba "@" y tildes "'". No se puede utilizar como nombre de grupo "ALL" o "default". Tampoco se puede utilizar los siguientes símbolos en la estructura del nombre: dos puntos ":", comilla doble ("), almohadilla "#", signo igual "=", contra barra "\", barra "/", signos de interrogación "¿?", comilla simple "'", comilla invertida, coma ",".
  • Password: contraseña del grupo.
  • Group ID numer (GID): Identificador del grupo.
  • Member User: usuarios que pertenecen al grupo.
El directorio /etc/skel y el directorio /Home/usuario.

El directorio /home : Es la carpeta donde se guardan los archivos personales de todos los usuarios, documentos, configuración específica de ciertos programas, etc.  Dentro, existe una carpeta con el nombre de cada usuario. Generalmente, cada usuario tiene acceso sólo a su directorio home. Los usuarios normales tienen total control (lectura, escritura, ejecución) de los archivos de su “home” y en caso que un usuario común haga algo realmente desastroso con el sistema, sólo afectará su home, dejando el del resto de usuarios y el resto del SO intacto. El superusuario (root) tiene acceso total a todos los directorios de los demás usuarios (recuerden la frase: “cada user en su home y el root en el de todos”).


El directorio /etc/skel es bastante simple de configurar y usar. Proporciona una forma de estar seguro de que todos los nuevos usuarios de tu sistema LFS tienen la misma configuración inicial. El directorio /etc/skel es usado por el programa /usr/sbin/useradd.

Para empezar, crea un directorio /etc/skel. La mejor forma de hacerlo es como usuario root. Después copia en /etc/skel aquellos ficheros que quieras que cada nuevo usuario tenga en su directorio home. Por ejemplo, .bash_profile, .bashrc, .bash_logout, dircolors, .inputrc, y .vimrc.

Comandos para la administración de usuarios y grupos



Para administrar los usuarios tenemos los comandos:
  • useradd: añade usuarios
  • usermod: modifica y/o actualiza usuarios
  • userdel: elimina la cuenta de usuario del sistema
Estos comandos actúan sobre los ficheros /etc/passwd, /etc/shadow, /etc/group.
Estos comando solo pueden ser utilizados por los administradores del sistema o el usuario root.

Para administrar los grupos disponemos de los siguientes comandos:

  • groupadd: añadimos un grupo nuevo.
  • groupmod: modifica un grupo.
  • groupdel: borra un grupo.
  • newgrp: permite modificar el grupo primario del usuario.
Estos comandos actúan sobre el fichero /etc/group.  Estos comando solo pueden ser utilizados por los administradores del sistema o el usuario root.

Para más información sobre el uso de estos comandos man comando, ejemplo; man useradd, para obtener información del uso del comando useradd

La cuenta root
Toda distribucion de Linux posee una cuenta de usuario con máximos privilegios conocida como superusuario y denominada como root.

Todos los ficheros y procesos del sistema poseen como propietario la cuenta root, esta cuenta actúa como el dueño de cualquier fichero o proceso por mas que no figura explícitamente. La cuenta de root posee privilegios de operación del sistema por lo que es la cuanta mas peligrosa del sistema, en términos de seguridad.Esta cuenta posee el UID=0.

La cuenta root puede ser renombrada, pueden crearse otras cuentas que posean UID=0 dando automáticamente el privilegio de root. Aunque ninguna de estas medidas es aconsejable.

Tampoco es aconsejable utilizar la cuenta root  como cuenta de uso cotidiano. Ya que en Linux se permite a esta cuenta efectue operaaciones sobre ficheros y procesos. Por lo que podria dejar el sistema inhabilitado como puede ser el uso del comando rm -r/.

Antes de iniciar una sesion como root es aconsejable iniciar la sesion con otro usuario y convertirse en root cuando sea necesario.

El comando su permite convertise en root o cualquier usuario. Al utilizado sin argumentos se solicita automaticamente  la contraseña del root.

Los privilegios de root no pueden ser eliminados. 

El comando sudo

Una alternativa al comando su es el comando sudo. Este comando nos pertmite la ejecución de cualquier comando sin necesidad de convertirnos en root.

Colocaremos el comando sudo delante del comando que necesitemos ejecutar como root. Por ejemplo: sudo apt-get update.

Pero puede cualquier usuario utilizar sudo. Pues no, solo lo podrán usar aquellos usuarios que estén configurados en el fichero /etc/sudoers. De hecho el comando sudo consulta este fichero para saber si el usuario esta o no autorizado a usarlo. Si se encuentra habilitado sudo solicitada la contraseña del usuario para confirmar la realización de la tarea.

Una vez utilizado el comando sudo no se volverá a solitar la tarea hasta que pasen 5 minutos ( o el tiempo que se haya establecido). Sudo conserva un log de los comandos utilizados, quien lo hizo, cuando y desde que directorio.

Es por ello que se recomienda usar el comando sudo en lugar su, ya que dispone de las siguientes ventajas:
  • Logs. Por lo que podremos rastrear el uso del comando.
  • Limitación del conocimiento de la contraseña del usuario root
  • Mas rápido que utilizar su o iniciar la sesión como root.
  • Menos posibilidades de dejar la cuenta root desatendida.
Consejos de seguridad para la administración de usuarios y grupos de usuarios.
  • Todos los usuarios deberían tener una contraseña.
  • Deshabilitar las cuentas que no se utilicen.
  • Deshabilitar la cuenta del usuario invitado.
  • Usar sudo en lugar de root siempre que el se pueda y en caso de no poder hacerlo usar root siempre en una sesión nueva y en terminal, no es recomendable usar root en entorno gráficos.
  • No se recomienda el uso de inicios de automáticos.

    Disponible libro , "Una al día: 11 años de seguridad informática"


    Hispasec Sistemas está de celebración, su sección “Una al día” cumple 11 años y para celebrarlo, han puesto a disposición de todos para su libre descarga y en formato PDF el libro que recoge toda la historia de esta conocida sección, según podemos leer en Hispasec;
    Una al día: 11 años de seguridad informática” invita al lector a realizar un recorrido por los hechos más destacados desde el nacimiento del boletín de Hispasec a nuestros días. Bajo una perspectiva amena y entretenida, abarca desde las noticias más relevantes de ámbito general ocurridas en el mundo pasando por los hitos y anécdotas más destacadas en el campo de la seguridad informática.
    A modo de anuario, a capítulo por año, el libro ofrece una visión global desde una perspectiva histórica, incluyendo entrevistas para la ocasión con las figuras más relevantes de los últimos once años: Bruce Schneider, Eugene Kaspersky, Johannes Ullrich, Juan Carlos G. Cuartango, Mikel Urizarbarrena… Por último, se han seleccionado algunas de las mejores Una al día de todos los tiempos, que reflejan el estado de la seguridad en el momento en el que fueron redactadas.

    Visto en: Daboweb

    Disponible CAINE 1.0 Live CD informática forense.


    CAINE (Computer Aided INvestigative Environment) es una distribución Live CD basada en Ubuntu que ofrece un completo entorno forense bajo un interface gráfica.


    El proyecto esta ya en la versión 1.0. algunas novedades de esta versión son:
    • WinTaylor: un fron-end forense para entornos Windows.
    • HTML IE-Compatible para ejecutar herramientas forenses en Windows.
    • NTFS-3G: actulizado a 1.1.2009 (resolviendo bug versión anterior).
    • Nueva opción de arranca, modo texto.
    • Ubuntu 8.04 actualización paquetes.
    • Firefox 3.0.14
    • GtkHash: front-end para calcular el hash de ficheros.
    • Nuevos idiomas para informes: Italiano, Inglés, Alemán, Francés y Portugués.
    Visita la página web del proyecto para leer el anuncio del lanzamiento y leer mas acerca de las especificaciones de la distribución.


    Descargar la ISO: caine1.0.iso (695MB, MD5).


    Visto en DistroWatch

    Cómo cifrar y utilizar el directorio cifrado en Ubuntu


    A partir de Ubuntu 8.10 se puede crear un directorio cifrado en nuestro carpeta personal bajo el nombre Private, en donde podemos incluir información importante que no podrá ser accesible de manera externa sin conocer la clave que le hayamos asignado.
    Algunos asuntos a considerar.
    • El directorio cifrado se puede utilizar normalmente, cuando iniciemos sesión en nuestra cuenta. A pesar de que podamos ver los datos, desde afuera de nuestra cuenta no pueden hacerlo.
    • Los datos no son accesibles, por ejemplo, para el superusuario del sistema u otros usuarios con privilegios, en modo de rescate o a través de un LiveCD o herramienta de rescate.
    • A pesar que los datos se mantienen cifrados, pueden ser borrados, contando con los privilegios adecuados.
    • Es importante no olvidar la clave de cifrado para en caso de tener que recuperar manualmente los datos, podamos hacerlo.
    • Podemos utilizar este directorio en portátiles para mantener seguros nuestros datos. Existen otras formas más seguras y completas de hacerlo, por ejemplo, cifrando toda la partición, pero esta es una manera rápida y fácil para proteger datos importantes.
    Configuración.

    Esta característica debe de ser configurada antes que la podamos utilizar ya que no se crea de manera automática con nuestra cuenta de usuario.

    Básicamente son dos pasos de configuración:

    1. Instalar la herramienta de cifrado (si no está instalada aún).

    $ sudo apt‐get install ecryptfs‐utils



    2. Configurar el directorio asignándole una contraseña o clave de cifrado a través del siguiente comando:

    $ ecryptfs‐setup‐private



    En este paso preguntará la clave de login de la cuenta, para después asignar una clave de cifrado. Se puede dejar en blanco para que automáticamente genere esta clave.

    Terminado el proceso, cerramos sesión y volvemos a loguearnos. En nuestra carpeta personal encontraremos el directorio Prtivate al cual se puede acceder sin necesidad de introducir una contraseña.

    Utilización.

    En el directorio podemos añadir todos los datos que queramos mantener en privado, utilizándolo como un directorio normal.

    Por ejemplo, si utilizamos Thunderbird, a fin de mantener privados nuestros correos podemos mover la carpeta a este directorio y crear un enlace simbólico para que el programa siga funcionando normalmente.

    Primero movemos el directorio de Thunderbird al directorio Private:

    $ mv ~/.mozilla-thunderbird ~/Private



    Después hacemos un enlace simbólico que apunte a donde lo movimos:

    $ ln -s ~/Private/.mozilla-thunderbird ~/.mozilla-thunderbird



    Siempre tomando en cuenta que los datos que vayamos a añadir no los estemos utilizando con alguna aplicación. Tomando en cuenta el ejemplo anterior antes de mover el directorio debemos de cerrar el programa, en caso de tenerlo abierto.

    Lo mismo podemos hacer con los directorios comunes de GNOME (Documentos, Música, Imágenes, etc) haciendo un enlace simbólico para mantenerlos siempre en primer plano y funcionando sin problemas en relación con aplicaciones que los usen.

    Visto en: EspacioLinux

    Disponible PacketProtector 3.5, distribución Linux para gestionar la seguridad en enrutadores inalámbricos

    packet protector

    PacketProtector es una distribución GNU/Linux diseñada especialmente para gestionar la seguridad de nuestra conexión WiFi, se instala en nuestro router inalámbrico y nos facilita la tarea de gestionar la seguridad de nuestra conexión inalámbrica convirtiendo nuestro router en un dispositivo de gestión unificada de amenazas.



    PacketProtector cuenta con las siguientes utilidades integradas:
    • Un cortafuegos stateful (iptables)
    • Detección de intrusiones (Snort-inline)
    • Interfaces de administración seguras (SSH y HTTPS)
    • Filtros de cortafiegos para filtrado en aplicaciones de mensajería y P2P
    • Acceso remoto vía VPN (OpenVPN)
    • Filtro de contenidos y controles parentales (DansGuardian)
    • Capacidad para conectividad WPA/WPA2 Enterprise wireless (802.1X y PEAP con FreeRADIUS)
    • Prevención de IP spoofing (Linux rp_filter)
    • Detección de actrividades anómalas (ipt_unclean)
    • Antivirus Web (DG + ClamAV)
    • Una autoricad local de certificación SSL (OpenSSL)


    Página oficial del PacketProtector

    Visto en: DragonJar

    Disponible OpenSSH 5.3, para celebrar sus 10 años

    Leo en FentLinux que esta disponible una nueva versión de OpenSSH, en concreto la 5.3. OpenSSH (Open Secure Shell) es un conjunto de aplicaciones que permiten realizar comunicaciones cifradas a través de una red, usando el protocolo SSH. Fue creado como una alternativa libre y abierta al programa Secure Shell, que es software propietario.

    Si eres administrador de algún servidor y buscas conexiones seguras, OpenSSH es lo que estas buscando, capaz de crear "tuneles de seguridad" para protegerte de posibles ataques.

    Esta versión es lanzada para conmemorar los 10 años del programa, y solucionar diversos fallos encontrados en la anterior entrega.

    En este enlace tienes mas información al respecto y en este otro encontrarás las novedades que incluye. Muy recomendable su actualización.

    Recopilatorio noticias de seguridad informática mes de septiembre 2009


    Bueno iniciamos una sección en el blog "Noticias de seguridad", donde iremos publicando el recopilatorio de entradas publicadas  en Daboweb correspondientes al mes anterior.

    En esta ocasión corresponden al mes de septiembre-09.

    Curso completo de Metasploit Unleashed


    Leyendo a VivaLinux me entero que
    que la existencia de un curso sobre framework de Metasploit.

    Metasploit Unleashed - Mastering the Framework es quizás el curso más completo sobre el framework de Metasploit disponible con una versión gratuita en línea. Recordemos que Metasploit es una poderosa herramienta para desarrollar y ejecutar código de exploits contra sistemas remotos, con una notable extensibilidad que lo hace muy valioso para actividades legítimas e ilegítimas por igual.

    Offensive Security, los autores del curso, prometen en su blog hacer de éste un recurso "vivo", actualizado a medida que Metasploit evolucione y/o agregue más módulos. También publicitan el curso "completo", con versión en formato PDF y videos, a ser lanzado junto con la próxima versión 3.3 de Metasploit.

    La ascendente popularidad de Metasploit, que podría llegar a convertirlo en un estándar de facto pronto, queda demostrada con el hecho de que recientes advertencias de vulnerabilidades de software ya son publicadas junto con un módulo de Metasploit que implementa el correspondiente exploit y el remedio para el error particular.

    Disponible Aircrack-ng 1.0, herramienta para monitorizar redes wifi


    Aircrack-nghttp://www.aircrack-ng.org/ es un paquete de herramientas bajo licencia GPL, destinadas a monitorizar y analizar redes sin hilos y con el que podremos poner la prueba a seguridad del cifrado de conexiones WEP  y WPA.

    Este paquete esta compuestos por un sniffer de paquetes de red, un crackeador de redes WEP y WPA /WPA2-PSK y un conjunto de herramientas para la auditoría de redes sin hilos.

    Con este paquete de herramientas podemos recuperar los contraseñas de redes WEP 802.11 o WPA-PSK, una vez que consiga la cantidad de paquetes de datos suficientes. Aircrack-ng proporciona el ataque estándar FMS junto con algunas optimizaciones como los ataques Korek, así como todos los nuevos ataques PTW, ponerlo cual obtiene un resultado de ataque mucho más rápido comparado con otras herramientas de crackeo WEP.

    Aircrack-ng pasa por ser una de las mejores y más completas alternativas para auditar redes inhalámbricas.
    Recientemente fue liberada su versión 1.0 que cuenta con las siguientes novedades
    • Más tarjetas y drivers compatibles
    • Más Sistemas operativos compatibles
    • Nuevos ataques WEP  compatibles : PTW (aircrack-ng)
    • Ataque de diccionario WEP (aircrack-ng)
    • Ataque de fragmentación (aireplay-ng)
    • Mejorada la velocidad de crackeo (aircrack-ng)
    • Captura de múltiples tarjetas (airodump-ng)
    • Nuevas herramientas: airtun-ng, packetforge-ng (arpforge mejorado), wesside-ng, easside-ng, airserv-ng, airolib-ng, airdriver-ng, airbase-ng, tkiptun-ng y airdecloak-ng
    • Otras optimizaciones, avances y solución de errores
    Para instalar este paquete de herramientas sólo tenemos que ejecutar en la consuela la orden
    $ sudo apt-get install aircrack-ng.

    Descargar los paquetes desde la web:  Aircrak-ng para linux
    Más información en español en Aircrack-es 

    Visto en: Mancomun

    WPA Crackeada en un minuto

    La seguridad de las redes WiFi esta en entre dicho, consiguen reventar la contraseña WPA en un minuto.
    Dos investigadores japoneses han descubierto un ataque sobre WPA que permitiría romper el cifrado en un minuto. Toshihiro Ohigashi de la universidad de Hiroshima y Masakatu Morii de la universidad de Kobe presentaran los detalles del ataque en una conferencia que tendrá lugar en Hiroshima el próximo 25 de septiembre.
    En la pasada conferencia PacSec 2008, los investigadores alemanes Mark Tew y Martin Beck presentaron un ataque que permitía romper parcialmente el cifrado usado por WPA en un tiempo de 12 a 15 minutos usando una técnica similar a "Chopchop", empleada en los ataques al protocolo WEP.
    Dicho ataque estaba limitado a implementaciones que soportan características de QoS, mientras que con esta nueva aproximación, basada en el trabajo de Tew y Beck, cualquier implementación WPA es susceptible de ser vulnerable y en un tiempo bastante más reducido.
    Ambos ataques se limitan a WPA usando TKIP -Temporal Key Integrity Protocol- una versión modificada de WEP, con lo cual no afectaría a WPA usando AES ni al protocolo WPA2.
    Aclarar también que el ataque no tiene como objetivo extraer la llave PSK, fundamental para emplearla en la negociación de conexiones con el punto de acceso. De momento, los ataques a WPA tan solo se pueden emplear para inyectar un determinado número de paquetes falsificados en el tráfico.

    Más Información:

    10/11/2008 Ahora sí, TKIP usado en WPA parece estar herido de muerte
    http://www.hispasec.com/unaaldia/3670

    A Practical Message Falsification Attack on WPA [PDF]
    http://jwis2009.nsysu.edu.tw/location/paper/A%20Practical%20Message%20Falsification%20Attack%20on%20WPA.pdf

    New attack cracks common Wi-Fi encryption in a minute
    http://www.thestandard.com/news/2009/08/26/new-attack-cracks-common-wi-fi-encryption-minute

    Visto en: Hispasec

    Principales distribuciones de seguridad basadas en Linux

    Si hace unos días hablamos de las principales distribuciones linuxeras, con un Top 10 de las mismas. Hoy os traigo otro listado pero en esta ocasión tan solo de distribuciones de seguridad.

    Recordamos que el principal uso de estas distribuciones es únicamente para fines profesionales.

    Dicho esto pasamos a citar las distribuciones.

    BackTrack es una distribución GNU/Linux en formato LiveCD pensada y diseñada para la auditoría de seguridad y relacionada con la seguridad informática en general.
    Actualmente tiene una gran popularidad y aceptación en la comunidad que se mueve en torno a la seguridad informática.
    Deriva de la unión de dos grandes distribuciones orientadas a la seguridad, el Auditor + WHAX.
    WHAX es la evolución del Whoppix (WhiteHat Knoppix), el cual pasó a basarse en la distribución Linux SLAX en lugar de Knoppix.
    Incluye larga lista de herramientas de seguridad listas para usar, entre las que destacan numerosos scanners de puertos y vulnerabilidades, archivos de exploits, sniffers, herramientas de análisis forense y herramientas para la auditoría Wireless.
    BackTrack 4 Pre Release Download: Click here 
    BackTrack 3 Estable Download: Click here



    Operator
    Operator v3.3.20 es una distribución GNU/Linux Debian con el motor Live CD de KNOPPIX que contiene una enorme lista de herramientas de seguridad útiles para monitorizar y analizar redes y vulnerabilidades de sistemas operativos.


    Se trata de una alternativa muy atractiva por la facilidad con que se despliega una lista de programas impresionante.

    La lista completa del contenido http://www.ussysadmin.com/operator/tools_list.html

    Se puede descargar la imagen ISO desde http://www.ussysadmin.com/operator
    PHLAK es un distribución Live CD basada en Morphix, que cuenta con usa serie de herramientas de seguridad de red;  nmap, nessus, snort, the coroner's toolkit, Wireshark, hping2, proxychains, lczroex, ettercap, kismet, hunt, y brutus. 
    Podemos descargar la ISO de la última versión desde aquí, la última versión es la 3.0

    Local Area Security Linux es una distribución pequeña que cabe en un MiniCD basada en Knoppix, pero con FluxBox (mi preferido) como Window Manager. Contiene alrededor de 100 herramientas de seguridad, incluyendo Ethereal y nessus. Su actual versión es la 0.4a y pueden verlo en acción en esta captura. La versión actual es la 0.5

    Knoppix-STD STD (Security Tools Distribution) es una versión personalizada de Knoppix, una distribución de Linux pensada para ser ejecutada directamente desde el CD-ROM ("Live CD"). Utiliza el núcleo 2.4.20 y KDE 3.1, da soporte a una gran cantidad de dispositivos de hardware (que son detectados y configurados automáticamente). Cuando se arranca la máquina con Knoppix STD, no se realiza ningún tipo de modificación en la configuración del ordenador. 
    Knoppix STD incluye un gran número de herramientas de interés para la seguridad, todas ellas preparadas para ser ejecutadas directamente desde el CD. Las herramientas se dividen en varias categorías: autenticación, identificación de contraseñas, cifrado; herramientas
    para el análisis forense, cortafuegos, honeypots, sistemas de detección de intrusiones; herramientas para la gestión de redes; un gran número de herramientas para la realización de pruebas de penetración, sniffers; herramientas para la realización de valoraciones de seguridad y herramientas para la realización de pruebas de redes sin fines.
    Puedes descargar esta distribución desde la pagina de descarga de la web oficial


    FIRE esta distribución de Linux incluye las herramientas necesarias para la realización de valoraciones de seguridad, respuesta a incidentes de seguridad, pruebas de penetración y análisis forense de sistemas y recuperación de datos en sistemas Windows, Solaris (SPARC) y Linux (x86). Adicionalmente, FERIO incluye un programa para la detección de
    virus (F-Prot).
    La versión actual es la FIRE.0.4 y la podemos descargar desde aquí.




    R.I.P. (Recovery Is Posible) Linux se trata de una distribución de Linux pensada por recuperar datos de sistemas de ficheros defectuosos. Merced a esta distribución, el autor de este boletín pudo recuperar los datos de una máquina con un disco duro defectuoso que Windows XP se negaba a reconocer ni tampoco sabía como reparar. Con R.I.P. Linux fue posible no tan solo montar y acceder a la información, sino transferirla por la red a otro sistema. R.I.P. Linux funciona directamente desde el CD-ROM y da soporte a diversos sistemas de archivos: ext2, ext3, reiser, jfs, xfs, ufs, NTFS, FAT16 y FAT32
    Podemos descargar RIP 9.3 ISO desde aquí.

    WARLINUX esta distribución de Linux, en modo texto, está especialmente pensada para la verificación de la seguridad de las redes inalámbricas. Funciona directamente desde el CD y permito identificar las redes inalámbricas que están al alcance del ordenador y la realización de auditorios de seguridad y valoración de su nivel de seguridad.

    Podemos descargar WarLinux.0.5 desde aquí.

    Helix no es más que un Live-CD. De tal manera que se puede iniciar el sistema en un entorno personalizado de Linux que incluye un Kernel personalizado, excelente detección de hardware, y muchas aplicaciones Forenses y orientadas a la Respuesta de Incidentes. Helix se ha modificado muy cuidadosamente para no tocar de manera alguna el computador anfitrión, y esto hablando forénsicamente. Helix no monta automáticamente espacio swap, o dispositivos adjuntos. Helix también tiene u n lado especial para Respuesta de Incidentes y Forense. Helix se enfoca en herramientas Forenses y Respuesta de Incidentes.
    Versión actual Helix 2008R1, que puedes descargar desde aquí.

    Como analizar nuestra red en busca de vulnerabilidades con Nessus

    Continuando con este interesante tema de seguridad en red y tras los recientes artículos de Nmap y Ntop, ahora le toca el turno a Nessus.

    Según la wikipedia, Nessus es un programa de escaneo de vulnerabilidades en diversos sistemas operativos. Consiste en nessusd, el daemon Nessus, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en consola o gráfico) que muestra el avance y reporte de los escaneos. Desde consola nessus puede ser programado para hacer escaneos programados con cron.

    En operación normal, nessus comienza escaneando los puertos con nmap o con su propio escaneador de puertos para buscar puertos abiertos y después intentar varios exploits para atacarlo. Las pruebas de vulnerabilidad, disponibles como una larga lista de plugins, son escritos en NASL (Nessus Attack Scripting Language, Lenguaje de Scripting de Ataque Nessus por sus siglas en inglés), un lenguaje scripting optimizado para interacciones personalizadas en redes.

    Opcionalmente, los resultados del escaneo pueden ser exportados en reportes en varios formatos, como texto plano, XML, HTML, y LaTeX. Los resultados también pueden ser guardados en una base de conocimiento para referencia en futuros escaneos de vulnerabilidades.

    Algunas de las pruebas de vulnerabilidades de Nessus pueden causar que los servicios o sistemas operativos se corrompan y caigan. El usuario puede evitar esto desactivando "unsafe test" (pruebas no seguras) antes de escanear.

    Nessus dispone de cerca de 30000 plugins para detectar vulnerabilidades es decir que puede detectar cerca de 30000 vulnerabilidades en nuestro sistema. Para poder acceder a todos estos plugins hace falta registrarse, existiendo la posiblidad de realizar un registro sin coste alguno solo para uso domestico "Homefeed" o para uso profesional "ProfesionalFeed", cuya licencia cuesta alrededor de los 1200$.



    Nessus está disponible para diversas plataformas: Linux, MAC OS X, FREEBSD y Windows.

    Instalación

    Para instalarlo en nuestro Ubuntu solo tendremos que introducir en la consola la siguiente instrucción:

    $ sudo apt-get install nessusd nessus nessus-plugins libnessus2 libnasl2

    Esto nos instalara la versión 2 de nessus que es la existente en los repositorios. Si queremos la versión mas reciente de Nessus - la 4 - la podemos descargar desde aquí.

    Configuración

    Ya tenemos instalado nuestro Nessus, ahora tocar configurarlo. Lo primero que debemos hacer es crear usuarios en el servidor Nessus para que puedan efectuar los test de seguridad.
    Para ello tecleamos desde consola:

    $ sudo nessus-adduser

    Acto seguido nos pedira una serie de información que debemos completar:

    • Login: Ingresa el nombre del usuario
    • Authentication: Presiona ENTER (selección de 'pass' como método de autenticación)
    • Login password: Ingresa la contraseña del usuario
    • Login password (again): Ingresa nuevamente la contraseña.
    • User rules: Por el momento lo puedes dejar en blanco. Presiona simplemente CTRL+D
    • Is that ok?: Confirma la creación del usuario con la tecla “y” y ENTER
    Ejemplo:
    axlinux@ubuntu:~$ sudo nessus-adduser
    Using /var/tmp as a temporary file holder
    Add a new nessusd user
    ---------------------
    Login : axlinux
    Authentication (pass/cert) [pass] :
    Login password :
    Login password (again) :

    User rules
    ----------
    nessusd has a rules system which allows you to restrict the hosts
    that john has the right to test. For instance, you may want
    him to be able to scan his own host only.
    Please see the nessus-adduser(8) man page for the rules syntax
    Enter the rules for this user, and hit ctrl-D once you are done :
    (the user can have an empty rules set)
    Login : axlinux
    Password : ***********
    DN :
    Rules :
    Is that ok ? (y/n) [y] y
    User added.

    Se puede personalizar la configuración del servidor, la configuración por defecto es completa y válida, entre otras cosas escanea desde el puerto 0 al 15000. El fichero de configuración lo encontramos en /etc/nessus/nessusd.conf

    Si pasas por un Proxy, crea el archivo /etc/nessus/nessus-fetch.rc y pon dentro la dirección del Proxy y los eventuales logins y contraseñas:
    proxy=192.168.0.1
    proxy_port=3128
    proxy_username=renaud
    proxy_password=s3cr3t
    Nessus posee una gestión de permisos para describir de manera precisa lo que un usuario puede hacer. Por ejemplo, podemos configurar Nessus para permitir a un usuario que únicamente pueda escanear su máquina. Para mayor información ver la documentación de Nessus.


    Es indispensable tener actualizada la lista de plugins para que Nessus pueda detectar las vulnerabilidades recientes, para ello ejecutaremos desde consola:

    $ sudo nessus-update-plugins

    Iniciar el servidor Nessus

    Para iniciar el servidor Nessus escribiremos desde consola el siguiente comando:

    $ sudo /etc/init.d/nessusd start

    Seguramente te muestre algún mensaje de advertencia acerca de archivos .inc que te faltan, tranquilamente puedes hacer caso omiso de dichos mensajes.

    Conexión al servidor Nessus

    Para ejecutar el cliente Nessus debemos escribir en la consola:

    $ nessus

    También lo podremos ejecutar desde el menú de Aplicaciones > Internet > Nessus.


    Nos aparecerá el front-end de Nessus. A continuación en la pestaña Nessud host debemos introducir la dirección del servidor Nessus, así como el login y la contraseña, luego haz clic en el botón “Log in”.


    Como el certificado del servidor Nessus no ha sido firmado por una autoridad de certificación, selecciona la primera opción:


    Luego aparecerá el certificado: hacemos clic en “Yes” para aceptarlo

    Uso del cliente Nessus

    De manera predeterminada, los plugins que pueden hacer que se cuelguen las máquinas que serán examinadas son desactivados. Nessus te advertirá de eso mediante una pequeña ventana popup

    Inicialmente puedes dejar las opciones por defecto.
    • La pestaña Plugin te permite seleccionar qué test efectuar
    • La pestaña Credentials te permite crear eventualmente logias y contraseñas para acceder a las maquinas que serán examinadas.
    • Scan options te permite seleccionar los puertos que serán examinados y la manera de detectar un puerto abierto.
    • Target permite seleccionar qué es lo que será examinado. Puedes ingresar la dirección IP o el nombre de la máquina que será examinada.
    Introducimos la dirección IP de la máquina que será examinada en la pestaña Target y hacemos clic en “Start the scan” en la parte inferior de la ventana.


    Esperamos a que el analisis se finalice:



    Y finalmente analizamos los resultados del escaneo, el cual lo puedes hacer por: máquina, sub-red, puerto, gravedad, etc.)



    Como escanear nuestra red con Nmap

    El otro día publiqué un artículo sobre Ntop, herramienta con la cual podíamos hacer un análisis del tráfico de nuestra red. En esta ocasión vamos a realizar otro tipo de análisis a nuestra red con Nmap.


    Nmap, según la wikipedia, es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática.

    Es un software multiplataforma pudiendo ser ejecutada tanto en Linux, Unix(Solaris, Mac OS X, BSD) o Windows.

    La salida de Nmap es un listado de objetivos analizados, con información adicional para cada uno dependiente de las opciones utilizadas. La información primordial es la “tabla de puertos interesantes”. Dicha tabla lista el número de puerto y protocolo, el nombre más común del servicio, y su estado. El estado puede ser open (abierto), filtered (filtrado), closed (cerrado), o unfiltered (no filtrado). Abierto significa que la aplicación en la máquina destino se encuentra esperando conexiones o paquetes en ese puerto. Filtrado indica que un cortafuegos, filtro, u otro obstáculo en la red está bloqueando el acceso a ese puerto, por lo que Nmap no puede saber si se encuentra abierto o cerrado. Los puertos cerrados no tienen ninguna aplicación escuchando en los mismos, aunque podrían abrirse en cualquier momento. Los clasificados como no filtrados son aquellos que responden a los sondeos de Nmap, pero para los que que Nmap no puede determinar si se encuentran abiertos o cerrados. Nmap informa de las combinaciones de estado open|filtered y closed|filtered cuando no puede determinar en cual de los dos estados está un puerto. La tabla de puertos también puede incluir detalles de la versión de la aplicación cuando se ha solicitado detección de versiones. Nmap ofrece información de los protocolos IP soportados, en vez de puertos abiertos, cuando se solicita un análisis de protocolo IP con la opción (-sO).

    Además de la tabla de puertos interesantes, Nmap puede dar información adicional sobre los objetivos, incluyendo el nombre de DNS según la resolución inversa de la IP, un listado de sistemas operativos posibles, los tipos de dispositivo, y direcciones MAC.

    Nmap proporciona también características avanzadas como la detección remota del sistema operativo por medio de huellas TCP/IP , escaneo tipo stealth (oculto), retraso dinámico y cálculos de retransmisión, escaneo paralelo, detección de servidores inactivos por medio de pings paralelos, escaneo con señuelos, detección de filtrado de puertos, escaneo por fragmentación y especificación flexible de destino y puerto. Se han hecho grandes esfuerzos encaminados a proporcionar un rendimiento decente para usuarios normales (no root). Por desgracia, muchos de los interfaces críticos del kernel (tales como los raw sockets) requieren privilegios de root. Debería ejecutarse nmap como root siempre que sea posible.


    Como instalar Nmap

    Como Nmap esta disponible en los repositorios oficiales de Ubuntu solo tenemos que teclear desde terminal:

    $ sudo apt-get install nmap

    Para el resto de distribuciones al final del post hay un enlace para descargar desde la página web oficial, así como para aquellos que quieran instalar la última versión o para otras plataformas.

    Uso de nmap

    Se recomienda usar nmap con sudo, tal como ya he mencionado.

    $ sudo nmap [Tipo de Scan] [Opciones] victima(s) o red_victima

    Opciones de Nmap

    -h Muestar la ayuda.

    -sP ping "scan". Este es utilizado solo para saber si determinado(s) host(s) están en ese momento vivos o conectados, normalmente esto lo realiza nmap enviado paquetes a el puerto 80 de un host pero si este tiene un filtrado de ese puerto podrás ser detectado de todas formas.

    -sU Es un Scan de Puertos abiertos con protocolo UDP, solo root puede ejecutarlo.

    -sS Ping oculto, entrega solo la respuesta final para dejar menos registros.

    -b ftp "bounce attack" utilizado para ver si se puede utilizar un host para pasar una conexión ftp a través de el y no hacer el ftp a otro host desde tu maquina directamente.

    -f Utiliza pequeños paquetes fragmentados para el SYN , Xmas , FIN o barrido nulo.

    -P0 No hace "ping" al host en cuestión , necesario para el scan o "barrido" a sistemas de detección de ataques sensibles.

    -PT Utiliza el Ping de tcp para determinar si un host esta conectado para el caso de -sT y -sP esta opción aunque no es suministrada va implícita en el método.

    -PT21 Utiliza el Ping tcp para hacer prueba de conexión a el puerto 21 o a cualquier otro especificado después del -PT ejm: -PT110 .

    -PI Utiliza paquetes icmp para determinar que hosts están conectados y es especial si deseas hacer un scan a través de un firewall.

    -PB Hace la misma función que el barrido (scan) TCP y ICMP, se le puede especificar un puerto destino despues de la "B".

    -PS Utiliza el TCP SYN sweep en lugar de el valor por defecto que es el ack sweep utilizado en el Ping TCP.

    -O Utiliza el TCP/IP "fingerprinting" para determinar que Sistema operativo esta corriendo un host remoto.

    -p o puertos: ejm: '-p 23' solo intenta hacer conexión con el(los) host(s) en el puerto especificado para extraer de allí la información necesaria para la operación de scan. Otros
    ejemplos '-p 20-100,31330-' hace un barrido entre los puertos 20-30 y entre 31330-65535. por defecto el barrido es entre los puertos 1 y el 1024 mas los que parezcan en el /etc/services.

    -F Barrido Rápido a "Fast Scan" solo examina los puertos que están en el /etc/services.

    -I Toma información de quien es el dueño del proceso que se esta ejecutando pero solo se puede ejecutar con el -sT por lo cual deja una traza enorme en el log de la víctima por ello debe evitar utilizar esta opción.

    -n no hace conversiones DNS para hacer el -sP mas rapido.

    -R Intenta Convertir utilizando DNS (o sea del ip te muestra el hostname ejm: le das 127.0.0.1 y te muestra que es localhost.localdomain).

    -o guarda el mismo resultado mostrado por pantalla en un archivo en formato entendible para los humanos.

    -m lo mismo que lo anterior pero la salida es en un formato de maquina.

    -i Lee las IPs de las víctimas desde un archivo.

    -g Indica que puerto local se utilizara para enviar los paquetes para el scan.

    -S Si quieres especificar una IP para que sea la fuente del scan, ideal para hacer "Scan Spoofing" o encubrir tu scan.

    -v Verbose. Muestra mas Información.

    -V Imprime la versión de nmap y sale.

    -e . Enviar los paquetes a través de esta interface en tu host puede ser eth0,ppp0,ppp1 etc.

    Front-ends para Nmap

    Nmap se puede ejecutar desde consola, pero también disponemos de varios front-end para utilizar Nmap en entornos gráficos todos ellos disponibles en repositorios para las distribuciones Ubuntu.

    Umit: UMIT (antes llamado NmapFE++), un nuevo front end para nmap escrito en Phyton y que usa las GTK.

    El interfaz del programa es cómodo y muy intuitivo. Cuenta con un ‘wizard’ con dos niveles (novatos o usuarios experimentados) que te permite construir el comando que necesitas sin tener que recordar las decenas de opciones que posee nmap, permite lanzar comandos previamente definidos y comparar los resultados entre distintas sesiones y disponemos tanto de la salida original de la herramienta (pero con ’sintaxis iluminada’ para una mayor comprensión) como de salidas filtradas y decoradas con iconos para que resulten más intuitivas.

    UMIT, el nuevo Front End para nmap

    NmapSi4: NmapSi4 es una Qt-based Gui completo que permite ejecutar todas las opciones de Nmap


    Knmap: Knmap es un front-end de Nmap para Kde.


    En resumen

    Nmap es una potente herramienta de seguridad, que nos permitirá saber lo que tenemos en nuestra red, realizando un mapa de la misma identificando los diferentes componentes de la misma permitiendo identificar incluso a intrusos en la misma.

    Pagina oficial de Nmap: http://nmap.org/
    Descargas de Nmap: http://nmap.org/download.html
    Manual en español Nmap: http://nmap.org/man/es/

    Entradas populares