Personalización de Entorno en Kali Linux para Pentesting

Personalización de Entorno en Kali Linux para Pentesting

Resumen

Este tutorial te guiará paso a paso a través de la personalización de tu entorno en Kali Linux, utilizando herramientas como bspwm, sxhkd, polybar, Powerlevel10k, zsh, y Kitty, etc. Estas personalizaciones están diseñadas para mejorar la eficiencia y hacer más cómodas las tareas de pentesting. Créditos para s4vitar ya que es el creador del entorno y quien nos aporta mucho a la comunidad de ciberseguridad.

Dependencias Necesarias

  • Kali Linux instalado: Asegúrate de tener Kali Linux instalado en tu máquina.
  • Conexión a internet: Necesitarás acceso a Internet para descargar e instalar paquetes.
  • Archivos necesarios para la configuración: Estos archivos están en un comprimido y organizados por carpetas, cada una con sus respectivos nombres, para que se puedan guiar y no se confundan a la hora de copiarlos. Descargar

Pasos

Actualización del sistema operativo

Actualizaremos nuestro sistema operativo mediante los siguientes comandos:

sudo apt update
sudo apt upgrade

instalamos paquetes necesarios:

apt install build-essential git vim libxcb-util0-dev libxcb-ewmh-dev libxcb-randr0-dev libxcb-icccm4-dev libxcb-keysyms1-dev libxcb-xinerama0-dev libasound2-dev libxcb-xtest0-dev libxcb-shape0-dev

Luego si todo esta bien, nos colocamos como usuario sin privilegios y clonamos los siguientes repositorios en nuestra carpeta de descargas.

git clone https://github.com/baskerville/bspwm.git
git clone https://github.com/baskerville/sxhkd.git

Entramos en cada directorio y hacemos los siguientes pasos para ambos:

cd bspwm
make
sudo make install

cd sxhkd
make
sudo make install

Por si hay algún problema con el paquete libxinerama instalarlo aparte:

sudo apt install libxinerama1 libxinerama-dev

Creamos los directorios del bspwm y sxhkd dentro del directorio config:

mkdir ~/.config/{bspwm,sxhkd}

Ahora nos copiamos el archivo bspwmrc que esta dentro del directorio bspwm/examples:

cp bspwmrc ~/.config/bspwm

Hacemos lo mismo para el sxhkdrc que esta en la misma ruta:

cp sxhkdrc ~/.config/sxhkd

Instalamos y Configuramos kitty

Procedemos a instalar la kitty la cual usaremos como terminal

sudo apt install kitty

Modificando el sxhkdrc

Luego en el sxhkdrc sustituimos la terminal por la kitty usando la ruta absoluta:

which kitty
/usr/bin/kitty

Sustituimos esto en el archivo como lo mencionamos arriba y debería quedar así:

# terminal emulator
super + Return
        /usr/bin/kitty

Modificaremos a nuestro gusto el sxhkd solo agregaremos una configuración y una carpeta que crearemos dentro de ~/.config/bspwm que se llame scripts, el nombre del script sera bspwm_resize le daremos permisos de ejecución y lo llamaremos desde el sxhkdrc:

# Custom move/resize
alt + super + {Left,Down,Up,Right}
        /home/tu_usuario/.config/bspwm/scripts/bspwm_resize {west,south,north,east}

El contenido del script es el siguiente, este script nos permitirá redimensionar los tamaños de las ventanas:

#!/usr/bin/env dash

if bspc query -N -n focused.floating > /dev/null; then
        step=20
else
        step=100
fi

case "$1" in
        west) dir=right; falldir=left; x="-$step"; y=0;;
        east) dir=right; falldir=left; x="$step"; y=0;;
        north) dir=top; falldir=bottom; x=0; y="-$step";;
        south) dir=top; falldir=bottom; x=0; y="$step";;
esac

bspc node -z "$dir" "$x" "$y" || bspc node -z "$falldir" "$x" "$y"

Si nos da un problema cuando estamos como root hacemos control c cuando tire el error y luego ponemos compaudit y la ruta que nos de se la asignamos a root:

chown root:root y la ruta

Instalamos otros paquetes:

sudo apt install cmake cmake-data pkg-config python3-sphinx libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev libxcb-composite0-dev python3-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev libjsoncpp-dev libmpdclient-dev libuv1-dev libnl-genl-3-dev

Instalación de polybar:

Luego nos vamos a nuestro directorio de descargas y nos clonamos el siguiente repositorio para instalar la polybar:

git clone --recursive https://github.com/polybar/polybar](https://github.com/polybar/polybar

Entramos al directorio de la polybar y creamos un directorio llamado build, entramos al directorio y hacemos cmake:

mkdir build
cd build
cmake ..

Hacemos lo siguiente:

make -j$(nproc)

Ahora hacemos un sudo make install y queda lista la polybar:

sudo make install

Instalamos otros paquetes necesarios:

apt install meson libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libpixman-ls1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev libxcb-glx0-dev

Clonamos el siguiente repositorio para instalar picom y jugar con las transparencias:

git clone https://github.com/ibhagwan/picom.git

Entramos al directorio y escribimos los siguientes comandos:

git submodule update --init --recursive
meson --buildtype=release . build

Si nos da algún error de deprecated instalamos el siguiente paquete:

sudo apt install libpcre3 libpcre3-dev

luego ya todo tiene que estar correcto, hay un error de libev pero no afecta.

Continuamos ejecutando los siguientes comandos:

ninja -C build
sudo ninja -C build install

Instalamos rofi y bspwm:

sudo apt install rofi
sudo apt install bspwm

Probamos el entorno que todo vaya bien, hacemos un kill -9 -1 y entramos pero antes de iniciar sesión debemos seleccionar bspwm como entorno. Ya probado que todo nos funciona bien, procedemos con la instalación de la fuente.

Instalación de la fuente

Nos dirigimos a la pagina para descargar la fuente llamada (hack nerd font): Ver pagina

Nos situamos en el directorio /usr/local/share/fonts y nos ponemos como super usuario para mover el archivo descargado a ese directorio:

mv /home/su nombre de usuario/Downloads/Hack.zip .

luego hacemos unzip para descomprimir el contenido y borramos el comprimido:

unzip Hack.zip
rm Hack.zip

Hacemos que nos funcione la clipboard bidireccional agregando este comando al final del archivo bspwmrc:

vmware-user-suid-wrapper &

Configuración de la kitty

Copiaremos 2 archivos que meteremos dentro de ~/.config/kitty uno es color.ini y el otro es kitty.conf (los cuales estan en los archivos que les deje al inicio).

Nos ponemos como root y como el tiene otra kitty nos pasamos los archivos de configuración

cp /home/su usuario/.config/kitty/* .

Instalamos feh:

sudo apt install feh

Nos creamos una carpeta dentro del escritorio con nuestro nombre de usuario luego otra que se llame Fondos y ahi dentro colocamos el fondo que queremos tener ahora agregamos este comando al bspwmrc:

feh --bg-fill /home/ewor01/Desktop/ewor01/Fondos/fondo.png &

Instalamos un paquete para visualizar imágenes desde la kitty:

sudo apt install imagemagick

Para visualizar una imagen desde la kitty utilizamos el siguiente comando:

kitty +kitten icat imagen.jpg

Instalamos scub para eliminar archivos y hacer mas difícil el rescate de estos:

sudo apt install scrub

Configuración de la polybar

Ahora nos dirigimos al directorio Downloads y clonamos el siguiente repositorio:

git clone https://github.com/VaughnValle/blue-sky.git

Creamos el directorio de polybar y copiamos todo dentro del directorio situados dentro de /blue-sky/polybar:

mkdir ~/.config/polybar
cp -r * ~/.config/polybar

Ponemos este comando en el bspwmrc de la siguiente manera:

echo '~/.config/polybar/./launch.sh' >> ~/.config/bspwm/bspwmrc

Nos dirigimos dentro del directorio blue-sky/polybar/fonts y copiaremos las fuentes en /usr/share/fonts/truetype como super usuario:

sudo cp * /usr/share/fonts/truetype

Aplicamos este comando:

fc-cache -v

Configuramos la polybar y todos sus módulos. creamos un directorio llamado picom dentro de ~/.config como usuario normal:

mkdir picom

Nos pasamos el archivo picom.conf y ahora configuramos picom a nuestro gusto si queremos blur o no y luego en kitty.conf agregamos lo siguiente dependiendo la opacidad que queramos:

background_opacity 0.95

Modificando la polybar

Buscamos font-6 en current.ini de los archivos de la polybar de nuestra configuración y agregamos estas líneas para que nos salga el icono que queramos en la parte izquierda:

"font-7 = "Hack Nerd Font Mono:size=35;8.0"

Estos valores ya dependerá del gusto y icono que coloquen, pero para que funcione agregar esas líneas debajo de font-6.

Privacidad de firefox y algunos plugins

Si queremos vamos a hacer que firefox no recuerde nuestro historial mas que todo es depende las opciones de cada persona si gustan lo hacen o no. Nos dirigimos a Settings > Privacy & Security > Luego buscamos donde dice History y colocamos never remember history, reinician y listo.

Instalamos un plugin llamado darkreader en firefox para colocar modo oscuro en las paginas que queramos. Instalamos otro plugin llamado wappalyzer que nos ayudara en pentesting web a identificar las tecnologías que utilizan las webs.

Instalación de powerlevel10k

Instalamos la Powerlevel10k nos dirigimos al repositorio: ver repositorio) y buscamos las instrucciones donde dice Manual y hay un comando que se los dejo igual:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

Esto hay que hacerlo tanto como usuario normal y como root. Una vez clonada procedemos a instalarla: colocamos zsh y comenzamos a configurar a nuestro gusto.

Configurando p10k

Ahora retocamos alguna configuracion del archivo .p10k.zsh

Si queremos poner un icono diferente en la izquierda buscamos por esta linea que les dejo y colocamos el icono que queramos:

typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION=''

Hacemos la instalacion de la powerlevel10k para root:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc

Modificamos el .p10k.zsh de root después de configurar la power level y hay una opción para que no nos ponga tanto texto cuando somos root, buscamos esta linea y borramos lo que esta entre comillas simples:

typeset -g POWERLEVEL9K_CONTEXT_PREFIX=''

Modificamos esta para poner un icono y saber cuando somos root en lugar de texto:

typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='icono'

Enlace simbólico zshrc

Crearemos un enlace simbólico de la .zshrc para que sea la misma en root y usuario normal,, lo hacemos estando como root:

ln -s -f /home/su usuario/.zshrc .zshrc

Hacemos un cambio en la .zshrc para que nos cargue la del usuario normal y no de problemas,, agregamos esto:

source /home/su usuario/powerlevel10k/powerlevel10k.zsh-theme

Modificamos algunas cosas del .zshrc en la opcion history configuration: dejamos solo las primeras 3 opciones y aumentamos a 10000 los valores del histórico y agregamos estas líneas al final: setopt histignorealldups sharehistory Para que cuando mandemos una cadena vacía ejemplo:

function echo '' > ~/.zsh_history 

se borren los comandos que hayamos ejecutado antes.

Ahora quitaremos la negrita que nos aparece cuando navegamos por directorios en el lado izquierdo, lo haremos para root y usuario normal: Modificamos el .p10k.zsh y filtramos por ANCHOR_BOLD y donde pone true colocamos false. Hacemos lo mismo para el usuario root

Instalando batcat y lsd

Descargamos batcat que es como un cat pero con esteroides, desde este repo y bajamos la versión más reciente: Ver repositorio bat_0.24.0_amd64.deb

Descargamos lsd que es com un ls pero con esteroides, desde este repo y bajamos la versión más reciente: Ver repositorio lsd_1.0.0_amd64.deb

Para instalarlos solo vamos a la carpeta donde decargamos y ponemos el siguiente comando:

dpkg -i nombre_del_paquete

Instalamos locate:

sudo apt install locate

Vamos a sincronizar todos los archivos del sistema para buscar lo que queremos:

updatedb

Instalando fzf

Ahora instalamos la fzf para hacer busquedas inteligentes en el sistema, desde el siguiente repo:

Ver repositorio

Para instalar lo hacemos como root y usuario normal en el home de cada uno:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

Alias para bat y lsd

Ahora copiamos unos alias para nuestra .zshrc de bat y lsd: Ver link

Tambien copiamos este archivo para que no nos salga en negrita a la hora de listar con lsd lo colocamos casi al final de la .zshrc: Ver link

Ahora vamos a arreglar un problema que da con burpsuite al estar en bspwm, agregamos estas líneas casi al principio de nuestro archivo, pero para que nos funcione burpsuite debemos correrlo desde la terminal no desde el shortcut del sxhkdrc ya que siempre presentara el problema:

# Fix the Java Problem
export _JAVA_AWT_WM_NONREPARENTING=1

Tambien en el bspwmrc agregamos lo siguiente al final para arreglar el mismo problema:

wmname LG3D &

Creando módulos para la polybar

Creamos unos módulos para la polybar para lo cual tenemos que crear una carpeta llamada bin en ~/.config:

mkdir bin

Una vez creada aquí dentro pondremos los scripts que ocuparemos para cargar en los módulos de la polybar.

Para agregar un modulo tenemos que modificar el archivo current.ini y también el launch.sh, en el current.ini agregamos los módulos y en el launch.sh agregamos la ruta del modulo para que aparezca en la polybar.

Ejemplo de un modulo, este va casi al principio del current.ini donde esten los otros modulos:

[bar/ethernet_bar]
inherit = bar/main
width = 10%
height = 40
offset-x = 11.1%
offset-y = 15
bottom = false
font-7 = "Hack Nerd Font Mono:size=22;5"
foreground = ${color.white}
background = ${[color.bg](http://color.bg/)}
padding = 1
modules-center = ethernet_status
wm-restack = bspwm

Este otro casi al final donde están los demás módulos:

[module/ethernet_status]
type = custom/script
interval = 2
exec = ~/.config/bin/ethernet_status.sh

Este seria el contenido de nuestro script para el ethernet_status en ~/.config/bin de la carpeta que creamos anteriormente:

#!/bin/sh

echo "%{F#2495e7}󰈀 %{F#ffffff}$(/usr/sbin/ifconfig eth0 | grep "inet " | awk '{print $2}')%{u-}"

Luego en el launch.sh agregaremos esto para que nos cargue el modulo, El archivo tendrá los otros módulos que trae por default si no queremos que muestre uno solo comentamos: Ejemplo launch.sh:

## Left bar

#polybar log -c ~/.config/polybar/current.ini &
polybar secondary -c ~/.config/polybar/current.ini &
polybar ethernet_bar -c ~/.config/polybar/current.ini &

Sudo plugin

Ahora instalaremos el sudo plugin, para hacer doble ESC nos ponga sudo antes. para agregarlo nos dirigimos a /usr/share/ y aquí adentro crearemos una carpeta todo lo hacemos como root:

mkdir zsh-sudo-plugin

nos metemos al directorio y luego descargamos el raw:

cd /zsh-sudo-plugin/
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/sudo/sudo.plugin.zsh

Una vez descargado le asignamos permisos de ejecución:

chmod +x nombre de plugin

Y le asignan como propietario su usuario:

chown usuario:usuario plugin

Agregamos este código a nuestra .zshrc:

if [ -f /usr/share/zsh-sudo-plugin/sudo.plugin.zsh ]; then
source /usr/share/zsh-sudo-plugin/sudo.plugin.zsh
fi

Ahora modificamos la polybar para identificar que ventana esta activa, inactiva y vacia. Modificaremos el workspace.ini de la polybar. Buscamos las siguientes líneas:

label-active-foreground = ${color.green}

sustituimos el color de active y mas abajo esta la de ocupada, colocamos el color que mejor nos parezca.

Auto completado inteligente

Instalamos un autocompletado inteligente en nuestro archivo de .zshrc, que esta en este link: Ver link Copiamos y pegamos lo del archivo en nuestra .zshrc, filtramos por completion features y borramos las que ya trae y pegamos las nuevas.

Ahora instalaremos npm para instalar neovim de neochad:

sudo apt install npm

Procedemos a clonar el repositorio para tener nvim:

git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1

Ahora entramos en esta url y buscamos el que pone nvim-linux64.tar.gz en esta url y lo descargamos: Ver link

Nos movemos al directorio opt, nos ponemos como root movemos y descomprimimos el archivo en ese directorio:

cd /opt
sudo su
mv /home/usuario/Downloads/nvim-linux64.tar.gz .

Borramos el comprimido y entramos en la carpeta de nvim, luego en bin y ejecutamos como usuario normal el nvim:

cd nvim
cd bin
su usuario
./nvim

y se instalara todo correctamente.

Ahora modificamos nuestro archivo .zshrc y agregamos estas líneas en custom aliases:

#nvim
alias nvim='/opt/nvim-linux64/bin/nvim'

y con esto ya tendríamos nvim instalado, solo cerramos la ventana y abrimos una nueva para probar.

Ahora hacemos lo mismo para el usuario root, volvemos a hacer el git clone en el home de root:

git clone https://github.com/NvChad/NvChad ~/.config/nvim --depth 1

Ejecutamos nvim y se instalara todo correctamente.

Instalando flameshot

Como opcional podemos instalar flameshot que sirve para hacer capturas de pantalla personalizadas.

sudo apt install flameshot

Instalando i3lock y i3lock-fancy

sudo apt install i3lock

Luego vamos a este github y vemos las instrucciones para instalar: Ver link Primero nos dirigimos a Downloads y clonamos el repo:

cd /home/usuario/Downloads
git clone https://github.com/meskarune/i3lock-fancy

Luego entramos al directorio y hacemos un sudo make install y listo.

Ejecutamos este comando para darle un texto y un tipo de fuente:

i3lock-fancy -t "Introduce tu contraseña" -f /usr/local/share/fonts/HackNerdFont-Regular.ttf

Con esto ya lo tendríamos.

Creamos un shortcut en en el sxhkdrc para activarlo con un atajo haciendo uso de la ruta absoluta:

/usr/bin/i3lock-fancy -t "Introduce tu contraseña" -f /usr/local/share/fonts/HackNerdFont-Regular.ttf

Después de esto reiniciamos el entorno para aplicar los cambios.

Listo con esto tenemos nuestro entorno listo para trabajar.

Happy hacking.