PROGRAMA TU PROPIA AUDITORIA WEB CON BASH

Hoy me puse a programar un pequeño bash para generar tu propia auditoria web, en el cual podrás obtener información sobre ella.

Obviamente quiero que leas dos post sobre algunos bash que he publicado
LINK 1
Link 2
Existe muchos comandos bash para hacer auditoria, entonces se me ocurrió mezclar todos estos comandos para ustedes.
Para este ejemplo vamos a usar WGET para bajar nuestro datos en un index.htm, al bajarlo vamos a usar los siguientes comandos.

wget creadpag.com
Comenzamos usando el comando grep para extraer todas las líneas en el archivo que contiene el string "href=", que indica que esta línea contiene un enlace. El resultado sigue siendo un pantano de HTML, pero observe que la mayoría de las líneas tienen un estructura, y se puede dividir convenientemente usando el carácter "/" como delimitador. Específicamente extraer nombres de dominio del archivo, podemos intentar usar el comando cut con nuestro delimitador en el 3er campo. Use grep para filtrar todo las líneas que contienen un punto, para obtener un resultado más limpio. He usando nuevamente el comando cut en el primer delimitador. Obviamente "|" para separar sobre los comandos. Podemos eliminarlos usando el comando sort, con la opción única (-u).
grep "href=" index.html | cut -d "/" -f 3 | grep "\." | cut -d '"' -f 1 | sort -u
Una forma aún más limpia de hacer esto sería involucrar un toque de expresiones regulares en nuestro comando, redireccionando la salida a un archivo de texto, como se muestra a continuación:
cat index.html | grep -o 'http://[^"]*' | cut -d "/" -f 3 | sort -u > list.txt
El comando de host nos proporciona todo tipo de resultados, no todos relevantes. Queremos extraer solo las direcciones IP de toda esta información, por lo que canalizamos la salida a grep, busca el texto "has address, luego cut y sort para la salida.
for url in $(cat list.txt); do host $url; done | grep "has address" | cut -d " " -f 4 | sort -u
Listo, ahora vamos armar nuestro script cuando he explicado sobre los comandos.
#!/bin/bash
# Simple Auditor Bash Script
# $1 is the first argument given after the bash script
# Check if argument was given, if not, print usage
if [ -z "$1" ]; then
echo "[*] Simple Auditor Script"
echo "[*] Usage : $0  "
exit 0
fi
# if argument was given, identify info
wget $1
# Basic command bash
grep "href=" index.html | cut -d "/" -f 3 | grep "\." | cut -d '"' -f 1 | sort -u
cat index.html | grep -o 'http://[^"]*' | cut -d "/" -f 3 | sort -u > list.txt
for url in $(cat list.txt); do host $url; done | grep "has address" | cut -d " " -f 4 | sort -u
Lo que estas ordenando con "$1" es que coloques el nombre del dominio que quieras generar la información, recuerda que el programa genera dos archivos "index.html" "list.txt". Ahora no te olvides en compartirlo, para seguir publicando sobre programación. GRACIAS!

Comentarios

Entradas populares