From 6b894441859eed0fdad52afecb8e64ac98cac6b7 Mon Sep 17 00:00:00 2001
From: 4xL <77083140+4xLoff@users.noreply.github.com>
Date: Fri, 8 Mar 2024 11:05:13 -0500
Subject: [PATCH] tutorial
---
_posts/blog/2024-02-13-Entorno-Pentesting.md | 1057 +-----------------
assets/img/entorno/base.png | Bin 0 -> 632376 bytes
assets/img/entorno/final.png | Bin 0 -> 1134382 bytes
assets/img/entorno/help.png | Bin 29953 -> 0 bytes
assets/img/entorno/inicial.png | Bin 0 -> 44261 bytes
assets/img/entorno/mode.png | Bin 0 -> 83196 bytes
assets/img/entorno/nvim.png | Bin 89076 -> 102351 bytes
assets/img/entorno/p10.png | Bin 0 -> 15464 bytes
assets/img/entorno/spotyfy.gif | Bin 0 -> 796863 bytes
assets/img/entorno/terminal.png | Bin 0 -> 456838 bytes
assets/img/entorno/total.png | Bin 260131 -> 0 bytes
11 files changed, 54 insertions(+), 1003 deletions(-)
create mode 100644 assets/img/entorno/base.png
create mode 100644 assets/img/entorno/final.png
delete mode 100644 assets/img/entorno/help.png
create mode 100644 assets/img/entorno/inicial.png
create mode 100644 assets/img/entorno/mode.png
create mode 100644 assets/img/entorno/p10.png
create mode 100644 assets/img/entorno/spotyfy.gif
create mode 100644 assets/img/entorno/terminal.png
delete mode 100644 assets/img/entorno/total.png
diff --git a/_posts/blog/2024-02-13-Entorno-Pentesting.md b/_posts/blog/2024-02-13-Entorno-Pentesting.md
index dbf38bf..3dbe8d5 100644
--- a/_posts/blog/2024-02-13-Entorno-Pentesting.md
+++ b/_posts/blog/2024-02-13-Entorno-Pentesting.md
@@ -4,16 +4,15 @@ title: "Entorno Pentesting y Hacking"
subtitle: "Intalacion y personalizacíon"
category: Blog
tags: [Linux, Github, Curiosidades, Portafolio, Cheet-Sheet]
----
-
-![list](/assets/img/entorno/Kali-2022-09-12-23-42-00.png){:.lead width="800" height="100" loading="lazy"}
-
+image:
+ path: /assets/img/entorno/spotify.gif
---
I'm someone who often installs virtual machines for my testing, and I've become very accustomed to working in that environment as it's more efficient for me. I find it frustrating to work in a regular Kali environment now, it's quite challenging for me haha.
I'm going to share my personal configuration of Bspwm + Polybar + Kitty + Spotify with you, which can be installed on any Linux distribution designed for Penetration Testing, Ethical Hacking, CTFs, etc.
+{:.note title="Attention"}
I must say that I'm not a developer, so the code is quite straightforward. It lacks validations and could be infinitely improved. When installing, we'll see how everything is set up. I've kept it this way to catch any errors. It serves its purpose, which is to install the entire environment on top of a freshly installed image. I encourage you to modify it to your liking. It's something I'm planning to do myself as I prepare for OSCP, and I take any opportunity to practice scripting."
{:.note title="Attention"}
@@ -30,1064 +29,116 @@ Good Luck
## Considerations
-Before installing anything I will explain a little how the script of the three different versions works:
-
-![list](/assets/img/entorno/help.png){:.lead width="800" height="100" loading="lazy"}
-
-Antes de instalar nada procedemos con los siguientes comandos.
-
-```bash
-sudo apt update
-```
-
-```bash
-sudp apt upgrade
-```
-
-```bash
-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 libxcb-xtest0-dev libxcb-shape0-dev -y
-```
-
-```bash
-apt install latexmk zathura rubber texlive-full -y --fix-missing
-
-```
-
----
-
-## istalamos el terminal Kitty.
-
-```bash
-sudo apt install kitty -y
-```
-
----
-
-## Instalamos bspwm y sxhkd.
-
-```bash
-cd /home/axel/Descargas/
-git clone https://github.com/baskerville/bspwm.git
-git clone https://github.com/baskerville/sxhkd.git
-cd bspwm/
-make
-sudo make install
-cd ../sxhkd/
-make
-sudo make install
-```
-
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta.
-{:.note title="Attention"}
-
----
-
-### Instalamos bspwm.
-
-```bash
-sudo apt install bspwm -y
-```
-
----
-
-### Cargamos en bspwm y sxhkd ficheros de ejemplo.
-
-```bash
-mkdir ~/.config/bspwm
-mkdir ~/.config/sxhkd
-cd /home/axel/Descargas/bspwm/
-cp examples/bspwmrc ~/.config/bspwm/
-chmod +x ~/.config/bspwm/bspwmrc
-cp examples/sxhkdrc ~/.config/sxhkd/
-```
-
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta.
-{:.note title="Attention"}
-
----
-
-## Procedemos a instalar la paqueteria nesesaria para la polybar.
-
-```bash
-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
-
-```
-
----
-
-### Para instalar la polybar hacemos lo siguiente.
-
-```bash
-cd /home/axel/Descargas/
-git clone --recursive https://github.com/polybar/polybar
-cd polybar/
-mkdir build
-cd build/
-cmake ..
-make -j$(nproc)
-sudo make install
-```
-
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta.
-{:.note title="Attention"}
-
----
-
-### Para configurar nuestra Polybar, clonaremos primeramente en 'Descargas' el siguiente repositorio.
-
-```default
-git clone https://github.com/VaughnValle/blue-sky.git
-```
-
-Posteriormente, ejecutaremos los siguientes comandos:
-
-```default
-mkdir ~/.config/polybar
-cd ~/Descargas/blue-sky/polybar/
-cp * -r ~/.config/polybar
-echo '~/.config/polybar/./launch.sh' >> ~/.config/bspwm/bspwmrc
-cd fonts
-sudo cp * /usr/share/fonts/truetype/
-fc-cache -v
-```
-
-Hacemos Windows + Shift + R para cargar la configuración y deberíamos ver la Polybar por arriba.
-
----
-
-## Abrimos el bspwnrc y lo remplazamos con este script en la ruta `~/.config/bspwn/`.
-
-Desacarga [archivo-bspwnrc]
-
-[archivo-bspwnrc]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/bspwm/bspwmrc
-
-```bash
-#! /bin/sh
-
-pgrep -x sxhkd > /dev/null || sxhkd &
-
-bspc monitor -d I II III IV V VI VII VIII IX X
-
-bspc config border_width 2
-bspc config window_gap 12
-bspc config split_ratio 0.52
-bspc config borderless_monocle true
-bspc config gapless_monocle true
-bspc rule -a Caja state=floating follow=on
-bspc rule -a Gimp desktop='^8' state=floating follow=on
-bspc rule -a Chromium desktop='^2'
-bspc rule -a mplayer2 state=floating
-bspc rule -a Kupfer.py focus=on
-bspc rule -a Screenkey manage=off
-feh --bg-fill /home/axel/Images/1222108.png
-~/.config/polybar/./launch.sh
-bspc config focus_follows_pointer true
-picom --experimental-backends &
-bspc config border_width 0
-xsetroot -cursor_name left_ptr &
-```
-
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta.
-{:.note title="Attention"}
-
----
-
-## Abrimos el sxhkdrc y lo remplazamos con este script en la ruta `~/.config/sxhkd`.
-
-Desacarga [archivo-sxhkdrc]
-
-[archivo-sxhkdrc]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/sxhkd/sxhkdrc
-
-```default
-# ------------------------------------------------------------------------------------------------
-#
-# wm independent hotkeys
-#
-
-# terminal emulator
-super + Return
- kitty
-
-# program launcher
-super + d
- rofi -show run
-
-# make sxhkd reload its configuration files:
-super + Escape
- pkill -USR1 -x sxhkd
-
-#
-# bspwm hotkeys
-#
-
-# quit/restart bspwm
-super + alt + {q,r}
- bspc {quit,wm -r}
-
-# close and kill
-super + {_,shift + }w
- bspc node -{c,k}
-
-# alternate between the tiled and monocle layout
-super + m
- bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-super + y
- bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest node
-super + g
- bspc node -s biggest
-
-#
-# state/flags
-#
-
-# set the window state
-super + {t,shift + t,s,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-super + ctrl + {m,x,y,z}
- bspc node -g {marked,locked,sticky,private}
-
-#
-# focus/swap
-#
-
-super + {_,shift + }{Left,Down,Up,Right}
- bspc node -{f,s} {west,south,north,east}
+For control purposes I have used the latest version of Kali so far, which is [release 2024.1](https://www.kali.org/blog/kali-linux-2024-1-release/), which you can download from the [ISO](https://cdimage.kali.org/kali-2024.1/kali-linux-2024.1-installer-amd64.iso)
+![list](/assets/img/entorno/base.png){:.lead width="800" height="100" loading="lazy"}
-# focus the node for the given path jump
-super + {p,b,comma,period}
- bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node in the current desktop
-super + {_,shift + }c
- bspc node -f {next,prev}.local
-
-# focus the next/previous desktop in the current monitor
-super + bracket{left,right}
- bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-super + {grave,Tab}
- bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-super + {o,i}
- bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-super + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-# preselect
-#
-
-# preselect the direction
-super + ctrl + alt + {Left,Down,Up,Right}
- bspc node -p {west,south,north,east}
-
-
-# preselect the ratio
-super + ctrl + {1-9}
- bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-super + ctrl + space
- bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-super + ctrl + alt + space
- bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-# move/resize
-#
-
-# expand a window by moving one of its side outward
-#super + alt + {h,j,k,l}
-# bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-#super + alt + shift + {h,j,k,l}
-# bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + ctrl + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
-
-# Custom move/resize
-alt + super + {Left,Down,Up,Right}
- /home/axel/.config/bspwm/scripts/bspwm_resize {west,south,north,east}
-
-# Open firefox
-super + shift + f
- /usr/bin/firefox
-
-# Slimlock
-super + shift + x
- # slimlock
-
-# ------------------------------------------------------------------------------------------------
-```
-
-{:.note title="Attention"}
-Hay que cambiar en `Custom move/resize` mi usuario es decir `axel` por el usuario
-
-que corresponda a tu ruta.
-
-## Creamos el archivo bspwm_resize.
-
-```bash
-mkdir ~/.config/bspwm/scripts/
-touch ~/.config/bspwm/scripts/bspwm_resize; chmod +x ~/.config/bspwm/scripts/bspwm_resize
-```
+Before installing anything I will explain a little how the script of the three different versions works:
-Mediante la siguiente configuración podremos en el futuro controlar las dimensiones
+![list](/assets/img/entorno/mode.png){:.lead width="800" height="100" loading="lazy"}
-de las vetanas así como modificarlas con atajos de teclado.
+{:.note}
+I recommend you to read the whole post before installing in environment.
-### Abrimos el bspwn_resize y lo remmplazamos con este script en la ruta `~/.config/bspwn/scripts/`.
+### scriptMode
-Desacarga [archivo-bspwn_resize]
+The first version is the basic installation that consists of bspwn + polyvar + picom + powerlevel10k + kitty + zsh + vsc + neovim, this suite is only for building in the environment and may take between 20 to 25 minutes.
-[archivo-bspwn_resize]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/bspwm/scripts/bspwm_resize
+Depending on the time of installation, a console-setup window will appear, give ok and continue.
-```bash
-#!/usr/bin/env bash
+![list](/assets/img/entorno/panel.png){:.lead width="800" height="100" loading="lazy"}
-if bspc query -N -n focused.floating > /dev/null; then
- step=20
-else
- step=100
-fi
+At some point it will change, you will log out, at this moment you will have to restart the system and to start the session choose the BSPWN option.
-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
+![list](/assets/img/entorno/bspwn.png){:.lead width="800" height="100" loading="lazy"}
-bspc node -z "$dir" "$x" "$y" || bspc node -z "$falldir" "$x" "$y"
-```
+I have automated the entire installation, so you no longer need to configure either zsh or powerlevel10k; these will load automatically. If you wish to edit anything, it's in the configuration file. Neither fzf nor neovim needs to be configured separately. Just open any file, and the dependencies for neovim will be installed. Don't forget that this must be done for the low-privileged user as well as root.
----
+![list](/assets/img/entorno/p10.png){:.lead width="800" height="100" loading="lazy"}
-## Procedemos con la instalación de Picom para ajustar las transparencias.
+![list](/assets/img/entorno/nvim.png){:.lead width="800" height="100" loading="lazy"}
-Primeramente, instalamos los siguientes paquetes, no sin antes actualizar el sistema:
+All of us who use this type of environment are used to seeing our IP and VPN from Hack the box. This is also implemented in the following way, for example.
-```bash
-sudo apt update
-sudo apt install meson libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev libxcb-glx0-dev
-```
-
-Posteriormente, ejecutamos los siguientes comandos bajo el directorio ~/Descargas:
+To configure the IP and name of the HTB machine we use.
```bash
-git clone https://github.com/ibhagwan/picom.git
-cd picom/
-git submodule update --init --recursive
-meson --buildtype=release . build
-ninja -C build
-sudo ninja -C build install
-```
-
----
-
-### Remplazamos el siguiente script en el archivo `picom.conf`en la ruta `~/.config/picom/`..
-
-Desacarga [archivo-picon.conf]
-
-[archivo-picon.conf]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/picom/picom.conf
-
-```default
-#################################
-# Shadows #
-#################################
-
-shadow = false;
-
-shadow-radius = 7;
-
-shadow-offset-x = -7;
-
-shadow-exclude = [
- "name = 'Notification'",
- "class_g = 'Conky'",
- "class_g ?= 'Notify-osd'",
- "class_g = 'Cairo-clock'",
- "_GTK_FRAME_EXTENTS@:c"
-];
-
-#################################
-# Fading #
-#################################
-
-fading = true
-
-fade-in-step = 0.03;
-
-fade-out-step = 0.03;
-
-inactive-opacity = 0.8;
-
-frame-opacity = 0.5;
-
-inactive-opacity-override = false;
-
-active-opacity = 1.0;
-
-focus-exclude = [ "class_g = 'Cairo-clock'" ];
-
-#################################
-# General Settings #
-#################################
-
-backend = "xrender";
-
-vsync = true
-
-mark-wmwin-focused = true;
-
-mark-ovredir-focused = false;
-
-detect-rounded-corners = true;
-
-detect-client-opacity = true;
-
-refresh-rate = 0
-
-detect-transient = true
-
-detect-client-leader = true
-
-use-damage = true
-
-wintypes:
-{
- tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
- dock = { shadow = false; }
- dnd = { shadow = false; }
- popup_menu = { opacity = 0.8; }
- dropdown_menu = { opacity = 0.8; }
-};
-
-corner-radius = 15.0;
-rounded-corners-exclude = [
- #"window_type = 'normal'",
- #"class_g = 'rofi'",
- #"class_g = 'XTerm'",
- "class_g = 'Polybar'",
- #"class_g = 'code-oss'",
- #"class_g = 'TelegramDesktop'",
- "class_g = 'firefox'"
- #"class_g = 'Thunderbird'"
-];
-
-opacity-rule = [
- "100:class_g = 'Rofi'",
- "100:class_g = 'Spotify'",
- "100:class_g = 'Firefox'",
- "100:class_g = 'burp-StartBurp'"
-];
-
+settarget 10.10.10.4 Blue
```
----
-
-## Instalamos rofi (Posteriormente instalaremos el tema Nord para Rofi):
+And to clean.
```bash
-sudo apt install rofi -y
-```
-
----
-
-### Insertamos este script con el nombre de `nord.rasi` en ala ruta `~/.config/rofi/themes/`.
-
-Desacarga [archivo-nord.rasi]
-
-[archivo-nord.rasi]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/rofi/themes/nord.rasi
-
-```default
-configuration {
- show-icons: true;
- font: "SauceCodePro Nerd Font Medium 10";
- drun-display-format: "{icon} {name}";
- display-run: " ";
- display-drun: " ";
- display-window: " ";
- modi: "window,run,drun";
-}
-
-* {
- background-color: #2E3440;
- bg-alt: #3B4252;
- fg: #ECEFF4;
-
- nord-blue-light: #88C0D0;
- nord-yellow: #A8D7FE;
-
- border: 0;
- lines: 12;
- padding: 0;
- margin: 0;
- spacing: 0;
-}
-
-window {
- width: 30%;
- transparency: "real";
-}
-
-mainbox {
- children: [inputbar, listview];
-}
-
-listview {
- columns: 1;
-}
-
-element {
- padding: 12;
- orientation: vertical;
- text-color: @fg;
-}
-
-element selected {
- background-color: @bg-alt;
- text-color: @nord-blue-light;
-}
-
-inputbar {
- background-color: @background;
- children: [prompt, entry];
-}
-
-prompt {
- enabled: true;
- font: "SauceCodePro Nerd Font 12";
- padding: 12 0 0 12;
- text-color: @nord-yellow;
-}
-
-entry {
- padding: 12;
- text-color: @nord-yellow;
-}
+cleartarget
```
-Posteriormente con `rofi-theme-selector` seleccionamos el tema Nord.
-
----
-
-## En este punto, reiniciamos el equipo y seleccionamos bspwm.
-
-```default
-super + alt + q
-```
+![list](/assets/img/entorno/sp.png){:.lead width="800" height="100" loading="lazy"}
-la tecla `super` es la tecla de windows.
{:.note}
+It is also used to clean the target when there is no IP set.
----
-
-## Configuramos un poco la terminal e instalamos las Hack Nerd Fonts.
-
-EN esta parde debemos esconder la barra superior de la kitty y la barra lateral.
-
-Las [fuentes] de Hack Nerd Fonts deben ir descomprimidas en `
-
-una vez hecho hay que ejecutar el comando.
-
-[fuentes]: https://www.nerdfonts.com/font-downloads
-
-```bash
-fc-cache -v
-```
-
----
-
-## Instalamos Google chome o Firefox.
-
-O cualquier buscador de su eleccion.
-
-```default
-sudo dpkg -i “nombre del paquete .deb”
-```
-
----
-
-## Instalamos el addon 'FoxyProxy' para Firefox o Google.
+Still, I like my environment to be simple, so I have removed what I don't need and implemented the following.
-Lo buscamos tal cual foxy proxy extencion.
+- The location of the window will always tell you where you are located, no matter if you are between terminals, watching a video or whatever.
----
+- The interfaces for ctf's.
-### Configuramos la privacidad en Firefox y el directorio de descargas principal.
+- Resizing applications is something that I really like because certain applications fit into the environment bar with just one click.
-En ajuates para que no se guarde ninguna cookie ni historial de busqueda incluso
+- The implementation of spotify to hack with my favorite music.
-el color del tema eso ya es a su gusto.
-
----
-
-## Instalamos 'feh' con 'apt install feh' para poder cargar fondos de pantalla.
-
-```default
-sudo apt install feh xclip flameshot-y
-```
-
----
-
-### Cargamos en el archivo bspwmrc justo al final la siguiente línea:
-
-```default
-feh --bg-fill /home/axel/Desktop/fondo.jpg
-```
+![list](/assets/img/entorno/inicial.png){:.lead width="800" height="100" loading="lazy"}
{:.note title="Attention"}
-Aki debe poner la ruta de su wallpaper justo despues de `feh --bg-fill` esto esta en bspwnrc.
+Like most of us who have customized our environments, we have learned this thanks to s4vitar and even used his environment. But in the exercise of wanting to know more, how could I set up my own environment? I reached the conclusion of using the forest template since it has many utilities already implemented that can be taken advantage of, unlike the simple one that we all learned and replicated.
----
+### hackerMode
-## Remplazaremos todos los archivos de la polybar por los siguientes scripts con los mismo nombres.
+There's not much to explain in this way, just that it will install everything from scriptMode plus the entire LaTeX suite for report writing. Since there are too many dependencies and fonts, etc., it takes about 35 to 40 minutes depending on your internet speed.
-Cabe recalcar que esta es mi configuaracion pero si quereis cambiarla su gusto puede
+### musicMode
-hacerlo con total confianza no es nada dificil agregar o quitar modulos ,botones o
+This version installs scriptMode and also installs hackerMode, as well as everything necessary for Spotify to work. Although it's my favorite, I don't have it installed because it uses a lot of resources. I don't recommend it for systems with less than 16GB of RAM. Also, it takes between 35 and 40 minutes to install.
-funciones es algo que podebos investigar en internet tamvien dejo toda la
+You log in and you're ready to go.
-confifuracionde [polyvar], recomiendo remplazar toda la carpeta si no quereis editar nada.
+![list](/assets/img/entorno/spotify.png){:.lead width="800" height="100" loading="lazy"}
-[polyvar]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/tree/main/config/polybar
+This looks like this, and also the letters move.
----
-
-### El siguiente script es `launch.sh` lo remplazamos con el del mismo nombre en la ruta `~/.config/polyvar/`.
-
-Desacarga [archivo-launch.sh]
-
-[archivo-launch.sh]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/polybar/launch.sh
-
-```bash
-#!/usr/bin/env sh
-
-# Terminar las instancias de barra que ya se están ejecutando
-killall -q polybar
-
-# Espere hasta que los procesos se hayan cerrado.
-while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
-
-# Barra superior
-polybar apagado -c ~/.config/polybar/current.ini &
-polybar parrot -c ~/.config/polybar/current.ini &
-polybar hackthebox -c ~/.config/polybar/current.ini &
-polybar objetivo -c ~/.config/polybar/current.ini &
-polybar escritorios -c ~/.config/polybar/current.ini &
-
-# Barra inferior
-polybar icono -c ~/.config/polybar/current.ini &
-polybar hora -c ~/.config/polybar/current.ini &
-polybar procesador -c ~/.config/polybar/current.ini &
-polybar memoria -c ~/.config/polybar/current.ini &
-polybar spotify -c ~/.config/polybar/current.ini &
-polybar controlspotify -c ~/.config/polybar/current.ini &
-polybar volumen -c ~/.config/polybar/current.ini &
-```
-
----
-
-### El siguiente script es `current.ini` lo remplazamos con el del mismo nombre en la ruta `~/.config/polyvar/`.
-
-Desacarga [archivo-curren.ini]
-
-[archivo-curren.ini]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/config/polybar/current.ini
-
----
-
-### El siguiente script es `hackthebox.sh` lo remplazamos con el del mismo nombre en la ruta `~/.config/polyvar/scripts/`.
-
-```
-#!/bin/sh
-
-IFACE=$(/usr/sbin/ifconfig | grep tun0 | awk '{print $1}' | tr -d ':')
-
-if [ "$IFACE" = "tun0" ]; then
- echo "%{F#2EFE64}%{F#FFFFFF}$(/usr/sbin/ifconfig tun0 | grep "inet " | awk '{print $2}')%{u-}"
-else
- echo "%{F#2efe64}%{u-}%{F#FFFFFF}Desconectado"
-fi
-```
+![list](/assets/img/entorno/terminal.png){:.lead width="800" height="100" loading="lazy"}
---
-### El siguiente script es `parrot.sh` lo remplazamos con el del mismo nombre en la ruta `~/.config/polyvar/scripts/`.
-
-```
-#!/bin/sh
+## Installation
-echo "%{F#00BFFF}%{F#FFFFFF}$(/usr/sbin/ifconfig ens33 | grep "inet " | awk '{print $2}')%{u-}"
-
-```
-
----
-
-### El siguiente script es `objetivo.sh` lo remplazamos con el del mismo nombre en la ruta `~/.config/polyvar/scripts/`.
-
-```
-#!/bin/bash
-
-ip_address=$(cat ~/.config/polybar/scripts/machine | awk '{print $1}')
-machine_name=$(cat ~/.config//polybar/scripts/machine | awk '{print $2}')
-
-if [ $ip_address ] && [ $machine_name ]; then
- echo "${F#FE2E2E}%{F#FFFFFF}$ip_address%{u-} - $machine_name"
-else
- echo "${F#E73D3D}%{u-}%{F#ffffff}Máquina Desconectada"
-fi
-```
-
----
-
-## Instalamos la powerlevel10k en la zsh.
-
-```default
-git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
-
-echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
-```
-
-Esto se debe hacer para root asi que para el otro usuario y para cofigurarlo escribimos en la terminal `zsh`.
-{:.note title="Attention"}
-
-Desacarga [archivo-.p10k.zsh]
-
-[archivo-.p10k.zsh]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/p10k.zsh
-
-Si borra y copia el contenido de .p10k.zsh con el contenido del link de decargase
-
-aplicaran las configuraciones para dicho usuario por lo cual si queremos hacer
-
-estos tanto para el usuario root y no root debemos remplazarlos en las rutas de sus
-
-repectivos archivos `/home/` y `/root/`
-
-Si borrramos el archivo y remplazamos por el de link debemos cambiarle el nombre
-
-de `p10k.zsh` a `.p10k.zsh` ya que estos archivos de configuracion sirempre estan ocultos.
-
-```bash
-mv p10k.zsh .p10k.zsh
-```
-
----
-
-## Remplazamos .zshrc este script con el mismo nombre de `.zshrc` en ala ruta `~/.zshrc`.
-
-Desacarga [archivo-.zshrc]
-
-[archivo-.p10k.zsh]: https://github.com/4xLoff/Entorno-Pentesting-y-Hacking/blob/main/zshrc.txt
-
-Si borra y copia el contenido de .zshrc con el contenido del link de decarga se
-
-aplicaran las configuraciones para dicho usuario por lo cual si queremos hacer
-
-estos tanto para el usuario root y no root debemos remplazarlos en las rutas de sus
-
-repectivos archivos `/home/` y `/root/`
-
-Si borrramos el archivo y remplazamos por el de link debemos cambiarle el nombre
-
-de `zshrc.txt` a `.zshrc` ya que estos archivos de configuracion sirempre estan ocultos.
+I have implemented everything so you don't do anything, just clone the following [repository](https://github.com/4xLoff/Entorno) and copy the following commands.
```bash
-mv zshrc.txt .zshrc
+cd Downloads
+git clone https://github.com/4xLoff/Entorno.git
+cd Entorno
+chmod +x helpers.sh
+sudo ./helpers.sh -i musicMode
```
+You can choose the mode you prefer.
{:.note title="Attention"}
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta
-que esta dentro .zshcr casi al final .
-
----
-
-### Creamos enlace simbólico de la .zshrc y .p10k.zsh para root.
-
-Si queremos evitarnos los paso de estar reeplazando los archivos tanto en root
-
-como en el usuario no privilegiado podemos hacer link simbolico para que sean iguales.
-```bash
-ln -s -f /home/axel/.zshrc /root/.zshrc
-```
+![list](/assets/img/entorno/terminal.png){:.lead width="800" height="100" loading="lazy"}
-Esto se debe hacer para que la configuracion de .zshrc de root y el otro usuario sea iguales.
-{:.note title="Attention"}
+
+
+
-```bash
-ln -s -f /home/axel/.p10k.zsh /root/.p10k.zsh
-```
-
-Esto se debe hacer para que la configuracion de .p10k.zsh de root y el otro usuario sea iguales.
-{:.note title="Attention"}
+![list](/assets/img/entorno/final.png){:.lead width="800" height="100" loading="lazy"}
---
-## Cambiamos el tipo de shell por defecto tanto para root como para el usuario con bajos privilegios.
-
```bash
-usermod --shell /usr/bin/zsh $USER
-
+🎉 Congratulations, you now have your own Environment! 🎉
```
-Hay que cambiar mi usuario es decir `axel` por el usuario que corresponda a tu ruta.
-{:.note title="Attention"}
-
-```bash
-usermod --shell /usr/bin/zsh root
-
-```
-
----
-
-## Migrar de usuario root a bajos privilegios y viceversa.
-
-Para evitar un pequeño problema de permisos a la hora de desde el usuario root migrar con 'su' al usuario con bajos privilegios, ejecutamos los siguientes comandos:
-
-```bash
-chown axel:axel /root
-
-```
-
-```bash
-chown axel:axel /root/.cache -R
-
-```
-
-```bash
-chown axel:axel /root/.local -R
-
-```
-
-sudo apt-get install python3 zsh gcc g++ libfreetype6-dev libglib2.0-dev libcairo2-dev meson pkg-config gtk-doc-tools zlib1g-dev libpng16-16 liblcms2-2 librsync-dev libssl-dev libfreetype6 libfreetype6-dev fontconfig libcanberra-gtk-module imagemagick gcc ffuf pkg-config libdbus-1-dev libxcursor-dev libxrandr-dev libxi-dev libxinerama-dev libgl1-mesa-dev libxkbcommon-x11-dev libfontconfig1-dev libx11-xcb-dev liblcms2-dev libssl-dev libpython3-dev libharfbuzz-dev wayland-protocols libxxhash-dev bc zsh-syntax-highlighting bat lsd fzf davtest ranger seclists -y
-
-|------------------------|--------------------------------|
-|wm independent hotkeys | Comand |
-
-#
-
-# wm independent hotkeys
-
-#
-
-# terminal emulator
-
-super + Return
-/usr/bin/kitty
-
-# program launcher
-
-super + d
-rofi -no-config -no-lazy-grab -show drun -modi drun -icon-theme "ePapirus" -show-icons -theme ~/.config/polybar/forest/scripts/rofi/launcher.rasi
-
-# make sxhkd reload its configuration files:
-
-super + Escape
-pkill -USR1 -x sxhkd
-
-#
-
-# bspwm hotkeys
-
-#
-
-# quit/restart bspwm
-
-super + alt + {q,r}
-bspc {quit,wm -r}
-
-# close and kill
-
-super + {\_,shift + }q
-bspc node -{c,k}
-
-# alternate between the tiled and monocle layout
-
-super + m
-bspc desktop -l next
-
-# send the newest marked node to the newest preselected node
-
-super + y
-bspc node newest.marked.local -n newest.!automatic.local
-
-# swap the current node and the biggest window
-
-super + g
-bspc node -s biggest.window
-
-#
-
-# state/flags
-
-#
-
-# set the window state
-
-super + {t,shift + t,s,f}
-bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-
-super + ctrl + {m,x,y,z}
-bspc node -g {marked,locked,sticky,private}
-
-#
-
-# focus/swap
-
-#
-
-# focus the node in the given direction
-
-super + {\_,shift + }{Left,Down,Up,Right}
-bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-
-super + {p,b,comma,period}
-bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous window in the current desktop
-
-super + {\_,shift + }c
-bspc node -f {next,prev}.local.!hidden.window
-
-# focus the next/previous desktop in the current monitor
-
-super + bracket{left,right}
-bspc desktop -f {prev,next}.local
-
-# focus the last node/desktop
-
-super + {grave,Tab}
-bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-
-super + {o,i}
-bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-
-super + {\_,shift + }{1-9,0}
-bspc {desktop -f,node -d} '^{1-9,10}'
-
-#
-
-# preselect
-
-#
-
-# preselect the direction
-
-super + ctrl + alt + {Left,Down,Up,Right}
-bspc node -p {west,south,north,east}
-
-# preselect the ratio
-
-super + ctrl + {1-9}
-bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-
-super + ctrl + alt + space
-bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-
-super + ctrl + shift + space
-bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-
-# move/resize
-
-#
-
-# expand a window by moving one of its side outward
-
-super + alt + {Left,Down,Up,Right}
-bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-
-super + alt + shift + {Left,Down,Up,Right}
-bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-
-super + ctrl + {Left,Down,Up,Right}
-bspc node -v {-20 0,0 20,0 -20,20 0}
-
-# Custom move resize
-
-super + {Left,Down,Up,Right}
-/home/axel/.config/bspwm/scripts/bspwm_resize {west,south,north,east}
-
-# Open firefoxsuper + shift + f
-
-super + shift + f
-/usr/bin/firefox
-
-# Open Chrome
-
-super + shift + g
-/opt/google/chrome/chrome & disown
-
-# BurpSuite
-
-super + x
-/usr/bin/burp & disown
-
-# BurpSuite-Community
-
-super + b
-/usr/bin/burpsuite & disown
-
-# Obsidiam
-
-super + shift + o
-/home/axel/Documentos/obsidiam/Obsidian-1.1.16.AppImage & disown
-
-# Bloquear pantalla
-
-super + q
-i3lock-fancy
-
-````
-
-![list](/assets/img/entorno/Kali-2022-09-11-15-22-09.png){:.lead width="800" height="100" loading="lazy"}
-![list](/assets/img/entorno/Kali-2022-09-11-15-23-25.png){:.lead width="800" height="100" loading="lazy"}
-![list](/assets/img/entorno/Kali-2022-09-11-15-23-56.png){:.lead width="800" height="100" loading="lazy"}
-
-***
-```bash
-🎉 Felicitaciones ya tienes tu propio Entorno! 🎉
-````
-
{:.centered}
---
diff --git a/assets/img/entorno/base.png b/assets/img/entorno/base.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a46098df7f451c7d30c66060f855dbfded66923
GIT binary patch
literal 632376
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