Blog Logo

14 Nov 2024 ~ 7 min read

Optimizando mi maquina Linux para el pentesting 🐧


Introducción

¿Quieres pasar de esto

image.webp

a esto

image.webp

con solo un clic? Pues quédate en este blog que te lo explico todo.

Desde hace unas semanas, me estoy adentrando en un nuevo hobby, algo que se escapa de mis conocimientos. Y no, no me refiero a aprender a leer. Me refiero a la CIBERSEGURIDAD.

Así es, la obsesión nueva que tengo este mes, y que pronto dejaré de lado por otra cosa mientras la guardo en mi Notion de tareas pendientes, es la CIBERSEGURIDAD. Y bueno, la verdad es que llevo bastante poco aprendido ya que me embarco en varios proyectos a la vez para autosabotearme a mí mismo. PERO BUENO, ese no es el tema que vamos a tratar hoy.

Para sorpresa de nadie, los temas de ciberseguridad, pentesting, hacking ético, etc., se llevan mucho mejor cuando los tratas desde una distro de Linux. Es un entorno mucho más preparado para estas cosas y hay cientos y miles de herramientas que necesitan correr en un Unix. Y bueno, todos sabemos que WSL de Windows es una REBERENDA *****

El caso es que, adentrándome en este mundillo, conocí a un creador de contenido que divulga sobre estos temas. Su nombre es S4vitar, y puede que ya lo conozcáis porque el tio lo hace muy bien y está en todos los sitios. Total, pues vi que tenía, entre otros muchos cursos, uno para optimizar tu sistema, en este caso Parrot OS, y dejarlo con una interfaz limpia y rápida para manejarse por consola tal y como el mismísimo Linus Torvalds querría que lo hiciésemos.

El objetivo era ese: tener un sistema rápido y útil para manejarse en estos entornos. Entonces hice lo que mejor se me da: PROCRASTINAR. En vez de coger y seguir con el resto de cursos y aprender sobre el tema, me centré en uno de personalización, que en sí no tiene nada que ver con la ciberseguridad, claro.

Entonces, después de vermelo todo y aplicarlo sobre mi máquina virtual me estaba preguntando si podría automatizar toda esa personalización de alguna manera. Es decir, la personalización era increíble, muy útil y bastante bonita a mi parecer, pero me había llevado mucho tiempo. Además, estaba usando una máquina virtual, ¿qué pasaba si borraba mi máquina? ¿O si me creaba una máquina nueva en otro PC? ¿Tenía que ir importando la snapshot? Bueno, llegué a la conclusión de que no era nada práctico. Esa personalización me gustaba demasiado para dejarla perder por el vacío de mi ordenador… Tenía que hacer algo, tenía que perder mucho más tiempo del que había invertido en personalizarlo.

Mi solución

Y por eso, amigos, y porque quizá estoy bobo, he programado un script para que, ejecutando un solo archivo, ¡PUM!, se instale todo de nuevo.

Pero he querido hacerlo bien, de principio a fin, porque mi abuelo siempre me decia: “Yo a tu edad ya estaba casado, con hijos y trabajando” la verdad es que empezó todo muy joven, pero no no, lo que me decia realmente era: “Si haces algo, hazlo bien” ES POR ESO que he intentado que todo el código esté claro.

Bueno, no es que haya hecho arquitectura hexagonal, que es un script de bash, pero he querido separarlo por funcionalidades, loguear todos los pasos que hace y, bueno, lo más importante de todo, mantenerlo actualizado.

Todas las dependencias que descarga lo hace automáticamente en la última versión que exista, de manera que este script te sirve para cualquier momento en el que estés viendo el video. Además, como soy mucho de desechar mis máquinas virtuales, siempre voy a mantenerlo actualizado en caso de que cambie algo.

¿Cómo funciona?

Y bueno, quizá te preguntes, ¿cómo funciona el código? ¡Sencillo! Tenemos un fichero setup.sh que es donde ocurre toda la magia. Aquí se hacen las importaciones a los siguientes ficheros de instalación y configuración de dependencias. Mientras, se registra el progreso en una barra para que el usuario (o sea, tú) pueda ver por qué paso va.

El contenido de estos ficheros es simple: en cada uno se instalan dependencias y se configuran. Las configuraciones las tengo en las demás carpetas del proyecto que no son la de code, y se copia todo lo necesario para que el entorno quede personalizado.

¿Y sabes qué es lo mejor? Que este script es compatible con cualquier distribución de Linux, ya sea Ubuntu, Debian, Fedora, etc. Así que no importa qué sistema uses, podrás disfrutar de esta personalización sin problemas.

¿Cómo instalarlo en tu máquina Linux?

Os recuerdo que esto es un proyecto que he hecho yo de codigo abierto, igual que el código que hice para al hacer un commit de github se mejorarse usando el LLM gratuito de google (gemini). Os dejo el post por aqui!

Bueno, lo primero que debes hacer es clonar el repositorio donde está todo el código:

git clone https://github.com/edunavajas/linux-config-env

Una vez clonado, es importante que le des permisos de ejecución al archivo setup.sh:

chmod +x setup.sh

Y por último, ejecutarlo como administrador:

sudo ./setup.sh

A continuación, verás la barra de progreso y, a mitad del proceso, te aparecerá un selector de temas de rofi. Seleccionas el que quieras y pulsas Alt + A para continuar.

Cuando termine el proceso, verás una pantalla como esta donde te avisa si quieres cerrar sesión para que se apliquen los cambios. Escribes una Y indicando que sí y, al iniciar sesión de nuevo, muy importante pulsar sobre el circulito y elegir BSPWM como sistema de inicio. Pones la contraseña y ¡voilà! Ya tienes tu sistema personalizado y optimizado para el hacking.

¿Qué funcionalidades tiene este entorno personalizado?

Como veis no es muy complicado, pero ahora va la pregunta del millon, para que sirve esto? que funcionalidades tiene? Bueno a parte del cambio visual tan notorio, tiene un montón de atajos de teclados que nos ayudarán a la productividad, os dejo aqui la chuletilla que podeis consultar en cualquier momento:


Personaliza a tu gusto

Y bueno, me queda deciros que estas son personalizaciones que hay a mi gusto. Aquí cada uno puede clonarse el repositorio de GitHub y cambiar los atajos de teclado como quiera.

Tenéis muchos atajos modificables en el fichero sxhkdrc. Toda la configuración de Polybar en sus carpetas, los comandos personalizados en el fichero .zshrc, e incluso podéis cambiar la URL de la imagen de wallpaper que tenéis en el fichero install_wallpaper.sh.

Os recomiendo que os lo personalicéis a vuestra manera, ya que esto se hace una vez y os sirve para siempre. Y como siempre os digo, es un proyecto de código abierto, igual que el que hice para que al commitear en GitHub un LLM os mejore el texto del commit para agilizar vuestro trabajo. Os dejo el video por aquí y os recomiendo, igual que en este proyecto, que si tenéis cualquier sugerencia de cambio, la hagáis por una Pull Request.

¿Por qué deberías usar este entorno?

Quizá te estés preguntando, ¿por qué molestarte en instalar todo esto? Bueno, déjame decirte que trabajar en un entorno optimizado no solo mejora tu productividad, sino que también hace que la experiencia sea mucho más agradable. Cuando tienes todo configurado a tu gusto y al alcance de unos pocos atajos de teclado, puedes concentrarte en lo que realmente importa: aprender y practicar ciberseguridad.

Además, al automatizar todo el proceso, te aseguras de que si por cualquier motivo necesitas reinstalar o cambiar de máquina, puedes tener tu entorno listo en cuestión de minutos. Ya no tendrás que perder tiempo configurando todo de nuevo.

Recursos adicionales


Espero que apreciéis mucho el trabajo, ya que me ha costado más de lo que pensaba, y le deis amor al repo si os gustan este tipo de contenido.

Yo, con esto, me despido. ¡Nos vemos en el próximo blog! ❤️


Edu Navajas Profile

Hola! soy Edu. Soy un desarrollador de software con más de 5 años de experiencia Puedes seguirme en Linkedin y ver mi trabajo en GitHub.

← Volver al blog