Bot Bounty, un bot para Pentesting y Bug Bounty

Traducciones disponibles: | "English" |

Este proyecto se trata de un bot de Telegram con la capacidad de ejecutar comandos de terminal desde tu cuenta de Telegram y con la respuesta del comando como mensajes.

Vector de Tecnología creado por pch.vector - www.freepik.es

Inicialmente este proyecto lo comencé por necesidades personales, pero decidí liberarlo por la segura necesidad de muchos con el mismo problema que me encontré, y tomando como base un proyecto de Va5c0.

Muchas veces pasa en un pentest o más aun un bug bounty, que se necesita enumerar los objetivos o procesos que toman mucho tiempo como ciertos tipos de escaneos de nmap, crackear algún hash. Y muchas veces por ese motivo paso a dejar ese proceso trabajando fijándome si ya termino o no, dejando la computadora encendida, en algunas ocasiones sin nada más que hacer, toco veces en que ya debía salir y apagar la computadora dejando todo el proceso previo sin resultados. Es un gran coste de tiempo y dinero.

Por lo que ahora comparto este pequeño proyecto de un bot(al que le bautice como Bot Bounty) que pueda ser utilizado tanto por una sola persona o varias, como una empresa que tenga esta misma necesidad para mejorar la productividad. Ya sea en una computadora, vps o una Raspberry. Conservando el grado de seguridad de que nadie más que las personas que se autoricen a usar el bot podrán utilizarlo (por si alguien externo llegara a encontrarse con el bot y tratara de utilizarlo).

start

El bot tiene opciones predefinidas para un acceso rápido a información que puede ser útil para el uso del bot. Por mencionar algunos: el espacio en RAM disponible (opción info serv/RAM), o la IP publica que tiene el dispositivo en el que corre el bot.

Además, con el comando /exec se puede ejecutar cualquier comando que esté disponible en nuestra terminal del dispositivo a usar, por ejemplo:

hello world

Limitándose así para comandos que requieran interacción, como alguna instalación sin forzar con el típico -y o logearse vía SSH, por nombrar unos ejemplos.

Por defecto en su primer release viene con comandos rápidos de amass y nmap, para empezar a usarlos en un pentest o bug bounty. por ejemplo, en amass, el comando es /amassenum, el cual llama a $ amass enum -d para realizar una enumeración de subdominios:

amass

En nmap tenemos un escaneo con los scripts, por default, sacar las versiones de los puertos encontrados, evitar realizar el descubrimiento del host (verificar si está vivo), y buscar en todos los puertos posibles; es decir: $ nmap -sC -sV -Pn -p-

nmap

Claro que para lograr utilizar estos comandos deberá estar instaladas las herramientas en el sistema que estén utilizando para correr el bot (además que se las pueda llamar directamente en consola)

Como primer release, solamente se tienen esos comandos, sin embargo quedo a la espera de otros comandos de atajo para añadir al bot que sugieran. Además, si encuentran errores me pueden escribir o lanzar un issue en el repositorio.

El repositorio es el siguiente: Bot Bounty

Configuraciones previas

Para poder usarlo previamente deberán crearse un bot en Telegram reemplazar la API KEY que da por el valor que se especifica en el script en la línea 12.

1TOKEN = 'XXXXXX:XXXXXXXXXXXXXXXX'

Además de registrar el ID de usuario(s) que usaran el bot, en la línea 14:

1authorizedUsers = [123456789, 987654321]

Y ahora simplemente queda correr el script

1$ python3 bot.py

Tips

Si el output del comando es demasiado grande, debe guardarla en un archivo y sin output.

por ejemplo:

  • \nmapadv example.com > resultadosExample.txt
  • \nmapadv example.com -oN resultadosExample.txt
  • \exec echo 'awesome bot!' > yesItIs.txt

Para revisar posibles usuarios no autorizados tratando de usar el bot, se guarda un registro de todos los comandos ejecutados con detalles de usuario en el archivo logFileBot.txt

Y eso sería por ahora, espero sea bien recibido este trabajo.

-Hackers are People Too 😜