My Profile Photo

Neith Altair


Apasionado por los sistemas, tecnología y la ciberseguridad. Etichal hacking, análisis de vulnerabilidades, OSINT, pentesting entornos web y móvil, desarrollo de scripts en Bash, Python, manejo de Linux, conocimiento en tecnologías de desarrollo web. Implementación de Python para creación de automatizaciones.


Scripting en BASH

Scripting en Bash

  • Creación de una menú con GETOPTS que permita alternar entre una serie de funciones existentes.
  • Creación de funciones.
  • Uso y empleo de condiciones en BASH.
  • Control de flujo de programa frente a CTRL+C

1. trap ctrl_c INT = establece una acción específica que se ejecutará cuando se reciba la señal de interrupción (SINGINT), que normalmente se genera cuando el usuario presiona CTRL+C en la terminal.

Estructura de comando trap

trap accion señal
trap ctrl_c INT

¿Por qué la señal es INT? La señal INT en el comando, es el nombre de la señal de interrupción en el sistema UNIX/LINUX.

La señal INT (INTERRUPT) es generada cuando el usuario presiona ctrl+c en la terminal. Concida para solicitar la terminación de un programa o para abortar una operación en curso de manera controlada.

CURL

# Curl es la herramienta.
# -X GET: especifica el método HTTP a utilizar en la solicitud. En este caso 'GET' indica que se quiere realizar una solicitud GET.
$ curl -X GET https://htbmachines.github.io
$ curl -X GET https://htbmachines.github.io/bundle.js

2. Utilidad = js-beautify

$ curl -s -X GET https://htbmachines.github.io/bundle.js > bundle.js
# sponge se utiliza para "absorber" la salida estándar y luego escribirla en un archivo una vez que la entrada estándar ha terminado de leerse. Esto puede ser especialmente útil cuando se necesita modificar un archivo y luego guardar los cambios en el mismo archivo
$ cat bundle.js | js_beautify | sponge bundle.js
# El comando de arriba no me funcionó
$ js_beautify bundle.js | sponge bundle.js
# Se hace uso del parámetro -i para que no tenga en cuenta el capitalCase a la hora de buscar la palabra. 
$ cat bundle.js | grep -i "tenta"

3. Creación de parámetros para el Script

While getopts

Getopts: es una utilidad de bash para analizar opciones y argumentos pasados al script.

#Indicadores
#Se pueden declarar variables con declare y con let. Se hace uso del parametro -i para indicar que será un valor integer. 
declare -i parameter_counter=0

#"m:h = especifíca las opciones que el script aceptará. en este caso las opciones son -m y -h. La m tiene dos puntos depués (un solo punto indica un argumento opcional, dos puntos indican uno obligatorio)."
while getopts "m:h" arg in; do
    case $arg in
        m) let parameter_counter+=1;;
        h) helpPanel;;
    esac
done

#Pendiente repasar a detalle la implementación del $OPTARG. entender mejor la parte de arg in.