Blog sobre seguridad informática, privacidad, anonimato, hacking ético, programación y sistemas operativos en general.

Mostrando las entradas con la etiqueta GNU/linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta GNU/linux. Mostrar todas las entradas

lunes, 15 de enero de 2018

SecHackLabs: Linux Hardening - Instalando tu distribución Linux de manera segura.


El corazón de nuestro sistema GNU/Linux son el Kernel y el sistema operativo. Combinados, forman el la base de su sistema, en el cual todas las aplicaciones se ejecutarán. Hablando comparativamente el sistema GNU y el kernel Linux son razonablemente seguros. Un gran número de carácteristicas de seguridad están integradas en el kernel, herramientas relacionadas a la seguridad y otras carácteristicas vienen con la mayoría de distribuciones GNU/Linux o están disponibles en la red de manera open-source. Adicionalmente GNU/Linux ofrece un control excepcional sobre quien, cómo y cuales recursos y aplicaciones pueden ser accedidas por los usuarios. Entonces ¿donde están los riesgos?

Un viejo refrán dice "El diablo está en los detalles". La seguridad de su sistema depende de una amplia variedad de elementos de configuración tanto a nivel del sistema operativo como a nivel de aplicación. Además, el sistema operativo Linux y el kernel son complejos y no siempre es fácil de configurar. De hecho, los sistemas Linux son casi infinitamente configurables, y cambios de configuración sutiles pueden tener importantes implicaciones de seguridad. Por lo tanto, muchas expocisiones (de estar expuesto a ataques) de seguridad y vulnerabilidades no siempre son obvias de inmediato, y la falta de comprensión sobre el impacto global de los cambios en los elementos de configuración puede conducir a expocisiones inadvertidas.

Además la seguridad en sistemas GNU/Linux no es estática, una vez asegurado tu sistema, este no está perpetuamente protegido, a medida que usas tu sistema, la seguridad se va debilitando. Esto puede suceder debido a cambios operacionales o funcionales, así cómo el descubrimiento de nuevas vulnerabilidades y exploits en aplicaciones y paquetes.  Asegurar su sistema es algo continuo y viviente, muchos de los cambios que se aplicarán a lo largo de esta serie de publicaciones debes hacerce más de una vez (por ejemplo, luego de un cambio a nivel operacional, una reinstalación de componentes, etc) o ya sea de manera rutinaria para mantener el nivel de seguridad en su sistema.

Por defecto, la mayoría de distribuciones GNU/Linux vienen con un gran número de paquetes instalados, aplicaciones y configuraciones de manera predeterminada para ti. Esto depende del creador de la distribución y de la finalidad de la misma.

· Instalando tu distribución Linux de manera segura.


Esta serie de publicaciones no pretende centrarse en una distribución en especifico y las recomendaciones dadas a lo largo de la misma son apicables a la mayoría de sistemas GNU/Linux. Aquí no explicaremos el proceso de instalación de ninguna distribución es especifico y se dará consejos generalizados para la instalación de tu distribución, sea cual sea tu elección. Este proceso es una de las claves del proceso de hardening, la clave de la seguridad de la tecnología de la información (IT) es la minimización de sus riesgos. Las instalaciones por defecto de la mayoría de distribuciones hacen lo contrario.

Tips Generales.

* Habilite SHA1, shadow o cualquier otro método o algoritmo que ayude a mantener sus contraseñas relativamente más seguras.

* Cuando se te pida la contraseña del usuario root introduzca una contraseña robusta, el usuario root tiene permisos para hacer todo en el sistema. Aquí dejo un link sobre cómo crear contraseñas seguras.

* Cree un usuario diferente de root con los permisos adecuados y estrictamente necesarios, de este modo se evita estar conectado siempre cómo root y además de que todo lo que se ejecute se haga con privilegios root.

* Si durante la instalación es preguntado, instale un firewall de los propuestos allí, si te proponen opciones de control para el firewall, elija aquella que permita el mínimo número de conexiones. Solamente habilite conexiones explicitas cuando esté completamente seguro de que las necesita. Recuerde que generalmente cualquier firewall instalado y configurado durante la instalación, no es adecuado para propositos de producción.
Instala solo lo que necesites.

Cómo hemos dicho, el minimalismo es importante. Si su distribución te da la posibilidad de elegir una mínima o personalizada cantidad de paquetes durante la instalación, entonces elija esa. De hecho, recomendamos que solo instale el sistema base y deje todo lo demás sin instalar.
Nosotros no te podemos dar un número detallado de paquetes que no deben ser instalados, pero muchos de ellos basta con el uso del sentido común para saber que no se necesitan. ¿Realmente necesita usted tener metasploit o aircrack-ng en un servidor web con Apache?, con ese tipo de preguntas fácilmente puedes identificar que tipos de los paquetes que vienen preinstalados son candidatos para remover.

Varias de las áreas que recomendamos revisar para remover paquetes innecesarios son:

· Juegos.
· Servidores de red.
· Demonios y servicios (Esto incluye scripts de autoarranque).
· Bases de datos.
· Herramientas Web.
· Editores.
· Paquetes relacionados con multimedia (Reproductores, quemadores de CD, etc)
· Herramientas de desarrollo y compiladores.
· Herramientas de impresión.
· Herramientas de Office.
· Herramientas de manejo de documentos.
· Entornos de escritorio y todo lo relacionado con X-Windows.

Una de las recomendaciones más importantes durante la instalación, es el elegir no instalar paquetes relacionados con X-Windows o entornos de escritorio. Además, sistemas Linux de producción (Servidores {web, email, FTP, firewall, etc}) no necesitan X-Windows para realizar sus funciones. X-Windows es una inmensa cantidad de paquetes que contiene numerosos componentes y una larga historia de vulnerabilidades que lo convierten en un componente potencialmente peligroso. Adicionalmente, Linux al contrario de Windows, no necesita entornos de escritorio o GUI's (Graphical User Interface) para funcionar, nada de lo que hagas desde un entorno de escritorio no se puede hacer desde la línea de comandos.

Precaución: No instale su distribución mientras está conectado a internet o conectado a una red que está conectada a internet.

Puede parecer una buena idea estar conectado a internet cuando usted va a obtener actualizaciones, parches de seguridad o registrar su sistema. ¿Pero en realidad lo es? Probablemete tu CD/USB/DVD de instalación esté descatualizado, un número de vulnerabilidades y fallos desde entonces han sido descubiertos. Esto significa que su sistema está potencialmente expuesto a un gran número de ataques, entonces, hasta que usted descargue todos los parches y actualizaciones, su sistema es vulnerable. Mientras usted está ocupado esperando que su sistema descargue los requeridos parches y actualizaciones y los aplique, un atacante tiene el potencial de identificar su sistema desprotegido y vulnerar este usando una vulnerabilidad que aún no ha sido parchada.

Para reducir los riesgos de conectar un sistema desprotegido a internet, te recomendamos estar offline o desconectado de internet hasta que usted haya parchado y aplicado las correspondientes actualizaciones y parches de seguridad. Para realizar esto, recomendamos descargar primero todas las actualizaciones y parches en otro sistema primero y comparar las sumas MD5 o MD5 checksums de los paquetes descargados contra los publicados por el creador del sistema en su sitio oficial, además de validar su clave GPG.

Una recomendación muy práctica de nuestra parte es que configures una máquina central de "Actualizaciones y Parches" y descargues y verifiques todos los paquetes en ella antes de instalarlos en su sistema de producción. También puede utilizar dicha máquina para probar nuevas versiones o actualizaciones antes de hacerlo con sus sistemas de producción. Para una nueva instalación, usted puede empaquetar y grabar las actualizaciones en un CD y cargarlas directamente en el sistema que va a ser actualizado o parchado.

Esperamos que este post haya sido de su utilidad, cualquier duda o sugerencia pueden dejarla en los comentarios.

Síguenos en Facebook, Twitter, unete a nuestra charla en Riot, únete a IRC o únete a Telegram.

miércoles, 1 de noviembre de 2017

¿Por qué ArchLinux?




Hace varios meses hemos estado recibiendo comentarios sobre el por qué de nuestra inclinación a la distribución ArchLinux al momento de hacer publicaciones, vídeos y demás. En un post anterior sobre hardening encontramos un comentario el cual nos decía lo siguiente:

" Buenos días, las pruebas se harán en Archlinux, necesito entender:

¿Porqué Archlinux?
¿La instalación es más compleja que en otras distros, como Debian o Ubuntu?
¿Se asemeja Archlinux a Kalilinux?

Gracias de antemano. "

 A lo largo de este post vamos a responder esas preguntas, pero sobre todo nos extenderemos en la explicación de "Por qué ArchLinux".

¿Por qué ArchLinux?

1. Porque es Rolling Release. Es decir, Arch Linux se actualiza continuamente. No es necesario esperar a que se libere una versión más actualizada para disponer del último software, características de seguridad, etc… De hecho, en nuestra opinión, esta actualización continua es más segura que actualizar, por ejemplo, entre versiones de Ubuntu, donde más de uno se ha encontrado con problemas.

2. Porque es extremadamente ligero. Arch Linux mantiene el principio KISS (Keep It Simple, Stupid), es decir, mantenlo sencillo, estúpido. El principio KISS establece que la mayoría de sistemas funcionan mejor si se mantienen simples evitando así cualquier complejidad innecesaria. De ahí que en Arch Linux tengamos activados solamente los servicios que vamos a utilizar, o no tengamos cantidades ingentes de librerías instaladas que no vamos a utilizar nunca, por ejemplo.

3. Porque es extremadamente personalizable. La instalación de Arch Linux no incluye entorno gráfico, y cuando lo instalas viene con el sistema base, dejándote así elegir por ti mismo instalar las aplicaciones que prefieras.

4. Porque aprenderás muchísimo sobre Linux. Para poder instalar, configurar y mantener Arch Linux, tendrás que “meter la mano” en bastantes archivos de configuración y tirar bastante de la consola. ¡Aprenderás casi sin darte cuenta!

5. Porque dispone de la mejor documentación. La Wiki de Arch Linux es completísima y fácil de seguir. Si tienes alguna duda sobre cómo configurar algo seguro que lo encuentras en la Wiki. Además la Wiki es consultada no solo por usuarios de ArchLinux, es tan amplia la documentación que sirve para todas las distribuciones GNU/Linux, ArchLinux posee la Wiki más completa de todo GNU/Linux.

6. Porque dispone de una comunidad siempre dispuesta a ayudar. Generalmente las comunidades GNU/Linux tienen un problema: Ofenden a los novatos por hacer pregunas "básicas" sin antes documentarse, además de odiar Windows. En ArchLinux no sucede eso, es una comunidad muy unida y dispuesta a resolver cualquier problema, con algunas excepciones, claro.

7. Porque solo tiene cinco repositorios y AUR. Con sus cinco repositorios oficiales (Community, Core, Extra, Multilib, Testing[Opcional]) y AUR, en ArchLinux tienes disponibles cuantos paquetes necesites. No es necesario agregar algún otro repositorio para instalar paquetes que no están en los repositorios oficiales.

8. Porque su gestor de paquetes es pacman. Pacman es tan genial como apt, salvo porque es más sencillo de usar, los comando son más cortas y es muchísimo más rápido.

9. Porque es muy estable. Seguro que Debian es muy estable, pero con todas las ventajas que he mencionado antes, ArchLinux está al 95% del nivel de estabilidad si tomamos a Debian cómo base, ¿Qué más se puede pedir?

¿La instalación es más compleja que en otras distros, como Debian o Ubuntu?

Sí, ya que no dispone de un instalador gráfico oficial pero no es algo del otro mundo, en este post explicamos detalladamente cómo hacerlo.

¿Se asemeja Archlinux a Kali Linux?

Cómo mencionamos antes, ArchLinux se puede moldear a tu antojo y hacerla similar a cualquier otra distribución, sin embargo si deseas una distribución basada en ArchLinux y enfocada al pentesting de inmediato, te recomendamos BlackArch, si deseas ser más profesional y convertir ArchLinux en una distribución de Pentesting, lee este post.

https://blackarch.org/images/slider/ba-slider2.pnghttps://blackarch.org/images/slider/ba-slider.png


El mundo GNU/Linux tiene muchas opciones de todos los colores y sabores, nosotros recomendamos ArchLinux.

Esperamos que esta publicación haya sido de utilidad, cualquier inquietud o sugerencia dejarla en los comentarios en bien, en los medios que indicamos a continuación.
Síguenos en Facebook, Twitter, unete a nuestra charla en Riot (Para charlar con nosotros online) o únete a Telegram.

También puedes dejar su donación a nuestra cuenta Paypal.



domingo, 18 de junio de 2017

Como recuperar contraseña root en GNU/Linux (Cualquier distribución) y como configurar tu sistema para evitarlo.


Buenos días, queridos lectores. El día de hoy les queremos mostrar la manera de recuperar una contraseña root de un sistema GNU/Linux, la cual muchas veces hemos olvidado o en el momento de cambiarla, debido a una codificación diferente del teclado no ha querido como queríamos, les traemos la solución. Para realizar este cambio no necesitamos discos o software adicional, absolutamente nada y es muy pero muy sencillo, solo deben seguir los pasos que explicaré a continuación.

Importante: Para que este modo de recuperación de contraseña funcione es necesario que el GRUB no tenga contraseña (Más adelante explicaré como añadirle protección a nuestro GRUB).

1) Lo primero que debemos hacer es reiniciar nuestra PC y esperar a que cargue el GRUB, donde nos aparece la tipica pantall de acuerdo a nuestra distribución.


2) Presionamos la tecla 'e' para entrar en modo edición de las entradas del GRUB, nos debe aparecer algo similar a esto:


3) Buscamos la línea que inicia con "linux   /boot/vmlinuz-linux-* root=UUID=*** rw quiet" y al final añadimos "init=/bin/bash" como vemos a continuación.



4) Presionamos F10 para volver a nuestras opciones del grub y presioamos <Enter> para que nuestro sistema arranque, una vez inicia obtendremos una shell con privilegios root para realizar el cambio de contraseña que queramos, tanto de root como cualquier usuario.


Y como observamos tenemos todos los privilegios root y podemos realizar los cambios que deseemos.


Ahora que ya hemos cambiado nuestra contraseña root, reiniciamos nuestra PC, dejamos que inicie normalme y ya podemos ingresar con la contraseña que acabamos de asignar, así de sencillo es recuperarla.

Talvez muchas personas están pensando que la seguridad de GNU/Linux puede ser burlada de una manera tan fácil, esto no es un error de diseño o una falla de seguridad, esto es un error de configuración en el GRUB, un error nuestro. A continuación mostraremos como proteger nuestro sistema para evitar este cambio.

Como proteger nuestro sistema para evitar que nos cambien la contraseña con el procedimiento anterior.
Para los hackers, programadores, especialistas en seguridad informática y usuarios preocupados por su privacidad y seguridad, esto puede significar un riesgo inminente, pero como dije, es un error de configuración de nuestro GRUB y podemos corregirlo para que nadie pueda cambiar nuestra contraseña root de esta manera (Este cambio también puede realizarse con discos externos en un entorno chroot en discos que no estén cifrados). Para configurar de manera correcta nuestro GRUB, debemos realizar lo siguiente:

1) Creamos una contraseña que pueda ser reconocida por el GRUB, usando el comando #grub-mkpasswd-pbkdf2, escribimos la contraseña que deseemos y la confirmamos, si todo sale bien saldrá algo similar a lo que se muestra en la imagen:


2) Abrimos el archivo /etc/grub.d/40_custom con nuestro editor de texto favorito y añadimos las siguientes líneas en el final:

set superusers='user'
password_pbkdf2 'user' 'password'

Importante: El '$user' puede ser cualquiera, a tu gusto pero debes colocar el mismo user en los dos campos requeridos. En el campo password colocamos la contraseña generada en el paso anterior, esta comprende todo lo que aparece desde grub.pbkdf2.sha512.10000.* hasta el final. Las comillas no son necesarias.

3) Una vez que tengamos todo esto hecho, generamos un archivo de configuración de nuestro GRUB con los nuevos parámetros, utilizamos el comando grub-mkconfig -o /boot/grub/grub.cfg y esperamos a que finalize el proceso.

Una vez realizados estos pasos, cada vez que queramos iniciar nuestro sistema o modificar algún parametro en el GRUB al inicio, debemos proporcionar las credenciales asignadas anteriormente, solucionando de este modo el problema anterior.

Con esto damos por finalizado este post, esperamos que sea de su agrado y quedamos pendientes a comentarios. Si les gustó siguenos en Facebook, Twitter y unete a nuestra charla en Riot.