Skip to content

GiovanniSCESP/BetterKali

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 

Repository files navigation

BetterKali

image

Youtube Playlist

Instalación Automática

$ curl https://raw.githubusercontent.com/GiovanniSCESP/BetterKali/refs/heads/main/install.sh | sh

Iniciar kitty.

$ kitty

Salir de tmux y entrar a los temas de kitty.

$ exit
$ kitten themes

Buscar Catppuccin-Mocha con: /

Aplicar con: M

Podemos añadir un shortcut a kitty.

Añadimos el source de Tmux.

$ tmux
$ tmux source ~/.config/tmux/tmux.conf

Aplicamos los cambios de tmux con <prefix> I.

<prefix> = Ctrl + SPACE (Ctrl + b por defecto)

Reiniciar la terminal y el sistema.

Instalación Manual

  1. Kitty
  2. Tmux
  3. OhMyPosh
  4. Otros
  5. zshrc

Kitty

Emulador de terminal personalizable y con utilidades.

Instalación:

$ sudo apt install kitty

Ejecutamos el emulador de terminal y entramos al selector de temas.

No podemos estar en tmux al ejecutar kitten themes

$ kitty
$ kitten themes

Buscar Catppuccin-Mocha con: /

Aplicar con: M

Tmux

Multiplexor de terminal personalizable.

Instalación:

$ sudo apt install tmux
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Creamos el archivo: ~/.config/tmux/tmux.conf.

# Set true color and mouse support
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on

# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on

# Set prefix
unbind C-b
set -g prefix C-space
bind C-space send-prefix

# Open panes in current directory
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"

set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'

run '~/.tmux/plugins/tpm/tpm'
$ tmux source ~/.config/tmux/tmux.conf

Comandos:

Ver todas las sesiones.

$ tmux list-sessions

Cerrar todas la sesiones o poner un índice.

$ tmux kill-session -a

Controles:

<prefix> = Ctrl + SPACE (Ctrl + b por defecto)

Nueva ventana: <prefix> c

Cambiar ventana: <prefix> 0,1... <prefix> n <prefix> p

Cerrar ventana: exit <prefix> &

Renombrar ventana: <prefix> ,

Mover Ventana: <prefix> .

Pane horizontal: <prefix> %

Pane vertical: <prefix> "

Cerrar pane: <prefix> x

Cambiar pane: <prefix> FLECHA <prefix> q

Sustituir pane <prefix> { <prefix> }

Zoom pane: <prefix> z

Pane a ventana: <prefix> !


Aplicamos los cambios anteriores de los plugins con <prefix> I

Añadimos tmux al .zshrc.

if [ "$TMUX" = "" ]; then
  tmux;
fi

OhMyPosh

$ curl -s https://ohmyposh.dev/install.sh | bash -s
$ oh-my-posh font install

Configurar la fuente en Appearance.

Añadimos ohmyposh al .zshrc.

eval "$(oh-my-posh init zsh)"

Reinciamos la terminal y vamos a la carpeta de configuración: ~/.config/ohmyposh.

Exportamos el archivo de configuración backup.

$ oh-my-posh config export --output ./base.json

Exportamos el archivo de configuración toml.

$ oh-my-posh config export --format toml --output ./zen.toml

Modificamos la línea del .zshrc.

eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"

Modificamos el archivo de configuración creado zen.toml.

  • Nota1: en template = '>' y template = '> ' el espacio es intencional.
  • Nota2: Cambiar el símbolo > por (angle right), copiando el icon de nerdfonts.
console_title_template = '{{ .Shell }} in {{ .Folder }}'
version = 3
final_space = true

[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true

[[blocks.segments]]
type = 'path'
style = 'plain'
background = 'transparent'
foreground = 'blue'
template = '{{ .Path }}'

[blocks.segments.properties]
style = 'full'

[[blocks.segments]]
type = 'git'
style = 'plain'
background = 'transparent'
foreground = '#6c6c6c'
template = ' {{ .HEAD }}'

[[blocks]]
type = 'rprompt'
overflow = 'hidden'

[[blocks.segments]]
type = 'executiontime'
style = 'plain'
background = 'transparent'
foreground = 'yellow'
template = '{{ div .Ms 1000 }}s'

[blocks.segments.properties]
threshold = 5000

[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true

[[blocks.segments]]
type = 'text'
style = 'plain'
foreground_templates = [
    "{{if gt .Code 0}}red{{end}}",
    "{{if eq .Code 0}}magenta{{end}}",
]
background = 'transparent'
foreground = 'magenta'
template = '>'

[transient_prompt]
foreground_templates = [
    "{{if gt .Code 0}}red{{end}}",
    "{{if eq .Code 0}}magenta{{end}}",
]
background = 'transparent'
foreground = 'magenta'
template = '> '

Otros

Zoxide

$ curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

Añadimos Zoxide al .zshrc.

eval "$(zoxide init --cmd cd zsh)"

Comandos adicionales:

$ zoxide edit

Fuzzy Finding + Zoxide

$ sudo apt install fzf

Añadimos fzf al .zshrc.

source <(fzf --zsh)
  • Ctrl + R: Abre una ventana de buscador del historial, con enter escribe el comando en la terminal.
  • Ctrl + T: Abre una ventana de buscador de archivos, con enter escribe la ruta.
  • Ctrl + C: Abre una ventana de buscador de directorios, con enter hace un cd a la ruta.

Ahora podemos hacer uso del comando de Zoxide cdi para un menú interactivo de búsquedas frecuentes.

Batcat + Fuzzy Finding

$ sudo apt install bat

Añadimos los alias al .zshrc.

alias cat='batcat'
alias catn='/bin/cat'
alias catnl='batcat --paging=never'
alias fzfb='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become(batcat {+})"'
alias fzfe='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --bind "enter:become(nano {}),ctrl-v:become(vim {}),ctrl-c:become(code {}),ctrl-z:become(zed {}),ctrl-e:become(emacs {})"'
alias cdf='cd $(find . -type d -print | fzf --tmux center)'

function fzfc() {
	fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become($1 {+})"
}
  • cat: Se ejecuta batcat en su lugar.
  • catn: Se ejecuta el /bin/cat normal.
  • catnl: Se ejecuta batcat sin la función more.
  • fzfb: Buscador de archivos, abre el contenido con batcat.
  • fzfe: Buscador de archivos para edición abre el contenido en un editor:
    • ENTER: nano
    • Ctrl + E: emacs
    • Ctrl + Z: zed
    • Ctrl + C: code
    • Ctrl + V: vim
  • fzfc: Buscador de archivos, ejecuta el comando que se escriba al archivo seleccionado:
    • E.g. fzfc code

fd-find

$ sudo apt install fd-find

Añadimos los alias al .zshrc.

alias fd='fdfind'

Podemos juntarlo con fzf.

$ fd passwd /etc | fzfb

pwncat

$ sudo apt install pyenv
$ pyenv install 3.11
$ pyenv local 3.11
$ sudo ~/.pyenv/versions/3.11.11/bin/python -m venv /opt/pwncat
$ sudo /opt/pwncat/bin/pip install pwncat-cs
$ sudo ln -s /opt/pwncat/bin/pwncat-cs /usr/local/bin

https://pwncat.readthedocs.io/en/latest/

extractPorts

$ sudo apt install xclip
#!/bin/bash
# Used:
# nmap -p- --open -T5 -v -n ip -oG allPorts

# Extract nmap information
# Run as:
# extractPorts allPorts

function extractPorts(){
	# say how to usage
	if [ -z "$1" ]; then
		echo "Usage: extractPorts <filename>"
		return 1
	fi

	# Say file not found
	if [ ! -f "$1" ]; then
		echo "File $1 not found"
		return 1
	fi

	#if this not found correctly, you can delete it, from "if" to "fi".
	if ! grep -qE '^[^#].*/open/' "$1"; then
		echo "Format Invalid: Use -oG <file>, in nmap for a correct format."
		return 1
	fi

	ports="$(cat $1 | grep -oP '\d{1,5}/open' | awk '{print $1}' FS='/' | xargs | tr ' ' ',')";
	ip_address="$(cat $1 | grep -oP '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' | sort -u | head -n 1)"
	echo -e "\n[*] Extracting information...\n" > extractPorts.tmp
	echo -e "\t[*] IP Address: $ip_address"  >> extractPorts.tmp
	echo -e "\t[*] Open ports: $ports\n"  >> extractPorts.tmp
	echo $ports | tr -d '\n' | xclip -selection clipboard
	echo -e "[*] Ports copied to clipboard\n"  >> extractPorts.tmp
	cat extractPorts.tmp; rm extractPorts.tmp
}
extractPorts "$1"

Añadirlo a una ruta del $PATH E.g. /usr/local/bin/extractPorts y darle permisos de ejecución con chmod +x.

mkt

Añadimos los alias al .zshrc.

alias mkt='mkdir {nmap,content,exploits,scripts}'

zshrc

Archivo -zshrc completo.

if [ "$TMUX" = "" ]; then
  tmux;
fi

eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"

eval "$(zoxide init --cmd cd zsh)"

source <(fzf --zsh)

eval $(thefuck --alias)

eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

# custom aliases
alias cat='batcat'
alias catn='/bin/cat'
alias catnl='batcat --paging=never'
alias fzfb='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become(batcat {+})"'
alias fzfe='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --bind "enter:become(nano {}),ctrl-v:become(vim {}),ctrl-c:become(code {}),ctrl-z:become(zed {}),ctrl-e:become(emacs {})"'
alias cdf='cd $(find . -type d -print | fzf --tmux center)'
alias fd='fdfind'
alias mkt='mkdir {nmap,content,exploits,scripts}'
alias ls='eza --icons'
alias l='ls -F'
alias lsn='/bin/ls'

function fzfc() {
  fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become($1 {+})"
}

function y() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
  yazi "$@" -- cwd-file="$tmp"
  IFS= read -r -d '' cwd < "$tmp"
  [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd - - "$cwd"
  rm -f -- "$tmp"
}

function zle_fuck_tmux() {
  tmux send-keys "fuck" C-m
}
zle -N zle_fuck_tmux
bindkey '^F' zle_fuck_tmux

fastfetch

Errores

En las nuevas versiones de kali puede dar un error al autocompletar luego de un upgrade.

https://forums.kali.org/t/bug-in-new-kali-upgrade/6423

Se puede solucionar con:

$ sudo activate-global-python-argcomplete

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages