👹TOOL PARA INFORMES DE MAPAS MENTALES P4INformesmentales.py

Programa en Python para automatizar a través de una interfaz dinámica de ingresos de datos y comandos de forma guiada para que se valla creando un reporte en formato MARKDOWN y así también poder realizar con el en XMIND un mapa mental ya estructurado al que aparte podríamos personalizar después con imágenes recolectadas, etc


```
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!programa para automatizar a traves de una interfas dinamica de ingresos de datos guiada para que se valla creando un reporte en formato MARKDOWN y asi tambien poder realizar con el en XMIND un mapa mental ya estructurado al qeu aparte podriamos personalizar despues con imagenes recolectadas,etc
#! P4INformesmentales.py 3.0v- By P4IM0N

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!TESTEADO EN KALI LINUX, LIBRERIAS E INSTALACION DE LAS MISMAS EN CASO DE NO TENERLAS
# Tener instalado la aplicacion XMIND.
# Bibliotecas necesarias para el funcionamientoo:
# -subprocess: Para ejecutar comandos y capturar su la salida.
   #Podes instalarlo con el siguiente comando:
    #? pip install subprocess
# -tabulate: Para crear tablas a partir de datos en listas.
   #Podes instalarlo con el siguiente commando:
    #? pip install tabulate

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Importamos librerias
from tabulate import tabulate
import subprocess

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Códigos de escape ANSI para cambiar el color del texto en la terminal
COLOR_RED = "\033[91m"
COLOR_PURPLE = '\x1b[35m'
COLOR_YELLOW = "\033[93m"
COLOR_RESET = "\033[0m"

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#TEXTOS INFORMATIVOS

ayuda = '''
////////////////////////////////////////////////////////AYUDA MANITO///////////////////////////////////////////////////////////////////
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- Método manual: Este método implica que el pentester realiza las acciones de forma directa y personalizada, sin usar herramientas automatizadas o scripts. Un ejemplo de cómo aplicar este método sería el siguiente:

    - El pentester accede al sitio web de Shoppy ([https://shoppy.com]) y observa su diseño, sus funcionalidades, sus productos y sus políticas.
    - El pentester intenta registrarse como un usuario normal y verifica si el sitio web valida correctamente los datos ingresados, como el correo electrónico, la contraseña o el número de tarjeta de crédito.
    - El pentester explora las opciones disponibles para el usuario, como el carrito de compras, el historial de pedidos, el perfil o la configuración.
    - El pentester prueba diferentes entradas en los campos del sitio web, como la búsqueda, el filtro, el comentario o la calificación, y verifica si el sitio web es vulnerable a ataques como la inyección SQL, la inyección XSS o la falsificación de solicitudes entre sitios (CSRF).
    - El pentester analiza el código fuente del sitio web y busca posibles fallos de seguridad, como comentarios, credenciales, rutas o versiones.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- Método OSINT (Open Source Intelligence): Este método se basa en la recolección de información pública y accesible sobre el objetivo, usando fuentes como buscadores, redes sociales, bases de datos, registros públicos o medios de comunicación. Un ejemplo de cómo aplicar este método sería el siguiente:

    - El pentester usa un buscador como Bing o Google para encontrar información sobre Shoppy, como su dirección, su teléfono, su correo electrónico, su fecha de fundación o su misión.
    - El pentester usa redes sociales como Facebook, Twitter o LinkedIn para encontrar información sobre los empleados, los clientes o los competidores de Shoppy, como sus nombres, sus cargos, sus contactos o sus opiniones.
    - El pentester usa bases de datos como Shodan o Censys para encontrar información sobre los servidores, los dominios o los servicios asociados a Shoppy, como sus direcciones IP, sus puertos abiertos, sus sistemas operativos o sus certificados SSL.
    - El pentester usa registros públicos como WHOIS o DNS para encontrar información sobre la propiedad, el registro o la configuración del dominio shoppy.com, como su dueño, su proveedor, su fecha de expiración o sus registros A, MX o NS.
    - El pentester usa medios de comunicación como periódicos, revistas o blogs para encontrar información sobre la reputación, las noticias o los eventos relacionados con Shoppy, como sus logros, sus problemas, sus alianzas o sus promociones.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- Método automatizado: Este método consiste en usar herramientas informáticas que realizan las acciones de forma rápida y eficiente, siguiendo unos parámetros predefinidos. Un ejemplo de cómo aplicar este método sería el siguiente:

    - El pentester usa una herramienta como Nmap o Zmap para realizar un escaneo de puertos del dominio shoppy.com y descubrir qué servicios están corriendo y qué vulnerabilidades pueden tener.
    - El pentester usa una herramienta como Nikto o Wapiti para realizar un escaneo de vulnerabilidades del sitio web shoppy.com y detectar posibles fallos de seguridad, como directorios listables, archivos sensibles o cabeceras mal configuradas.
    - El pentester usa una herramienta como Hydra o John the Ripper para realizar un ataque de fuerza bruta al servicio SSH del servidor shoppy.com y tratar de adivinar las credenciales de acceso usando diccionarios o generando combinaciones.
    - El pentester usa una herramienta como Burp Suite o OWASP ZAP para realizar un análisis dinámico del sitio web shoppy.com y capturar e interceptar las peticiones y respuestas HTTP entre el cliente y el servidor.
    - El pentester usa una herramienta como DirBuster o Gobuster para realizar un ataque de fuerza bruta al sitio web shoppy.com y tratar de descubrir directorios o archivos ocultos usando listas predefinidas.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- Método mixto: Este método consiste en combinar los métodos anteriores para obtener una visión más completa y precisa del objetivo. Un ejemplo de cómo aplicar este método sería el siguiente:

    - El pentester usa una herramienta como Nmap para realizar un escaneo de puertos del dominio shoppy.com y descubre que el puerto 80 está abierto y que el servicio es Apache 2.4.41.
    - El pentester accede al sitio web shoppy.com y observa que tiene un formulario de inicio de sesión y un enlace a una página de administración.
    - El pentester usa una herramienta como Nikto para realizar un escaneo de vulnerabilidades del sitio web shoppy.com y detecta que la página de administración tiene una vulnerabilidad de inyección SQL.
    - El pentester explota la vulnerabilidad de inyección SQL usando una herramienta como sqlmap o manualmente y obtiene acceso a la base de datos del sitio web, donde encuentra los usuarios y las contraseñas de los administradores.
    - El pentester usa las credenciales obtenidas para iniciar sesión como administrador y acceder al panel de control del sitio web, donde puede modificar los productos, los precios o los pedidos.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

- Método de ingeniería social: Este método implica interactuar con personas y no solo con sistemas informáticos. Un ejemplo de cómo aplicar este método sería el siguiente:

    - El pentester usa el método OSINT para encontrar información sobre los empleados de Shoppy, como sus nombres, sus cargos, sus correos electrónicos o sus números de teléfono.
    - El pentester crea un correo electrónico falso que simula ser de Shoppy y que solicita a los empleados que ingresen a un enlace para verificar su identidad o actualizar su contraseña. El enlace lleva a una página falsa que captura las credenciales ingresadas.
    - El pentester llama por teléfono a los empleados de Shoppy y se hace pasar por un técnico de soporte o un cliente insatisfecho. El pentester trata de obtener información sensible o persuadir a los empleados para que realicen alguna acción, como abrir un archivo adjunto, descargar un programa o revelar una contraseña.
    - El pentester visita las instalaciones de Shoppy y se hace pasar por un repartidor, un mensajero o un auditor. El pentester trata de acceder a áreas restringidas, robar dispositivos, colocar dispositivos o observar las actividades.
    - El pentester deja un dispositivo USB infectado con un malware en el estacionamiento o la recepción de Shoppy. El pentester espera a que algún empleado lo encuentre y lo conecte a su computadora, lo que le permitirá al pentester tomar el control remoto del sistema.


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
'''

comandos = {
    "Ping Básico": f"ping {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ping simple al sitio web para verificar si está accesible.{COLOR_RESET}",
    "Ping con Intervalo de Tiempo Personalizado": f"ping -c 5 -i 0.2 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza 5 pings con un intervalo de 0.2 segundos entre ellos.{COLOR_RESET}",
    "Ping con Tamaño de Paquete Personalizado": f"ping -c 5 -s 100 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Envía paquetes de 100 bytes al sitio y registra si obtiene respuesta.{COLOR_RESET}",
    "Envío Indefinido de Paquetes": f"ping -i 1 -s 56 -D {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Envía paquetes de 56 bytes con intervalo de 1 segundo de forma indefinida.{COLOR_RESET}",
    "Registro de Resultados en un Archivo": f"ping -c 5 {COLOR_RED}https://objetivo.com{COLOR_RESET} > {COLOR_RED}resultados.txt{COLOR_RESET} - {COLOR_YELLOW}Realiza 5 pings y guarda los resultados en un archivo llamado 'resultados.txt'.{COLOR_RESET}",
    "Supresión de Resolución Inversa": f"ping -n -c 5 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza pings sin resolver direcciones IP inversas.{COLOR_RESET}",
    "Nmap Escaneo Básico de Puertos": f"nmap {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea los puertos abiertos en el objetivo y muestra información básica.{COLOR_RESET}",
    "Nmap Escaneo de Servicios y Sistema Operativo": f"nmap -sV -O {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Detecta versiones de servicios y sistema operativo del objetivo.{COLOR_RESET}",
    "Nmap Escaneo de Todos los Puertos y Scripts de Detección de Vulnerabilidades": f"nmap -p- -sV --script vuln {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea todos los puertos, detecta versiones y ejecuta scripts de detección de vulnerabilidades.{COLOR_RESET}",
    "Nmap Escaneo Rápido de los 1000 Puertos Más Comunes": f"nmap -F {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo rápido de los 1000 puertos más comunes.{COLOR_RESET}",
    "Nmap Escaneo UDP": f"nmap -sU {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea los puertos UDP abiertos en el objetivo.{COLOR_RESET}",
    "Nmap Escaneo de un Rango Personalizado de Puertos": f"nmap -p 80,443,8080 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea puertos específicos (80, 443 y 8080) en el objetivo.{COLOR_RESET}",
    "Nikto Escaneo Básico de Nikto": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de vulnerabilidades conocidas.{COLOR_RESET}",
    "Nikto Escaneo Completo de Nikto": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -C all - {COLOR_YELLOW}Realiza un escaneo completo, incluyendo todas las pruebas disponibles.{COLOR_RESET}",
    "Nikto Escaneo con Plugins de Vulnerabilidades": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -Plugins +vulnerabilities - {COLOR_YELLOW}Habilita plugins específicos que buscan vulnerabilidades en el sitio web.{COLOR_RESET}",
    "Nikto Escaneo SSL": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -ssl - {COLOR_YELLOW}Realiza un escaneo enfocado en SSL y sus vulnerabilidades.{COLOR_RESET}",
    "Nikto Escaneo Proxy": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -useproxy http://mi.proxy.com:8080 - {COLOR_YELLOW}Utiliza un proxy para realizar el escaneo.{COLOR_RESET}",
    "Nikto Escaneo Personalizado de Puertos": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -port 80,443 - {COLOR_YELLOW}Realiza el escaneo solo en los puertos 80 y 443.{COLOR_RESET}",
    "Dirb Escaneo Básico de Directorios": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de directorios y archivos ocultos en el objetivo.{COLOR_RESET}",
    "Dirb Escaneo con una Lista de Palabras Personalizada": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} /ruta/a/mi/wordlist.txt - {COLOR_YELLOW}Utiliza una lista de palabras personalizada para buscar directorios y archivos en el objetivo.{COLOR_RESET}",
    "Dirb Escaneo con Búsqueda de Extensiones Específicas": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -X .php,.html - {COLOR_YELLOW}Busca directorios y archivos con extensiones específicas, como .php y .html.{COLOR_RESET}",
    "Dirb Escaneo Recursivo": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -r - {COLOR_YELLOW}Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.{COLOR_RESET}",
    "Dirb Escaneo de Autenticación Básica": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -a usuario:contraseña - {COLOR_YELLOW}Realiza un escaneo en un sitio web que requiere autenticación básica HTTP.{COLOR_RESET}",
    "Dirb Escaneo con Límite de Tiempo Personalizado": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -t 30 - {COLOR_YELLOW}Establece un límite de tiempo para las solicitudes durante el escaneo.{COLOR_RESET}",
    "SQLMap Detección de Bases de Datos": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} - {COLOR_YELLOW}Detecta las bases de datos y las vulnerabilidades de inyección SQL en la URL proporcionada.{COLOR_RESET}",
    "SQLMap Enumeración de Bases de Datos": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --dbs - {COLOR_YELLOW}Enumera las bases de datos disponibles en el objetivo.{COLOR_RESET}",
    "SQLMap Enumeración de Tablas": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --dbs --tables - {COLOR_YELLOW}Enumera las tablas en una base de datos específica.{COLOR_RESET}",
    "SQLMap Explotación de una Inyección SQL": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --dump - {COLOR_YELLOW}Explota una vulnerabilidad de inyección SQL y recupera datos de la base de datos.{COLOR_RESET}",
    "SQLMap Escaneo de Inyección SQL a Ciegas": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --level 5 --risk 3 - {COLOR_YELLOW}Realiza un escaneo avanzado de inyección SQL a ciegas en el objetivo.{COLOR_RESET}",
    "SQLMap Explotación con Fuerza Bruta de Hashes": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --crack - {COLOR_YELLOW}Intenta crackear hashes de contraseñas recuperados de la base de datos.{COLOR_RESET}",
    "XSSer Escaneo Básico en Busca de Vulnerabilidades XSS": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} - {COLOR_YELLOW}Escanea la URL en busca de vulnerabilidades de Cross-Site Scripting (XSS).{COLOR_RESET}",
    "XSSer Escaneo con Enumeración de Enlaces Vulnerables": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -l - {COLOR_YELLOW}Escanea y enumera enlaces vulnerables a ataques XSS en la página.{COLOR_RESET}",
    "XSSer Escaneo con Análisis de Todas las Inyecciones de Parámetros": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -p all - {COLOR_YELLOW}Realiza un análisis exhaustivo de todas las inyecciones de parámetros en la URL.{COLOR_RESET}",
    "XSSer Escaneo con Filtrado Personalizado de Payloads": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -p all -fp 'mi_payload.txt' - {COLOR_YELLOW}Escanea utilizando payloads personalizados definidos en 'mi_payload.txt'.{COLOR_RESET}",
    "XSSer Escaneo con Límite de Tiempo Personalizado": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -t 10 - {COLOR_YELLOW}Establece un límite de tiempo para cada solicitud durante el escaneo.{COLOR_RESET}",
    "XSSer Escaneo con Seguimiento de Redirecciones": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -r - {COLOR_YELLOW}Realiza el escaneo siguiendo las redirecciones en la página web objetivo.{COLOR_RESET}",
    "Dnsrecon Escaneo Básico de DNS": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de registros DNS asociados al dominio.{COLOR_RESET}",
    "Dnsrecon Escaneo Utilizando Diccionario": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t std -D /ruta/a/mi/diccionario.txt - {COLOR_YELLOW}Utiliza un diccionario personalizado para realizar un escaneo exhaustivo de DNS.{COLOR_RESET}",
    "Dnsrecon Enumeración de Servidores de Nombres": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt - {COLOR_YELLOW}Enumera los servidores de nombres relacionados con el dominio.{COLOR_RESET}",
    "Dnsrecon Escaneo con un Límite de Tiempo Personalizado": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt -T 30 - {COLOR_YELLOW}Establece un límite de tiempo para el escaneo.{COLOR_RESET}",
    "Dnsrecon Escaneo en Búsqueda de Subdominios": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt -n - {COLOR_YELLOW}Busca subdominios relacionados con el dominio principal.{COLOR_RESET}",
    "Dnsrecon Escaneo Inverso de Direcciones IP": f"dnsrecon -r 192.168.1.1 - {COLOR_YELLOW}Realiza un escaneo inverso de una dirección IP específica.{COLOR_RESET}",
    "SQLNinja Detección de la Vulnerabilidad": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Detecta la vulnerabilidad de inyección SQL en el sitio web.{COLOR_RESET}",
    "SQLNinja Enumeración de Tablas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET}-m t - {COLOR_YELLOW}Enumera las tablas en la base de datos objetivo.{COLOR_RESET}",
    "SQLNinja Enumeración de Tablas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -tn - {COLOR_YELLOW}Enumera las tablas en la base de datos vulnerable.{COLOR_RESET}",
    "SQLNinja Enumeración de Columnas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -cn - {COLOR_YELLOW}Enumera las columnas en las tablas de la base de datos.{COLOR_RESET}",
    "SQLNinja Explotación de Inyección SQL": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -m {COLOR_RED}POST{COLOR_RESET} - {COLOR_YELLOW}Explota la vulnerabilidad de inyección SQL y recupera datos de la base de datos.{COLOR_RESET}",
    "SQLNinja Escalada de Privilegios": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -x {COLOR_RED}'EXEC sp_addsrvrolemember ''sysadmin'', ''usuario'';'{COLOR_RESET} - {COLOR_YELLOW}Realiza una escalada de privilegios para obtener control total del servidor SQL.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta SSH": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}ssh://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta SSH contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta FTP": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}ftp://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta FTP contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta Telnet": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}telnet://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta Telnet contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta HTTP POST": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}http-post://objetivo.com/login{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta HTTP POST contra un formulario de inicio de sesión.{COLOR_RESET}",
    "Gobuster Escaneo Básico de Directorios": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt - {COLOR_YELLOW}Realiza un escaneo básico de directorios en busca de directorios y archivos ocultos en el objetivo.{COLOR_RESET}",
    "Gobuster Escaneo con una Lista de Palabras Personalizada": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /ruta/a/mi/wordlist.txt - {COLOR_YELLOW}Utiliza una lista de palabras personalizada para buscar directorios en el objetivo.{COLOR_RESET}",
    "Gobuster Escaneo con Búsqueda de Extensiones Específicas": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/big.txt -x .php,.html - {COLOR_YELLOW}Busca directorios y archivos con extensiones específicas, como .php y .html.{COLOR_RESET}",
    "Gobuster Escaneo Recursivo": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -r - {COLOR_YELLOW}Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.{COLOR_RESET}",
    "Gobuster Escaneo de Autenticación Básica": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -U usuario -P contraseña - {COLOR_YELLOW}Escanea un sitio web que requiere autenticación HTTP básica.{COLOR_RESET}",
    "Gobuster Escaneo con Límite de Tiempo Personalizado": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -t 30 - {COLOR_YELLOW}Establece un límite de tiempo para las solicitudes durante el escaneo.{COLOR_RESET}"
}


tabla_de_comandos = [[comando, COLOR_PURPLE+descripcion+COLOR_RESET] for comando, descripcion in comandos.items()]    #conprension de lista para conseguir la tabla con los colores
tabla_de_comandos_terminada = (tabulate(tabla_de_comandos, headers=['DESCRIPCION','COMANDO','EXPLICACION'], tablefmt='grid'))

text_reconocimiento_pasivo = '''
BROWSER ---------------------------------> https://www.paimon.com.ar/
----------------------------------------

NMAP ---------------------------------> https://nmap.org/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/nmap
----------------------------------------

WAYBACKMACHINE ---------------------------------> https://archive.org/web/
----------------------------------------

MALTEGO ---------------------------------> https://www.maltego.com/
----------------------------------------

SHODAN ---------------------------------> https://www.shodan.io/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/shodan
----------------------------------------

CENSYS ---------------------------------> https://search.censys.io/
----------------------------------------

WEB-CHECK ---------------------------------> https://web-check.xyz/
----------------------------------------

THEHARVESTER ---------------------------------> https://github.com/laramies/theHarvester
----------------------------------------

GOOGLE DORKS ---------------------------------> https://www.google.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/google-dorking
----------------------------------------

WAPPALYZER ---------------------------------> https://www.wappalyzer.com/
----------------------------------------

DNSdumpster ---------------------------------> https://dnsdumpster.com/
----------------------------------------

ROBTEX ---------------------------------> https://www.robtex.com/#google_vignette
----------------------------------------

WHOIS ---------------------------------> https://who.is/
----------------------------------------

NSLOOKUP ---------------------------------> https://www.nslookup.io/
----------------------------------------

GHUNT ---------------------------------> https://github.com/mxrch/GHunt
----------------------------------------

LLANTUN ---------------------------------> https://github.com/lesandcl/Llaitun
----------------------------------------

DISCOVER ---------------------------------> https://github.com/leebaird/discover
----------------------------------------

SHERLOCK ---------------------------------> https://github.com/sherlock-project/sherlock
----------------------------------------

WHATWEB ---------------------------------> https://www.kali.org/tools/whatweb/
----------------------------------------

DIAGRAMAS ---------------------------------> https://app.diagrams.net/
----------------------------------------

P4INformesmentales ---------------------------------> https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/curso-hacking-con-python/tool-para-informes-de-mapas-mentales-p4informesmentales.py
----------------------------------------
'''

text_reconocimiento_forense = '''
AUTOPSY https://tools.kali.org/forensics/autopsy ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/autopsy-digital-forensics
----------------------------------------

VOLATILITY https://github.com/volatilityfoundation/volatility ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/volatility-memory-forensic
----------------------------------------

FTK https://www.accessdata.com/products-services/forensic-toolkit-ftk ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/ftk-digital-forensic  
----------------------------------------

DFF (Digital Forensics Framework) https://github.com/arxsys/dff
----------------------------------------

TSK (The Sleuth Kit) https://tools.kali.org/forensics/sleuthkit
----------------------------------------

X-WAYS Forensics https://www.x-ways.net/forensics/index-m.html
----------------------------------------

FOREMOST https://github.com/korczis/foremost
----------------------------------------

HxD https://mh-nexus.de/en/hxd/
----------------------------------------

WIRESHARK ---------------------------------> https://github.com/wireshark/wireshark ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/wireshark
----------------------------------------

TSHARK ---------------------------------> https://www.kali.org/tools/wireshark/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/tshark
----------------------------------------

XXD https://tools.kali.org/forensics/xxd
----------------------------------------
'''

text_reconocimiento_activo = '''
PING ---------------------------------> https://www.kali.org/tools/fping/
----------------------------------------

NMAP ---------------------------------> https://nmap.org/ --->PDF-TOOL
----------------------------------------

NESSUS ---------------------------------> https://es-la.tenable.com/products/nessus/nessus-essentials
----------------------------------------

OPENVAS ---------------------------------> https://github.com/greenbone/openvas-scanner
----------------------------------------

NIKTO ---------------------------------> https://github.com/sullo/nikto
----------------------------------------

METASPLOIT ---------------------------------> https://www.metasploit.com/ --->PDF-TOOL
----------------------------------------

BURP SUITE ---------------------------------> https://portswigger.net/web-security --->PDF-TOOL
----------------------------------------

OWASP ZAP ---------------------------------> https://github.com/zaproxy/zaproxy
---------------------------------------- 

WIRESHARK ---------------------------------> https://github.com/wireshark/wireshark ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/wireshark
----------------------------------------

DIRBUSTER ---------------------------------> https://github.com/KajanM/DirBuster ---> https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/dirbuster
----------------------------------------

SQLMAP ---------------------------------> https://github.com/sqlmapproject/sqlmap ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/sqlmap
----------------------------------------

WPSCAN ---------------------------------> https://wpscan.com/register/
----------------------------------------

JOOMSCAN ---------------------------------> https://www.kali.org/tools/joomscan/
----------------------------------------

GOBUSTER ---------------------------------> https://www.kali.org/tools/gobuster/
----------------------------------------

FFUF ---------------------------------> https://www.kali.org/tools/ffuf/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/ffuf
----------------------------------------

TRACEROUTE ---------------------------------> https://www.kali.org/tools/traceroute/
----------------------------------------

SMBCLIENT ---------------------------------> https://www.kali.org/tools/samba/
----------------------------------------

TELNET ---------------------------------> https://wowgold-seller.com/es/stories/133-how-to-install-and-use-telnet-on-kali-linux
----------------------------------------

SSH ---------------------------------> https://www.kali.org/tools/openssh/ --->PDF-TOOL
----------------------------------------

NETCAT ---------------------------------> https://www.kali.org/tools/netcat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/57/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/netcat-conexiones
----------------------------------------

FTP ---------------------------------> https://www.kali.org/tools/netkit-ftp/
----------------------------------------

TCPDUMP ---------------------------------> https://www.kali.org/tools/tcpdump/
----------------------------------------

TSHARK ---------------------------------> https://www.kali.org/tools/wireshark/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/tshark
----------------------------------------

BETTERCAP ---------------------------------> https://www.kali.org/tools/bettercap/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/bettercap
----------------------------------------

SMBMAP ---------------------------------> https://www.kali.org/tools/smbmap/
----------------------------------------

WFUZZ ---------------------------------> https://www.kali.org/tools/wfuzz/
----------------------------------------

COMMIX ---------------------------------> https://www.kali.org/tools/commix/
----------------------------------------

SKIP-FISH ---------------------------------> https://www.kali.org/tools/skipfish/
----------------------------------------

WAPITI ---------------------------------> https://www.kali.org/tools/wapiti/
----------------------------------------

ETTERCAP ---------------------------------> https://www.kali.org/tools/ettercap/
----------------------------------------

WIFITE ---------------------------------> https://www.kali.org/tools/wifite/
----------------------------------------

SPOOFTOOPH ---------------------------------> https://www.kali.org/tools/spooftooph/
----------------------------------------

CRACKMAPEXEC ---------------------------------> https://www.kali.org/tools/crackmapexec/
----------------------------------------
'''

text_reconocimiento_OSINT = '''
OSINT Framework ---------------------------------> https://osintframework.com/
----------------------------------------

Maltego ---------------------------------> https://www.kali.org/tools/maltego/
----------------------------------------

Recon-ng ---------------------------------> https://www.paimon.com.ar/
----------------------------------------

theHarvester ---------------------------------> https://www.kali.org/tools/theharvester/
----------------------------------------

GOOGLE DORKS ---------------------------------> https://www.google.com/ --->PDF-TOOL
----------------------------------------

SHODAN ---------------------------------> https://www.shodan.io/ --->PDF-TOOL
----------------------------------------

OSRFrameworK ---------------------------------> https://www.kali.org/tools/osrframework/
----------------------------------------

SN0INT ---------------------------------> https://www.kali.org/tools/sn0int/
----------------------------------------

OSINTGRAM ---------------------------------> https://github.com/Datalux/Osintgram
----------------------------------------

TWOSINT ---------------------------------> https://github.com/falkensmz/tw1tter0s1nt
----------------------------------------

INTELLIGENCE X FACEBOOK ---------------------------------> https://intelx.io/tools?tab=facebook
----------------------------------------

INTELLIGENCE X PERSONAS ---------------------------------> https://intelx.io/tools?tab=person
----------------------------------------

INTELLIGENCE X TELEFONOS ---------------------------------> https://intelx.io/tools?tab=telephone
----------------------------------------

INTELLIGENCE X Ubicación 2 Mapa ---------------------------------> https://intelx.io/tools?tab=location
----------------------------------------

INTELLIGENCE X IMAGEN ---------------------------------> https://intelx.io/tools?tab=image
----------------------------------------

INTELLIGENCE X NOMBRE DE USUARIO ---------------------------------> https://intelx.io/tools?tab=username
----------------------------------------

INTELLIGENCE X HASH INVERSA ---------------------------------> https://intelx.io/tools?tab=hash
----------------------------------------

INTELLIGENCE X ARCHIVOS ---------------------------------> https://intelx.io/tools?tab=file
----------------------------------------

INTELLIGENCE X VIN VEHICULOS ---------------------------------> https://intelx.io/tools?tab=vin
----------------------------------------

'''

text_reconocimiento_hashes_desencriptado = '''
JOHN THE RIPPER ---------------------------------> https://www.kali.org/tools/john/ ---> PDF-TOOL https://paimonhacking.gitbook.io/p4im0n_h4cking/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/john-the-ripper
----------------------------------------

HASHCAT ---------------------------------> https://www.kali.org/tools/hashcat/
----------------------------------------

RAINBOWCRACK ---------------------------------> https://www.kali.org/tools/rainbowcrack/
----------------------------------------

OPHCRACK ---------------------------------> https://www.kali.org/tools/ophcrack/
----------------------------------------

CRACKSTATION ---------------------------------> https://crackstation.net/
----------------------------------------

AIRCRACK-NG ---------------------------------> https://www.kali.org/tools/aircrack-ng/ ---> PDF-TOOL https://paimonhacking.gitbook.io/p4im0n_h4cking/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/aircrack-ng-wireless-wi-fi-auditoria-y-fuerza-bruta-a-handshake
----------------------------------------

CAIN Y ABEL ---------------------------------> https://github.com/xchwarze/Cain
----------------------------------------

HYDRA ---------------------------------> https://www.kali.org/tools/hydra/ ---> PDF-TOOL https://paimonhacking.gitbook.io/p4im0n_h4cking/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/hydra-fuerza-bruta
----------------------------------------

MEDUSA ---------------------------------> https://www.kali.org/tools/medusa/ ---> PDF-TOOL https://paimonhacking.gitbook.io/p4im0n_h4cking/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/medusa
----------------------------------------

DAVEGRO1 ---------------------------------> https://github.com/octomagon/davegrohl
----------------------------------------

ElcomSoft Distributed Password Recovery ---------------------------------> https://www.elcomsoft.es/edpr.html
----------------------------------------

CRACK RAR ---------------------------------> https://github.com/TermuxHackz/Crack-rar
----------------------------------------

CRACK NINJA RAR ---------------------------------> https://github.com/SHUR1K-N/RARNinja-RAR-Password-Cracking-Utility
----------------------------------------

NCRACK ---------------------------------> https://www.kali.org/tools/ncrack/
----------------------------------------

CEWL WORDLIST ---------------------------------> https://www.kali.org/tools/cewl/ --->PDF-TOOL
----------------------------------------

CRUNCH WORDLIST ---------------------------------> https://www.kali.org/tools/crunch/ --->PDF-TOOL
----------------------------------------

P4Iwordlists ---------------------------------> https://paimonhacking.gitbook.io/p4im0n_h4cking/curso-hacking-con-python/generador-de-wordlist-para-fuerza-bruta-p4iwordlist.py-1.2v
----------------------------------------

CYBERCHEF ---------------------------------> https://gchq.github.io/CyberChef/
----------------------------------------

BASE64 DECODE ---------------------------------> https://www.base64decode.org/
----------------------------------------'''

text_reconocimiento_fuerza_bruta_logins = '''
HYDRA ---------------------------------> https://www.kali.org/tools/hydra/ --->PDF-TOOL
----------------------------------------

MEDUSA ---------------------------------> https://www.kali.org/tools/medusa/ --->PDF-TOOL
----------------------------------------

NCRACK ---------------------------------> https://www.kali.org/tools/ncrack/
----------------------------------------

161 ONESIXTYONE ---------------------------------> https://www.kali.org/tools/onesixtyone/
----------------------------------------

THC-PPTP-BRUTER ---------------------------------> https://www.kali.org/tools/thc-pptp-bruter/
----------------------------------------

BURP SUITE ---------------------------------> https://portswigger.net/web-security ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/burpsuite
----------------------------------------

CRACKMAPEXEC ---------------------------------> https://www.kali.org/tools/crackmapexec/
----------------------------------------

CROWBAR RDP ---------------------------------> https://www.kali.org/tools/crowbar/
----------------------------------------

THE CRACKER PDF,ZIP,RAR,LOGIN ---------------------------------> https://github.com/XDeadHackerX/The_Cracker
----------------------------------------

THC-HYDRA ---------------------------------> https://github.com/vanhauser-thc/thc-hydra
----------------------------------------

T14M4T scaneo de servicios en puertos y fuerza bruta automatizado --------------------------------->https://github.com/MS-WEB-BN/t14m4t
----------------------------------------

FACEBOOK-BRUTE-FORCE ---------------------------------> https://github.com/likhonsible/Facebook-Brute-Force
----------------------------------------'''

text_reconocimiento_explot_y_payload = '''
METASPLOIT ---------------------------------> https://www.metasploit.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/metasploit
----------------------------------------

BURP SUITE ---------------------------------> https://portswigger.net/web-security ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/burpsuite
----------------------------------------

SEARCHSPLOIT ---------------------------------> https://www.kali.org/tools/exploitdb/
----------------------------------------

EXPLOITDB ---------------------------------> https://www.exploit-db.com/
----------------------------------------

GITHUB SEARCH ---------------------------------> https://github.com/search
----------------------------------------

AWESOMEHACKING ---------------------------------> https://awesomehacking.org/
----------------------------------------

NVD VULNERABILITIES BASE ---------------------------------> https://nvd.nist.gov/vuln
----------------------------------------

MSFVENOM PAYLOAD ---------------------------------> https://www.kali.org/tools/metasploit-framework/ ---> PDF-TOOL https://paimonhacking.gitbook.io/p4im0n_h4cking/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/msfvenom-generador-de-payloads
----------------------------------------

MSFPC PAYLOAD ---------------------------------> https://www.kali.org/tools/msfpc/
----------------------------------------

RAPID7 vulnerabilidades y exploits ---------------------------------> https://www.rapid7.com/db/
----------------------------------------

HACKTRICKS ---------------------------------> https://book.hacktricks.xyz/v/es/welcome/readme
----------------------------------------

HACKTOOL ---------------------------------> https://www.paimon.com.ar/
----------------------------------------'''

text_reconocimiento_explotacion = '''
NETCAT ---------------------------------> https://www.kali.org/tools/netcat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/57/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/netcat-conexiones
----------------------------------------

METASPLOIT ---------------------------------> https://www.metasploit.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/metasploit
----------------------------------------

SOCAT ---------------------------------> https://www.kali.org/tools/socat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/socat-conecciones
----------------------------------------

SSH TUNNELS ---------------------------------> https://www.openssh.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/libros-y-mas-pdf/port-forwarding-and-tunnelling-cheatsheet
----------------------------------------

SQLMAP ---------------------------------> https://github.com/sqlmapproject/sqlmap ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/sqlmap
----------------------------------------

CRACKMAPEXEC ---------------------------------> https://www.kali.org/tools/crackmapexec/
----------------------------------------

VELO ---------------------------------> https://github.com/Veil-Framework/Veil
----------------------------------------

WEB2ATTACK ---------------------------------> https://github.com/santatic/web2attack
----------------------------------------

COMMIX ---------------------------------> https://www.kali.org/tools/commix/
----------------------------------------

WEBSPLOIT ---------------------------------> https://github.com/The404Hacking/websploit
----------------------------------------

BEEF FRAMEWORK EXPLOTACION---------------------------------> https://www.kali.org/tools/beef-xss/
----------------------------------------

HACKTRICKS ---------------------------------> https://book.hacktricks.xyz/v/es/welcome/readme
----------------------------------------'''

text_reconocimiento_privilegios_windows = '''
NETCAT ---------------------------------> https://www.kali.org/tools/netcat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/57/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/netcat-conexiones
----------------------------------------

METASPLOIT ---------------------------------> https://www.metasploit.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/metasploit
----------------------------------------

SOCAT ---------------------------------> https://www.kali.org/tools/socat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/socat-conecciones
----------------------------------------

SSH TUNNELS ---------------------------------> https://www.openssh.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/libros-y-mas-pdf/port-forwarding-and-tunnelling-cheatsheet
----------------------------------------

POWERUP ---------------------------------> https://github.com/PowerShellEmpire/PowerTools/blob/master/PowerUp/PowerUp.ps1
----------------------------------------

LaZagne ---------------------------------> https://github.com/AlessandroZ/LaZagne ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/47/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/lazagne-obtencion-de-credenciales-y-posibles-escaladas-de-privilegios-para-windows-y-linux
----------------------------------------

MIMIKATZ ---------------------------------> https://www.kali.org/tools/mimikatz/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/47/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/mimikatz-obtencion-de-credenciales-y-posibles-escaladas-de-privilegios-para-windows
----------------------------------------

ROTTENPOTATO ---------------------------------> https://github.com/breenmachine/RottenPotatoNG
----------------------------------------

WINDOWS EXPLOITS SUGGESTER ---------------------------------> https://github.com/AonCyberLabs/Windows-Exploit-Suggester
----------------------------------------

ACCESSCHK ---------------------------------> https://github.com/ankh2054/windows-pentest
----------------------------------------

PSEXEC ---------------------------------> https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
----------------------------------------

WINPEAS ---------------------------------> https://www.kali.org/tools/peass-ng/ ---> https://github.com/carlospolop/PEASS-ng/tree/master/winPEAS
----------------------------------------

BLOODHOUND ---------------------------------> https://github.com/BloodHoundAD/BloodHound
----------------------------------------

CRACKMAPEXEC ---------------------------------> https://www.kali.org/tools/crackmapexec/
----------------------------------------

EMPIRE POWERSHELL Y LINUX ---------------------------------> https://www.kali.org/tools/powershell-empire/ -->https://github.com/EmpireProject/Empire
----------------------------------------

RESPONDER ---------------------------------> https://www.kali.org/tools/responder/ -->https://github.com/SpiderLabs/Responder
----------------------------------------

LOLBAS ---------------------------------> https://lolbas-project.github.io/#
----------------------------------------

WADCOMS comandos ---------------------------------> https://wadcoms.github.io/
----------------------------------------

HIJACKLIBS DLL ---------------------------------> https://hijacklibs.net/
----------------------------------------

PRINTSPOOFER ---------------------------------> https://github.com/itm4n/PrintSpoofer
----------------------------------------

ROGUEWINRM ---------------------------------> https://github.com/antonioCoco/RogueWinRM
----------------------------------------

WINDOWSPRIVESC metodos ---------------------------------> https://github.com/debiantano/WindowsPrivesc
----------------------------------------

PRIV-ESCALATION metodos ---------------------------------> https://github.com/KevinLiebergen/priv-escalation
----------------------------------------

FILESEC GTFO win y linux ---------------------------------> https://filesec.io/
----------------------------------------

HACKTRICKS ---------------------------------> https://book.hacktricks.xyz/v/es/welcome/readme
----------------------------------------

POWERSPLOIT ---------------------------------> https://www.kali.org/tools/powersploit/
----------------------------------------

EVIL-WINRM ---------------------------------> https://www.kali.org/tools/evil-winrm/
----------------------------------------
'''

text_reconocimiento_privilegios_linux = '''
NETCAT ---------------------------------> https://www.kali.org/tools/netcat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/57/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/netcat-conexiones
----------------------------------------

METASPLOIT ---------------------------------> https://www.metasploit.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/metasploit
----------------------------------------

SOCAT ---------------------------------> https://www.kali.org/tools/socat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/socat-conecciones
----------------------------------------

SSH TUNNELS ---------------------------------> https://www.openssh.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/libros-y-mas-pdf/port-forwarding-and-tunnelling-cheatsheet
----------------------------------------

LaZagne ---------------------------------> https://github.com/AlessandroZ/LaZagne ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/47/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/lazagne-obtencion-de-credenciales-y-posibles-escaladas-de-privilegios-para-windows-y-linux
----------------------------------------

GTFObins ---------------------------------> https://gtfobins.github.io/
----------------------------------------

LINUX KERNEL CVEs --------------------------------->https://www.linuxkernelcves.com/cves
----------------------------------------

LINENUM ---------------------------------> https://github.com/rebootuser/LinEnum
----------------------------------------

LINPEAS ---------------------------------> https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
----------------------------------------

ENUMERACION SMART LINUX ---------------------------------> https://github.com/diego-treitos/linux-smart-enumeration
----------------------------------------

LINUXPRIVCHECKER ---------------------------------> https://github.com/sleventyeleven/linuxprivchecker
----------------------------------------

LINUX EXPLOIT SUGGESTER ---------------------------------> https://github.com/The-Z-Labs/linux-exploit-suggester
----------------------------------------

HACKTRICKS ---------------------------------> https://book.hacktricks.xyz/v/es/welcome/readme
----------------------------------------

CHKROOTKIT ---------------------------------> https://github.com/Magentron/chkrootkit
----------------------------------------

LYNIS ---------------------------------> https://github.com/CISOfy/lynis
----------------------------------------

UNIX-PRIVESC-CHECK ---------------------------------> https://github.com/pentestmonkey/unix-privesc-check
----------------------------------------

DIRDTYCOW ---------------------------------> https://github.com/firefart/dirtycow
----------------------------------------

PRIV-ESCALATION metodos ---------------------------------> https://github.com/KevinLiebergen/priv-escalation
----------------------------------------

FILESEC GTFO win y linux ---------------------------------> https://filesec.io/
----------------------------------------

RESPONDER ---------------------------------> https://www.kali.org/tools/responder/ -->https://github.com/SpiderLabs/Responder
----------------------------------------'''

text_reconocimiento_pivoting = '''
SSH TUNNELS ---------------------------------> https://www.openssh.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/libros-y-mas-pdf/port-forwarding-and-tunnelling-cheatsheet
----------------------------------------

PROXYCHAINS ---------------------------------> https://github.com/rofl0r/proxychains-ng
----------------------------------------

SOCAT ---------------------------------> https://www.kali.org/tools/socat/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/socat-conecciones
----------------------------------------

NCAT ---------------------------------> https://nmap.org/ncat/
----------------------------------------

CHISEL ---------------------------------> https://github.com/jpillora/chisel ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/chisel-creacion-de-tunel-entre-servidores-local-y-remoto-tambien-para-aprovechar-pivoting
----------------------------------------

CORKSCREW ---------------------------------> https://github.com/bryanpkc/corkscrew
----------------------------------------

METASPLOIT ---------------------------------> https://www.metasploit.com/ ---> PDF-TOOL https://app.gitbook.com/o/7R5fPL7tMt73q9k0N7ZG/s/2rX5FvtpEjxBEKVG60XW/~/changes/46/manuales-de-tools-en-pdf-y-mas/tools-hacking-pdf/metasploit
----------------------------------------

METERPRETER ---------------------------------> https://www.metasploit.com/
----------------------------------------

REGEORG ---------------------------------> https://github.com/sensepost/reGeorg
----------------------------------------

RPIVOT ---------------------------------> https://github.com/klsecservices/rpivot
----------------------------------------'''


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
banner = f'''

__________  _____ .___ _______   _____                                                         __         .__                 
\______   \/  |  ||   |\      \_/ ____\___________  _____   ____   ______ _____   ____   _____/  |______  |  |   ____   ______
 |     ___/   |  ||   |/   |   \   __\/  _ \_  __ \/     \_/ __ \ /  ___//     \_/ __ \ /    \   __\__  \ |  | _/ __ \ /  ___/
 |    |  /    ^   /   /    |    \  | (  <_> )  | \/  Y Y  \  ___/ \___ \|  Y Y  \  ___/|   |  \  |  / __ \|  |_\  ___/ \___ \ 
 |____|  \____   ||___\____|__  /__|  \____/|__|  |__|_|  /\___  >____  >__|_|  /\___  >___|  /__| (____  /____/\___  >____  >
              |__|            \/                        \/     \/     \/      \/     \/     \/          \/          \/     \/ 
{COLOR_PURPLE}By P4IM0N{COLOR_RESET}'''
print(banner)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
def main():
    interructor = True
    try:
        # Crear o abrir el archivo en modo de escritura
        with open('P4InformeMentalPentesting.md', 'a') as archivo:
            # Recopilar información sobre la máquina objetivo
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LA EMPRESA O MAQUINA OBJETIVO: "+ COLOR_RESET)
            maquina_o_empresa_objetivo = ingresa_multipleslineas()
            archivo.write(f"# {maquina_o_empresa_objetivo}\n")  # Escribir el título de la máquina objetivo
            archivo.flush()
            
            # Agregar un cartel de "Descripción" antes del bucle de reconocimiento
            archivo.write("## DESCRIPCION\n")
            archivo.flush()
            
            sub_banner_menu = f'''
███████████████████████████
███████▀▀▀░░░░░░░▀▀▀███████
████▀░░░░░░░░░░░░░░░░░▀████
███│░░░░░░░░░░░░░░░░░░░│███
██▌│░░░░░░░░░░░░░░░░░░░│▐██
██░└┐░░░░░░░░░░░░░░░░░┌┘░██
██░░└┐░░░░░░░░░░░░░░░┌┘░░██
██░░┌┘▄▄▄▄▄░░░░░▄▄▄▄▄└┐░░██
██▌░│██{COLOR_PURPLE}{COLOR_RESET} ██▌░░░▐██{COLOR_PURPLE}{COLOR_RESET} ██│░▐██
███░│▐███▀▀░░▄░░▀▀███▌│░███
██▀─┘░░░░░░░▐█▌░░░░░░░└─▀██
██▄░░░▄▄▄▓░░▀█▀░░▓▄▄▄░░░▄██
████▄─┘██▌░░░░░░░▐██└─▄████
█████░░▐█─┬┬┬┬┬┬┬─█▌░░█████
████▌░░░▀┬┼┼┼┼┼┼┼┬▀░░░▐████
█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████
███████▄░░░░░░░░░░░▄███████
██████████▄▄▄▄▄▄▄██████████
████████████████{COLOR_PURPLE}By P4IM0N!!!{COLOR_RESET}
            '''
            menu_de_opciones = [[" 1. RECONOCIMIENTO PASIVO"], [" 2. ANALISIS FORENSE"], [" 3. RECONOCIMIENTO ACTIVO"], [" 4. INVESTIGACION OSINT"], [" 5. HASHES Y DESENCRIPTADOS"], [" 6. FUERZA BRUTA A LOGINS"], [" 7. SCRIPT DE EXPLOIT Y PAYLOADS"], [" 8. EXPLOTACION"], [" 9. ESCALADA DE PRIVILEGIOS WINDOWS"], [" 10. ESCALADA DE PRIVILEGIOS LINUX"], [" 11. PIVOTING"], [" 12. VISTA PREVIA"], [" 13. AYUDA"], [" 14. FINALIZAR PENTESTING"]]
            
            while True:
                # Recopilar descripciones o información sobre la máquina objetivo
                print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"INGRESE DESCRIPCIONES O INFORMACION EXTRA DE LA EMPRESA O MAQUINA A REALIZAR EL PENTESTING: "+COLOR_RESET)
                description = ingresa_multipleslineas()
                print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                # Agregar la descripción al nivel de la sección de "Descripción"
                archivo.write(f"{description}\n")  # Escribir la descripción
                archivo.flush()
                
                # Agregar un cartel de "Reconocimiento" después de la descripción
                archivo.write("#### RECONOCIMIENTO\n")
                archivo.flush()
                
                while True:
                    
                    tabla_de_opciones = tabulate(menu_de_opciones, ['Nº OPCION'], tablefmt='grid')
                    print(sub_banner_menu)
                    print(tabla_de_opciones)
                    
                    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                    elige_opcion = input(COLOR_RED+"ELIJA EL TIPO DE RECONOCIMIENTO QUE REALIZARA: "+COLOR_RESET)

                    if elige_opcion == '1':
                        archivo.write("##### RECONOCIMIENTO PASIVO\n")
                        investigacion_reconocimiento_pasivo(archivo)  
                        archivo.flush()
                    elif elige_opcion == '2':
                        archivo.write("##### ANALISIS FORENSE\n")
                        investigacion_analisis_forense(archivo)  
                        archivo.flush()
                    elif elige_opcion == '3':
                        archivo.write("##### RECONOCIMIENTO ACTIVO\n")
                        investigacion_reconocimiento_activo(archivo)  
                        archivo.flush()
                    elif elige_opcion == '4':
                        archivo.write("##### INVESTIGACION OSINT\n")
                        investigacion_investigacion_osint(archivo)
                        archivo.flush()
                    elif elige_opcion == '5':
                        archivo.write("##### HASHES Y DESENCRIPTADOS\n")
                        investigacion_hashes_y_desencriptados(archivo)
                        archivo.flush()
                    elif elige_opcion == '6':
                        archivo.write("##### FUERZA BRUTA A LOGINS\n")
                        investigacion_fuerza_bruta_logins(archivo)
                        archivo.flush()
                    elif elige_opcion == '7':
                        archivo.write("##### SCRIPT DE EXPLOIT Y PAYLOADS\n")
                        investigacion_script_exploit_y_payload(archivo)
                        archivo.flush()
                    elif elige_opcion == '8':
                        archivo.write("##### EXPLOTACION\n")
                        investigacion_explotacion(archivo)
                        archivo.flush() 
                    elif elige_opcion == '9':
                        archivo.write("##### ESCALADA DE PRIVILEGIOS WINDOWS\n")
                        investigacion_escalada_privilegios_windows(archivo)
                        archivo.flush()
                    elif elige_opcion == '10':
                        archivo.write("##### ESCALADA DE PRIVILEGIOS LINUX\n")
                        investigacion_escalada_privilegios_linux(archivo)
                        archivo.flush()  
                    elif elige_opcion == '11':
                        archivo.write("##### PIVOTING\n")
                        investigacion_pivoting(archivo)
                        archivo.flush()                     
                    elif elige_opcion == '12':
                        investigacion_vista_previa()
                    elif elige_opcion == '13':
                        leer_ayuda(ayuda)
                    elif elige_opcion == '14':
                        print("Pentesting finalizado. Gracias por usar P4Informesmentales manito.")                                      
                        return
                    else:
                        print("Opción no válida 8( ")

                

    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        
#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#permite ingresar multiples lineas, signos, hacer saltos de lineas, maneja limites de escrituras OK
def ingresa_multipleslineas(max_chars_per_line=100):
    try:
        lista_lineas_ingresadas = []
        print(COLOR_PURPLE+'---------------------------------------------'+COLOR_RESET)
        print(COLOR_PURPLE+'Manito preciona (f) y ENTER para continuar /'+COLOR_RESET)
        print(COLOR_PURPLE+'-------------------------------------------'+COLOR_RESET)
        while True:
            linea = input()
            linea = linea.strip()  # Eliminar espacios en blanco y saltos de línea al principio y al final
            # Eliminar almohadillas, guiones, signos más y espacios al principio de cada línea
            linea = linea.lstrip('#-+ ')
            
            if linea.upper() == 'F' or linea.upper() == 'STOP':
                break
            
            
            # Dividir la línea en segmentos más pequeños si supera el límite de caracteres por línea
            while len(linea) > max_chars_per_line:
                segmento = linea[:max_chars_per_line]
                lista_lineas_ingresadas.append(segmento)
                linea = linea[max_chars_per_line:]
            
            lista_lineas_ingresadas.append(linea)
            
        
        return '\n'.join(lista_lineas_ingresadas)
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al ingresar texto en bruto Manito, proba sacar algun simbolo que este causando el conflicto: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        return ""


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Permite ingresar comandos en tiempo real y ser mostrados y guardados en el .md
def ejecutar_comandos():
    try:
        print(tabla_de_comandos_terminada)
        archivo_nombre = 'P4InformeMentalPentesting.md'
        with open(archivo_nombre, "a") as archivo_mapa:
            archivo_mapa.write("- COMANDO:\n")
            archivo_mapa.write('''  - ┌──(root㉿kalipaimon)-[/]
  - └─# ''')
            
            while True:
                print(COLOR_PURPLE+'----------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_PURPLE+"MANITO, INGRESA EL COMANDO A EJECUTAR (o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'---------------------------------------------------------------------'+COLOR_RESET)
                comando = input(f'''- {COLOR_YELLOW}┌──{COLOR_RESET}{COLOR_PURPLE}({COLOR_RESET}{COLOR_RED}root{COLOR_RESET}{COLOR_PURPLE}{COLOR_RESET}{COLOR_RED}kalipaimon{COLOR_RESET}{COLOR_PURPLE}){COLOR_RESET}{COLOR_YELLOW}-[{COLOR_RESET}{COLOR_RED}/{COLOR_RESET}{COLOR_YELLOW}]
- └─{COLOR_RESET}#  ''')
                if comando.lower() == 'fin':
                    break

                archivo_mapa.write(comando + '\n')

                proceso = subprocess.Popen(comando, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)    
                for linea in proceso.stdout:
                    print(linea, end='')  # Imprime en tiempo real en la terminal
                    archivo_mapa.write('  - ' + linea)  # Escribe lo de la terminal en el archivo

        print(COLOR_YELLOW+"\n\nManito el resultado quedo guardado en"+COLOR_RESET, archivo_nombre)

    except subprocess.CalledProcessError as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print("Error al ejecutar el comando manito:", error)
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
    except KeyboardInterrupt:
        print(COLOR_PURPLE+'---------------------------------------------'+COLOR_RESET)
        print("\n\nComando cancelado.")        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Metodo para procesar el analisis RECONOCIMIENTO PASIVO      
def investigacion_reconocimiento_pasivo(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE RECONOCIMIENTO PASIVO /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_pasivo)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// RECONOCIMIENTO PASIVO /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
             
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA RESULTADOS COMPLETOS: "+COLOR_RESET)    
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()

            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
        
                    
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO RECONOCIMIENTO PASIVO? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis MANUAL Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
          
#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el ANALISIS FORENSE
def investigacion_analisis_forense(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE FORENSE /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_forense)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// ANALISIS FORENSE /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANALISIS FORENSE? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis RECONOCIMIENTO ACTIVO
def investigacion_reconocimiento_activo(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE RECONOCIMIENTO ACTIVO /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_activo)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// RECONOCIMIENTO ACTIVO /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO RECONOCIMIENTO ACTIVO? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis INVESTIGACION OSINT
def investigacion_investigacion_osint(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE RECONOCIMIENTO OSINT /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_OSINT)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// INVESTIGACION OSINT /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRA INVESTIGACION OSINT? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis HASHES Y DESENCRIPTADOS
def investigacion_hashes_y_desencriptados(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE HASHES Y DESENCRIPTADO /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_hashes_desencriptado)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HASHES Y DESENCRIPTADOS /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANALISIS DE HASHES Y DESENCRIPTADOS? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        
        
        
#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis FUERZA BRUTA A LOGINS
def investigacion_fuerza_bruta_logins(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE FUERZA BRUTA A LOGINS /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_fuerza_bruta_logins)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// FUERZA BRUTA A LOGINS /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRA FUERZA BRUTA A LOGINS? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        



#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis SCRIPT DE EXPLOIT Y PAYLOAD
def investigacion_script_exploit_y_payload(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE SCRIPT DE EXPLOIT Y PAYLOAD /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_explot_y_payload)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// SCRIPT DE EXPLOIT Y PAYLOAD /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO SCRIPT DE EXPLOIT Y PAYLOAD? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)                                        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis de EXPLOTACION
def investigacion_explotacion(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE EXPLOTACION /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_explotacion)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// EXPLOTACION /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            herramienta = ingresa_multipleslineas()
            archivo.write(f"###### HERRAMIENTA: {herramienta}\n")  # Escribir el título de la herramienta
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultado = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_de_resultado in resultado.splitlines():
                archivo.write(f"  - {cada_linea_de_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar resultados importantes como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            resultados_importantes = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_resultado_importante in resultados_importantes.splitlines():
                archivo.write(f"  - {cada_linea_resultado_importante}\n")  # Escribir resultados importantes como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otra_herramienta = input(COLOR_RED+"¿QUERES USAR OTRA EXPLOTACION? (s/n): "+COLOR_RESET)
            if otra_herramienta.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis AUTOMATIZADO Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Método para procesar el análisis ESCALADAD DE PRIVILEGIOS WINDOWS 
def investigacion_escalada_privilegios_windows(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE RECONOCIMIENTO ESCALADA PRIVILEGIOS WINDOWS /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_privilegios_windows)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// ESCALADAD DE PRIVILEGIOS WINDOWS /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANLISIS DE ESCALADAD DE PRIVILEGIOS WINDOWS? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis de INGENIERIA SOCIAL Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Método para procesar el análisis ESCALADA DE PRIVILEGIOS LINUX
def investigacion_escalada_privilegios_linux(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE ESCALADA DE PRIVILEGIOS LINUX /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_privilegios_linux)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// ESCALADAD DE PRIVILEGIOS LINUX /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()
                
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANALISIS DE ESCALADA DE PRIVILEGIOS LINUX? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis MIXTO Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis de PIVOTING
def investigacion_pivoting(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// HERRAMIENTAS DE PIVOTING /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(text_reconocimiento_pivoting)
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(f'{COLOR_PURPLE}/////////////////// PIVOTING /////////////////////{COLOR_RESET}')
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL METODO O HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            herramienta = ingresa_multipleslineas()
            archivo.write(f"###### HERRAMIENTA: {herramienta}\n")  # Escribir el título de la herramienta
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultado = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_de_resultado in resultado.splitlines():
                archivo.write(f"  - {cada_linea_de_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar resultados importantes como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            resultados_importantes = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_resultado_importante in resultados_importantes.splitlines():
                archivo.write(f"  - {cada_linea_resultado_importante}\n")  # Escribir resultados importantes como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otra_herramienta = input(COLOR_RED+"¿QUERES USAR OTRA HERRAMIENTA DE PIVOTING? (s/n): "+COLOR_RESET)
            if otra_herramienta.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis AUTOMATIZADO Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)



#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#abrir XMIN para VISTA PREVIA
def investigacion_vista_previa():
    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
    print(f'{COLOR_PURPLE}/////////////////// VISTA PREVIA DEL MAPA MENTAL EN XMIND /////////////////////{COLOR_RESET}')
    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
    archivo = "P4InformeMentalPentesting"
    # Comando para abrir el archivo .md con Xmind
    comando = ["xmind", "open", f'/home/paimon/actualizacionP4Informesmentales-borrardirectorio/{archivo}.md']    

    # Ejecuta el comando
    try:
        subprocess.run(comando, check=True)
    except subprocess.CalledProcessError as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Error al abrir el archivo con Xmind manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#ver menu de AYUDA
def leer_ayuda(ayuda):
    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
    print(f'{COLOR_PURPLE}/////////////////// AYUDA /////////////////////{COLOR_RESET}')
    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
    try:
        print(ayuda)
         
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f'Se produjo un error manito: {error}')
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
if __name__ == "__main__":
    main()


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


```
// Some code VERSION VIEJA

```python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!programa para automatizar a traves de una interfas dinamica de ingresos de datos guiada para que se valla creando un reporte en formato MARKDOWN y asi tambien poder realizar con el en XMIND un mapa mental ya estructurado al qeu aparte podriamos personalizar despues con imagenes recolectadas,etc
#! P4INformesmentales.py 2.0v- By P4IM0N

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!TESTEADO EN KALI LINUX, LIBRERIAS E INSTALACION DE LAS MISMAS EN CASO DE NO TENERLAS
# Bibliotecas necesarias para el funcionamientoo:
# -subprocess: Para ejecutar comandos y capturar su la salida.
   #Podes instalarlo con el siguiente comando:
    #? pip install subprocess
# -tabulate: Para crear tablas a partir de datos en listas.
   #Podes instalarlo con el siguiente commando:
    #? pip install tabulate

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Importamos librerias
from tabulate import tabulate
import subprocess

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Códigos de escape ANSI para cambiar el color del texto en la terminal
COLOR_RED = "\033[91m"
COLOR_PURPLE = '\x1b[35m'
COLOR_YELLOW = "\033[93m"
COLOR_RESET = "\033[0m"

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
'''comandos = {
    "Ping Básico": "ping https://objetivo.com - Realiza un ping simple al sitio web para verificar si está accesible.",
    "Ping con Intervalo de Tiempo Personalizado": "ping -c 5 -i 0.2 https://objetivo.com - Realiza 5 pings con un intervalo de 0.2 segundos entre ellos.",
    "Ping con Tamaño de Paquete Personalizado": "ping -c 5 -s 100 https://objetivo.com - Envía paquetes de 100 bytes al sitio y registra si obtiene respuesta.",
    "Envío Indefinido de Paquetes": "ping -i 1 -s 56 -D https://objetivo.com - Envía paquetes de 56 bytes con intervalo de 1 segundo de forma indefinida.",
    "Registro de Resultados en un Archivo": "ping -c 5 https://objetivo.com > resultados.txt - Realiza 5 pings y guarda los resultados en un archivo llamado 'resultados.txt'.",
    "Supresión de Resolución Inversa": "ping -n -c 5 https://objetivo.com - Realiza pings sin resolver direcciones IP inversas.",
    "Nmap Escaneo Básico de Puertos": "nmap https://objetivo.com - Escanea los puertos abiertos en el objetivo y muestra información básica.",
    "Nmap Escaneo de Servicios y Sistema Operativo": "nmap -sV -O https://objetivo.com - Detecta versiones de servicios y sistema operativo del objetivo.",
    "Nmap Escaneo de Todos los Puertos y Scripts de Detección de Vulnerabilidades": "nmap -p- -sV --script vuln https://objetivo.com - Escanea todos los puertos, detecta versiones y ejecuta scripts de detección de vulnerabilidades.",
    "Nmap Escaneo Rápido de los 1000 Puertos Más Comunes": "nmap -F https://objetivo.com - Realiza un escaneo rápido de los 1000 puertos más comunes.",
    "Nmap Escaneo UDP": "nmap -sU https://objetivo.com - Escanea los puertos UDP abiertos en el objetivo.",
    "Nmap Escaneo de un Rango Personalizado de Puertos": "nmap -p 80,443,8080 https://objetivo.com - Escanea puertos específicos (80, 443 y 8080) en el objetivo.",
    "Nikto Escaneo Básico de Nikto": "nikto -h https://objetivo.com - Realiza un escaneo básico en busca de vulnerabilidades conocidas.",
    "Nikto Escaneo Completo de Nikto": "nikto -h https://objetivo.com -C all - Realiza un escaneo completo, incluyendo todas las pruebas disponibles.",
    "Nikto Escaneo con Plugins de Vulnerabilidades": "nikto -h https://objetivo.com -Plugins +vulnerabilities - Habilita plugins específicos que buscan vulnerabilidades en el sitio web.",
    "Nikto Escaneo SSL": "nikto -h https://objetivo.com -ssl - Realiza un escaneo enfocado en SSL y sus vulnerabilidades.",
    "Nikto Escaneo Proxy": "nikto -h https://objetivo.com -useproxy http://mi.proxy.com:8080 - Utiliza un proxy para realizar el escaneo.",
    "Nikto Escaneo Personalizado de Puertos": "nikto -h https://objetivo.com -port 80,443 - Realiza el escaneo solo en los puertos 80 y 443.",
    "Dirb Escaneo Básico de Directorios": "dirb https://objetivo.com - Realiza un escaneo básico en busca de directorios y archivos ocultos en el objetivo.",
    "Dirb Escaneo con una Lista de Palabras Personalizada": "dirb https://objetivo.com /ruta/a/mi/wordlist.txt - Utiliza una lista de palabras personalizada para buscar directorios y archivos en el objetivo.",
    "Dirb Escaneo con Búsqueda de Extensiones Específicas": "dirb https://objetivo.com -X .php,.html - Busca directorios y archivos con extensiones específicas, como .php y .html.",
    "Dirb Escaneo Recursivo": "dirb https://objetivo.com -r - Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.",
    "Dirb Escaneo de Autenticación Básica": "dirb https://objetivo.com -a usuario:contraseña - Realiza un escaneo en un sitio web que requiere autenticación básica HTTP.",
    "Dirb Escaneo con Límite de Tiempo Personalizado": "dirb https://objetivo.com -t 30 - Establece un límite de tiempo para las solicitudes durante el escaneo.",
    "SQLMap Detección de Bases de Datos": "sqlmap -u 'https://objetivo.com/page?id=1' - Detecta las bases de datos y las vulnerabilidades de inyección SQL en la URL proporcionada.",
    "SQLMap Enumeración de Bases de Datos": "sqlmap -u 'https://objetivo.com/page?id=1' --dbs - Enumera las bases de datos disponibles en el objetivo.",
    "SQLMap Enumeración de Tablas": "sqlmap -u 'https://objetivo.com/page?id=1' --dbs --tables - Enumera las tablas en una base de datos específica.",
    "SQLMap Explotación de una Inyección SQL": "sqlmap -u 'https://objetivo.com/page?id=1' --data 'parametro=valor' --dump - Explota una vulnerabilidad de inyección SQL y recupera datos de la base de datos.",
    "SQLMap Escaneo de Inyección SQL a Ciegas": "sqlmap -u 'https://objetivo.com/page?id=1' --data 'parametro=valor' --level 5 --risk 3 - Realiza un escaneo avanzado de inyección SQL a ciegas en el objetivo.",
    "SQLMap Explotación con Fuerza Bruta de Hashes": "sqlmap -u 'https://objetivo.com/page?id=1' --data 'parametro=valor' --crack - Intenta crackear hashes de contraseñas recuperados de la base de datos.",
    "XSSer Escaneo Básico en Busca de Vulnerabilidades XSS": "xsstrike -u 'https://objetivo.com' - Escanea la URL en busca de vulnerabilidades de Cross-Site Scripting (XSS).",
    "XSSer Escaneo con Enumeración de Enlaces Vulnerables": "xsstrike -u 'https://objetivo.com' -l - Escanea y enumera enlaces vulnerables a ataques XSS en la página.",
    "XSSer Escaneo con Análisis de Todas las Inyecciones de Parámetros": "xsstrike -u 'https://objetivo.com' -p all - Realiza un análisis exhaustivo de todas las inyecciones de parámetros en la URL.",
    "XSSer Escaneo con Filtrado Personalizado de Payloads": "xsstrike -u 'https://objetivo.com' -p all -fp 'mi_payload.txt' - Escanea utilizando payloads personalizados definidos en 'mi_payload.txt'.",
    "XSSer Escaneo con Límite de Tiempo Personalizado": "xsstrike -u 'https://objetivo.com' -t 10 - Establece un límite de tiempo para cada solicitud durante el escaneo.",
    "XSSer Escaneo con Seguimiento de Redirecciones": "xsstrike -u 'https://objetivo.com' -r - Realiza el escaneo siguiendo las redirecciones en la página web objetivo.",
    "Dnsrecon Escaneo Básico de DNS": "dnsrecon -d https://objetivo.com - Realiza un escaneo básico en busca de registros DNS asociados al dominio.",
    "Dnsrecon Escaneo Utilizando Diccionario": "dnsrecon -d https://objetivo.com -t std -D /ruta/a/mi/diccionario.txt - Utiliza un diccionario personalizado para realizar un escaneo exhaustivo de DNS.",
    "Dnsrecon Enumeración de Servidores de Nombres": "dnsrecon -d https://objetivo.com -t brt - Enumera los servidores de nombres relacionados con el dominio.",
    "Dnsrecon Escaneo con un Límite de Tiempo Personalizado": "dnsrecon -d https://objetivo.com -t brt -T 30 - Establece un límite de tiempo para el escaneo.",
    "Dnsrecon Escaneo en Búsqueda de Subdominios": "dnsrecon -d https://objetivo.com -t brt -n - Busca subdominios relacionados con el dominio principal.",
    "Dnsrecon Escaneo Inverso de Direcciones IP": "dnsrecon -r 192.168.1.1 - Realiza un escaneo inverso de una dirección IP específica.",
    "SQLNinja Detección de la Vulnerabilidad": "sqlninja -i https://objetivo.com - Detecta la vulnerabilidad de inyección SQL en el sitio web.",
    "SQLNinja Enumeración de Tablas": "sqlninja -i https://objetivo.com -m t - Enumera las tablas en la base de datos objetivo.",
    "SQLNinja Enumeración de Columnas": "sqlninja -i https://objetivo.com -m c - Enumera las columnas en las tablas de la base de datos.",
    "SQLNinja Explotación de Inyección SQL": "sqlninja -i https://objetivo.com -m s - Explota la vulnerabilidad de inyección SQL y recupera información de la base de datos.",
    "SQLNinja Escaneo de Credenciales": "sqlninja -i https://objetivo.com -m u - Escanea y recupera credenciales de la base de datos.",
    "SQLNinja Explotación con Fuerza Bruta": "sqlninja -i https://objetivo.com -m f - Intenta adivinar contraseñas utilizando un ataque de fuerza bruta.",
    "Gobuster Escaneo Básico de Directorios": "gobuster dir -u https://objetivo.com -w /usr/share/wordlists/dirb/common.txt - Realiza un escaneo básico de directorios en busca de directorios y archivos ocultos en el objetivo.",
    "Gobuster Escaneo con una Lista de Palabras Personalizada": "gobuster dir -u https://objetivo.com -w /ruta/a/mi/wordlist.txt - Utiliza una lista de palabras personalizada para buscar directorios en objetivo",
    "Gobuster Escaneo con Búsqueda de Extensiones Específicas": "gobuster dir -u https://objetivo.com -w /usr/share/wordlists/dirb/big.txt -x .php,.html - Busca directorios y archivos con extensiones específicas, como .php y .html.",
    "Gobuster Escaneo Recursivo": "gobuster dir -u https://objetivo.com -w /usr/share/wordlists/dirb/common.txt -r - Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.",
    "Gobuster Escaneo de Autenticación Básica": "gobuster dir -u https://objetivo.com -w /usr/share/wordlists/dirb/common.txt -U usuario -P contraseña - Escanea un sitio web que requiere autenticación HTTP básica.",
    "Gobuster Escaneo con Límite de Tiempo Personalizado": "gobuster dir -u https://objetivo.com -w /usr/share/wordlists/dirb/common.txt -t 30 - Establece un límite de tiempo para las solicitudes durante el escaneo."
}'''

comandos = {
    "Ping Básico": f"ping {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ping simple al sitio web para verificar si está accesible.{COLOR_RESET}",
    "Ping con Intervalo de Tiempo Personalizado": f"ping -c 5 -i 0.2 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza 5 pings con un intervalo de 0.2 segundos entre ellos.{COLOR_RESET}",
    "Ping con Tamaño de Paquete Personalizado": f"ping -c 5 -s 100 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Envía paquetes de 100 bytes al sitio y registra si obtiene respuesta.{COLOR_RESET}",
    "Envío Indefinido de Paquetes": f"ping -i 1 -s 56 -D {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Envía paquetes de 56 bytes con intervalo de 1 segundo de forma indefinida.{COLOR_RESET}",
    "Registro de Resultados en un Archivo": f"ping -c 5 {COLOR_RED}https://objetivo.com{COLOR_RESET} > {COLOR_RED}resultados.txt{COLOR_RESET} - {COLOR_YELLOW}Realiza 5 pings y guarda los resultados en un archivo llamado 'resultados.txt'.{COLOR_RESET}",
    "Supresión de Resolución Inversa": f"ping -n -c 5 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza pings sin resolver direcciones IP inversas.{COLOR_RESET}",
    "Nmap Escaneo Básico de Puertos": f"nmap {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea los puertos abiertos en el objetivo y muestra información básica.{COLOR_RESET}",
    "Nmap Escaneo de Servicios y Sistema Operativo": f"nmap -sV -O {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Detecta versiones de servicios y sistema operativo del objetivo.{COLOR_RESET}",
    "Nmap Escaneo de Todos los Puertos y Scripts de Detección de Vulnerabilidades": f"nmap -p- -sV --script vuln {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea todos los puertos, detecta versiones y ejecuta scripts de detección de vulnerabilidades.{COLOR_RESET}",
    "Nmap Escaneo Rápido de los 1000 Puertos Más Comunes": f"nmap -F {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo rápido de los 1000 puertos más comunes.{COLOR_RESET}",
    "Nmap Escaneo UDP": f"nmap -sU {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea los puertos UDP abiertos en el objetivo.{COLOR_RESET}",
    "Nmap Escaneo de un Rango Personalizado de Puertos": f"nmap -p 80,443,8080 {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Escanea puertos específicos (80, 443 y 8080) en el objetivo.{COLOR_RESET}",
    "Nikto Escaneo Básico de Nikto": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de vulnerabilidades conocidas.{COLOR_RESET}",
    "Nikto Escaneo Completo de Nikto": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -C all - {COLOR_YELLOW}Realiza un escaneo completo, incluyendo todas las pruebas disponibles.{COLOR_RESET}",
    "Nikto Escaneo con Plugins de Vulnerabilidades": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -Plugins +vulnerabilities - {COLOR_YELLOW}Habilita plugins específicos que buscan vulnerabilidades en el sitio web.{COLOR_RESET}",
    "Nikto Escaneo SSL": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -ssl - {COLOR_YELLOW}Realiza un escaneo enfocado en SSL y sus vulnerabilidades.{COLOR_RESET}",
    "Nikto Escaneo Proxy": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -useproxy http://mi.proxy.com:8080 - {COLOR_YELLOW}Utiliza un proxy para realizar el escaneo.{COLOR_RESET}",
    "Nikto Escaneo Personalizado de Puertos": f"nikto -h {COLOR_RED}https://objetivo.com{COLOR_RESET} -port 80,443 - {COLOR_YELLOW}Realiza el escaneo solo en los puertos 80 y 443.{COLOR_RESET}",
    "Dirb Escaneo Básico de Directorios": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de directorios y archivos ocultos en el objetivo.{COLOR_RESET}",
    "Dirb Escaneo con una Lista de Palabras Personalizada": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} /ruta/a/mi/wordlist.txt - {COLOR_YELLOW}Utiliza una lista de palabras personalizada para buscar directorios y archivos en el objetivo.{COLOR_RESET}",
    "Dirb Escaneo con Búsqueda de Extensiones Específicas": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -X .php,.html - {COLOR_YELLOW}Busca directorios y archivos con extensiones específicas, como .php y .html.{COLOR_RESET}",
    "Dirb Escaneo Recursivo": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -r - {COLOR_YELLOW}Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.{COLOR_RESET}",
    "Dirb Escaneo de Autenticación Básica": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -a usuario:contraseña - {COLOR_YELLOW}Realiza un escaneo en un sitio web que requiere autenticación básica HTTP.{COLOR_RESET}",
    "Dirb Escaneo con Límite de Tiempo Personalizado": f"dirb {COLOR_RED}https://objetivo.com{COLOR_RESET} -t 30 - {COLOR_YELLOW}Establece un límite de tiempo para las solicitudes durante el escaneo.{COLOR_RESET}",
    "SQLMap Detección de Bases de Datos": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} - {COLOR_YELLOW}Detecta las bases de datos y las vulnerabilidades de inyección SQL en la URL proporcionada.{COLOR_RESET}",
    "SQLMap Enumeración de Bases de Datos": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --dbs - {COLOR_YELLOW}Enumera las bases de datos disponibles en el objetivo.{COLOR_RESET}",
    "SQLMap Enumeración de Tablas": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --dbs --tables - {COLOR_YELLOW}Enumera las tablas en una base de datos específica.{COLOR_RESET}",
    "SQLMap Explotación de una Inyección SQL": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --dump - {COLOR_YELLOW}Explota una vulnerabilidad de inyección SQL y recupera datos de la base de datos.{COLOR_RESET}",
    "SQLMap Escaneo de Inyección SQL a Ciegas": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --level 5 --risk 3 - {COLOR_YELLOW}Realiza un escaneo avanzado de inyección SQL a ciegas en el objetivo.{COLOR_RESET}",
    "SQLMap Explotación con Fuerza Bruta de Hashes": f"sqlmap -u {COLOR_RED}'https://objetivo.com/page?id=1'{COLOR_RESET} --data 'parametro=valor' --crack - {COLOR_YELLOW}Intenta crackear hashes de contraseñas recuperados de la base de datos.{COLOR_RESET}",
    "XSSer Escaneo Básico en Busca de Vulnerabilidades XSS": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} - {COLOR_YELLOW}Escanea la URL en busca de vulnerabilidades de Cross-Site Scripting (XSS).{COLOR_RESET}",
    "XSSer Escaneo con Enumeración de Enlaces Vulnerables": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -l - {COLOR_YELLOW}Escanea y enumera enlaces vulnerables a ataques XSS en la página.{COLOR_RESET}",
    "XSSer Escaneo con Análisis de Todas las Inyecciones de Parámetros": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -p all - {COLOR_YELLOW}Realiza un análisis exhaustivo de todas las inyecciones de parámetros en la URL.{COLOR_RESET}",
    "XSSer Escaneo con Filtrado Personalizado de Payloads": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -p all -fp 'mi_payload.txt' - {COLOR_YELLOW}Escanea utilizando payloads personalizados definidos en 'mi_payload.txt'.{COLOR_RESET}",
    "XSSer Escaneo con Límite de Tiempo Personalizado": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -t 10 - {COLOR_YELLOW}Establece un límite de tiempo para cada solicitud durante el escaneo.{COLOR_RESET}",
    "XSSer Escaneo con Seguimiento de Redirecciones": f"xsstrike -u {COLOR_RED}'https://objetivo.com'{COLOR_RESET} -r - {COLOR_YELLOW}Realiza el escaneo siguiendo las redirecciones en la página web objetivo.{COLOR_RESET}",
    "Dnsrecon Escaneo Básico de DNS": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un escaneo básico en busca de registros DNS asociados al dominio.{COLOR_RESET}",
    "Dnsrecon Escaneo Utilizando Diccionario": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t std -D /ruta/a/mi/diccionario.txt - {COLOR_YELLOW}Utiliza un diccionario personalizado para realizar un escaneo exhaustivo de DNS.{COLOR_RESET}",
    "Dnsrecon Enumeración de Servidores de Nombres": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt - {COLOR_YELLOW}Enumera los servidores de nombres relacionados con el dominio.{COLOR_RESET}",
    "Dnsrecon Escaneo con un Límite de Tiempo Personalizado": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt -T 30 - {COLOR_YELLOW}Establece un límite de tiempo para el escaneo.{COLOR_RESET}",
    "Dnsrecon Escaneo en Búsqueda de Subdominios": f"dnsrecon -d {COLOR_RED}https://objetivo.com{COLOR_RESET} -t brt -n - {COLOR_YELLOW}Busca subdominios relacionados con el dominio principal.{COLOR_RESET}",
    "Dnsrecon Escaneo Inverso de Direcciones IP": f"dnsrecon -r 192.168.1.1 - {COLOR_YELLOW}Realiza un escaneo inverso de una dirección IP específica.{COLOR_RESET}",
    "SQLNinja Detección de la Vulnerabilidad": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Detecta la vulnerabilidad de inyección SQL en el sitio web.{COLOR_RESET}",
    "SQLNinja Enumeración de Tablas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET}-m t - {COLOR_YELLOW}Enumera las tablas en la base de datos objetivo.{COLOR_RESET}",
    "SQLNinja Enumeración de Tablas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -tn - {COLOR_YELLOW}Enumera las tablas en la base de datos vulnerable.{COLOR_RESET}",
    "SQLNinja Enumeración de Columnas": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -cn - {COLOR_YELLOW}Enumera las columnas en las tablas de la base de datos.{COLOR_RESET}",
    "SQLNinja Explotación de Inyección SQL": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -m {COLOR_RED}POST{COLOR_RESET} - {COLOR_YELLOW}Explota la vulnerabilidad de inyección SQL y recupera datos de la base de datos.{COLOR_RESET}",
    "SQLNinja Escalada de Privilegios": f"sqlninja -i {COLOR_RED}https://objetivo.com{COLOR_RESET} -x {COLOR_RED}'EXEC sp_addsrvrolemember ''sysadmin'', ''usuario'';'{COLOR_RESET} - {COLOR_YELLOW}Realiza una escalada de privilegios para obtener control total del servidor SQL.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta SSH": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}ssh://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta SSH contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta FTP": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}ftp://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta FTP contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta Telnet": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}telnet://objetivo.com{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta Telnet contra un servidor remoto.{COLOR_RESET}",
    "Hydra Ataque de Fuerza Bruta HTTP POST": f"hydra -l usuario -P /ruta/a/mi/lista_de_contraseñas.txt {COLOR_RED}http-post://objetivo.com/login{COLOR_RESET} - {COLOR_YELLOW}Realiza un ataque de fuerza bruta HTTP POST contra un formulario de inicio de sesión.{COLOR_RESET}",
    "Gobuster Escaneo Básico de Directorios": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt - {COLOR_YELLOW}Realiza un escaneo básico de directorios en busca de directorios y archivos ocultos en el objetivo.{COLOR_RESET}",
    "Gobuster Escaneo con una Lista de Palabras Personalizada": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /ruta/a/mi/wordlist.txt - {COLOR_YELLOW}Utiliza una lista de palabras personalizada para buscar directorios en el objetivo.{COLOR_RESET}",
    "Gobuster Escaneo con Búsqueda de Extensiones Específicas": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/big.txt -x .php,.html - {COLOR_YELLOW}Busca directorios y archivos con extensiones específicas, como .php y .html.{COLOR_RESET}",
    "Gobuster Escaneo Recursivo": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -r - {COLOR_YELLOW}Realiza un escaneo recursivo para buscar directorios y archivos en profundidad.{COLOR_RESET}",
    "Gobuster Escaneo de Autenticación Básica": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -U usuario -P contraseña - {COLOR_YELLOW}Escanea un sitio web que requiere autenticación HTTP básica.{COLOR_RESET}",
    "Gobuster Escaneo con Límite de Tiempo Personalizado": f"gobuster dir -u {COLOR_RED}https://objetivo.com{COLOR_RESET} -w /usr/share/wordlists/dirb/common.txt -t 30 - {COLOR_YELLOW}Establece un límite de tiempo para las solicitudes durante el escaneo.{COLOR_RESET}"
}


tabla_de_comandos = [[comando, COLOR_PURPLE+descripcion+COLOR_RESET] for comando, descripcion in comandos.items()]    #conprension de lista para conseguir la tabla con los colores
tabla_de_comandos_terminada = (tabulate(tabla_de_comandos, headers=['DESCRIPCION','COMANDO','EXPLICACION'], tablefmt='grid'))
#print(tabla_de_comandos_terminada)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
banner = f'''

__________  _____ .___ _______   _____                                                         __         .__                 
\______   \/  |  ||   |\      \_/ ____\___________  _____   ____   ______ _____   ____   _____/  |______  |  |   ____   ______
 |     ___/   |  ||   |/   |   \   __\/  _ \_  __ \/     \_/ __ \ /  ___//     \_/ __ \ /    \   __\__  \ |  | _/ __ \ /  ___/
 |    |  /    ^   /   /    |    \  | (  <_> )  | \/  Y Y  \  ___/ \___ \|  Y Y  \  ___/|   |  \  |  / __ \|  |_\  ___/ \___ \ 
 |____|  \____   ||___\____|__  /__|  \____/|__|  |__|_|  /\___  >____  >__|_|  /\___  >___|  /__| (____  /____/\___  >____  >
              |__|            \/                        \/     \/     \/      \/     \/     \/          \/          \/     \/ 
{COLOR_PURPLE}By P4IM0N{COLOR_RESET}'''
print(banner)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
def main():
    try:
        # Crear o abrir el archivo en modo de escritura
        with open('P4InformeMentalPentesting.md', 'a') as archivo:
            # Recopilar información sobre la máquina objetivo
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LA EMPRESA O MAQUINA OBJETIVO: "+ COLOR_RESET)
            maquina_o_empresa_objetivo = ingresa_multipleslineas()
            archivo.write(f"# {maquina_o_empresa_objetivo}\n")  # Escribir el título de la máquina objetivo
            archivo.flush()
            
            # Agregar un cartel de "Descripción" antes del bucle de reconocimiento
            archivo.write("## DESCRIPCION\n")
            archivo.flush()
            
            sub_banner_menu = f'''
███████████████████████████
███████▀▀▀░░░░░░░▀▀▀███████
████▀░░░░░░░░░░░░░░░░░▀████
███│░░░░░░░░░░░░░░░░░░░│███
██▌│░░░░░░░░░░░░░░░░░░░│▐██
██░└┐░░░░░░░░░░░░░░░░░┌┘░██
██░░└┐░░░░░░░░░░░░░░░┌┘░░██
██░░┌┘▄▄▄▄▄░░░░░▄▄▄▄▄└┐░░██
██▌░│██{COLOR_PURPLE}█{COLOR_RESET} ██▌░░░▐██{COLOR_PURPLE}█{COLOR_RESET} ██│░▐██
███░│▐███▀▀░░▄░░▀▀███▌│░███
██▀─┘░░░░░░░▐█▌░░░░░░░└─▀██
██▄░░░▄▄▄▓░░▀█▀░░▓▄▄▄░░░▄██
████▄─┘██▌░░░░░░░▐██└─▄████
█████░░▐█─┬┬┬┬┬┬┬─█▌░░█████
████▌░░░▀┬┼┼┼┼┼┼┼┬▀░░░▐████
█████▄░░░└┴┴┴┴┴┴┴┘░░░▄█████
███████▄░░░░░░░░░░░▄███████
██████████▄▄▄▄▄▄▄██████████
████████████████{COLOR_PURPLE}By P4IM0N!!!{COLOR_RESET}
            '''
            menu_de_opciones = [[" 1. MANUAL"], [" 2. OSINT"], [" 3. AUTOMATIZADO"], [" 4. INGENIERIA SOCIAL"], [" 5. MIXTO"],[" 6. VISTA PREVIA"],[" 7. AYUDA"],[" 8. FINALIZAR PENTESTING"]]
            
            while True:
                # Recopilar descripciones o información sobre la máquina objetivo
                print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"INGRESE DESCRIPCIONES O INFORMACION EXTRA DE LA EMPRESA O MAQUINA A REALIZAR EL PENTESTING: "+COLOR_RESET)
                description = ingresa_multipleslineas()
                print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                # Agregar la descripción al nivel de la sección de "Descripción"
                archivo.write(f"{description}\n")  # Escribir la descripción
                archivo.flush()
                
                # Agregar un cartel de "Reconocimiento" después de la descripción
                archivo.write("#### RECONOCIMIENTO\n")
                archivo.flush()
                
                while True:
                    
                    tabla_de_opciones = tabulate(menu_de_opciones, ['Nº OPCION'], tablefmt='grid')
                    print(sub_banner_menu)
                    print(tabla_de_opciones)
                    
                    print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
                    elige_opcion = input(COLOR_RED+"ELIJA EL TIPO DE RECONOCIMIENTO QUE REALIZARA: "+COLOR_RESET)

                    if elige_opcion == '1':
                        archivo.write("##### MANUAL\n")
                        investigacion_manual(archivo)  # Llamar al método para procesar el análisis manual
                        archivo.flush()
                    elif elige_opcion == '2':
                        archivo.write("##### OSINT\n")
                        investigacion_osint(archivo)  # Llamar al método para procesar el análisis OSINT
                        archivo.flush()
                    elif elige_opcion == '3':
                        archivo.write("##### AUTOMATIZADO\n")
                        investigacion_automatizada(archivo)  # Llamar al método para procesar el análisis automatizado
                        archivo.flush()
                    elif elige_opcion == '4':
                        archivo.write("##### INGENIERIA SOCIAL\n")
                        investigacion_ing_social(archivo)
                        archivo.flush()
                    elif elige_opcion == '5':
                        archivo.write("##### MIXTO\n")
                        investigacion_mixto(archivo)
                        archivo.flush()
                    elif elige_opcion == '6':
                        investigacion_vista_previa()
                    elif elige_opcion == '7':
                        leer_ayuda()
                    elif elige_opcion == '8':
                        print("Pentesting finalizado.")
                        return
                    else:
                        print("Opción no válida 8( ")

                

    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        
#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#permite ingresar multiples lineas, signos, hacer saltos de lineas, maneja limites de escrituras OK
def ingresa_multipleslineas(max_chars_per_line=100):
    try:
        lista_lineas_ingresadas = []
        print(COLOR_PURPLE+'---------------------------------------------'+COLOR_RESET)
        print(COLOR_PURPLE+'Manito preciona (f) y ENTER para continuar /'+COLOR_RESET)
        print(COLOR_PURPLE+'-------------------------------------------'+COLOR_RESET)
        while True:
            linea = input()
            linea = linea.strip()  # Eliminar espacios en blanco y saltos de línea al principio y al final
            # Eliminar almohadillas, guiones, signos más y espacios al principio de cada línea
            linea = linea.lstrip('#-+ ')
            
            if linea.upper() == 'F' or linea.upper() == 'STOP':
                break
            
            
            # Dividir la línea en segmentos más pequeños si supera el límite de caracteres por línea
            while len(linea) > max_chars_per_line:
                segmento = linea[:max_chars_per_line]
                lista_lineas_ingresadas.append(segmento)
                linea = linea[max_chars_per_line:]
            
            lista_lineas_ingresadas.append(linea)
            
        
        return '\n'.join(lista_lineas_ingresadas)
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al ingresar texto en bruto Manito, proba sacar algun simbolo que este causando el conflicto: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        return ""


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Permite ingresar comandos en tiempo real y ser mostrados y guardados en el .md
def ejecutar_comandos():
    try:
        print(tabla_de_comandos_terminada)
        archivo_nombre = 'P4InformeMentalPentesting.md'
        with open(archivo_nombre, "a") as archivo_mapa:
            archivo_mapa.write("- COMANDO:\n")
            archivo_mapa.write('''  - ┌──(root㉿kalipaimon)-[/]
  - └─# ''')
            
            while True:
                print(COLOR_PURPLE+'----------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_PURPLE+"MANITO, INGRESA EL COMANDO A EJECUTAR (o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'---------------------------------------------------------------------'+COLOR_RESET)
                comando = input(f'''- {COLOR_YELLOW}┌──{COLOR_RESET}{COLOR_PURPLE}({COLOR_RESET}{COLOR_RED}root{COLOR_RESET}{COLOR_PURPLE}㉿{COLOR_RESET}{COLOR_RED}kalipaimon{COLOR_RESET}{COLOR_PURPLE}){COLOR_RESET}{COLOR_YELLOW}-[{COLOR_RESET}{COLOR_RED}/{COLOR_RESET}{COLOR_YELLOW}]
- └─{COLOR_RESET}#  ''')
                if comando.lower() == 'fin':
                    break

                archivo_mapa.write(comando + '\n')

                proceso = subprocess.Popen(comando, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
                for linea in proceso.stdout:
                    print(linea, end='')  # Imprime en tiempo real en la terminal
                    archivo_mapa.write('  - ' + linea)  # Escribe lo de la terminal en el archivo

        print(COLOR_YELLOW+"\n\nManito el resultado quedo guardado en"+COLOR_RESET, archivo_nombre)

    except subprocess.CalledProcessError as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print("Error al ejecutar el comando manito:", error)
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
    except KeyboardInterrupt:
        print(COLOR_PURPLE+'---------------------------------------------'+COLOR_RESET)
        print("\n\nComando cancelado.")        

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#Metodo para procesar el analisis MANUAL      
def investigacion_manual(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL TIPO DE ANALISIS [[MANUAL]] QUE VAS A HACER: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
             
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA RESULTADOS COMPLETOS: "+COLOR_RESET)    
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()

            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
        
                    
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANÁLISIS MANUAL? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis MANUAL Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
          
#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis OSINT
def investigacion_osint(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL TIPO DE ANALISIS OSINT QUE VAS A HACER: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultado in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"DAME TUS CONCLUSIONES MANITO: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- CONCLUSIONES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANALISIS OSINT? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis OSINT Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
# Método para procesar el análisis automatizado
def investigacion_automatizada(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME LA HERRAMIENTA QUE VAS A USAR: "+COLOR_RESET)
            herramienta = ingresa_multipleslineas()
            archivo.write(f"###### HERRAMIENTA: {herramienta}\n")  # Escribir el título de la herramienta
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultado = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_de_resultado in resultado.splitlines():
                archivo.write(f"  - {cada_linea_de_resultado}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar resultados importantes como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            resultados_importantes = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_resultado_importante in resultados_importantes.splitlines():
                archivo.write(f"  - {cada_linea_resultado_importante}\n")  # Escribir resultados importantes como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otra_herramienta = input(COLOR_RED+"¿QUERES USAR OTRA HERRAMIENTA MANITO? (s/n): "+COLOR_RESET)
            if otra_herramienta.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis AUTOMATIZADO Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Método para procesar el análisis Ingenieria social
def investigacion_ing_social(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL TIPO DE ANALISIS DE [[INGENIERIA SOCIAL]] QUE VAS A HACER: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()
            
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANLISIS DE INGENIERIA SOCIAL? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis de INGENIERIA SOCIAL Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Método para procesar el análisis mixto
def investigacion_mixto(archivo):
    try:
        while True:
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO DECIME EL TIPO DE ANALISIS [[MIXTO]] QUE VAS A HACER: "+COLOR_RESET)
            tipo_de_analisis = ingresa_multipleslineas()
            archivo.write(f"###### {tipo_de_analisis}\n")  # Escribir el título del tipo de análisis
            archivo.flush()
            
            # Agregar para ejecutar comandos y guardar con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
             
            print(COLOR_RED+"MANITO, ¿QUERES EJECUTAR UN COMANDO? (s/n): "+COLOR_RESET)
            ejecutar_comando = input()
            if ejecutar_comando.lower() == 's':
                print(COLOR_PURPLE+'-----------------------------------------------------------------------------------------------'+COLOR_RESET)
                print(COLOR_RED+"MANITO, PARA INGRESA EL COMANDO A EJECUTAR PRESIONA ((ENTER)),(o escribe 'fin' para salir): /"+COLOR_RESET)
                print(COLOR_PURPLE+'----------------------------------------------------------------------------------------------'+COLOR_RESET)
                comando = input()
                if comando.lower() == 'fin':
                    break  # Salir del loop si se ingresa "fin"
                ejecutar_comandos()
            
            # Agregar resultados como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"INGRESA LOS RESULTADOS COMPLETOS MANITO: "+COLOR_RESET)
            resultados = ingresa_multipleslineas()
            archivo.write("- RESULTADOS:\n")
            for cada_linea_resultados in resultados.splitlines():
                archivo.write(f"  - {cada_linea_resultados}\n")  # Escribir resultados como listas
                archivo.flush()
                
            # Agregar conclusiones como listas con guiones
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            print(COLOR_RED+"MANITO INGRESA LO IMPORTANTE QUE SACASTE DE LOS RESULTADOS: "+COLOR_RESET)
            conclusiones = ingresa_multipleslineas()
            archivo.write("- RESULTADOS IMPORTANTES:\n")
            for cada_linea_conclusiones in conclusiones.splitlines():
                archivo.write(f"  - {cada_linea_conclusiones}\n")  # Escribir conclusiones como listas
                archivo.flush()
            
            print(COLOR_YELLOW+'-------------------------------------------------------------------------------------------------------'+COLOR_RESET)
            otro_analisis = input(COLOR_RED+"¿MANITO QUERES HACER OTRO ANALISIS MIXTO? (s/n): "+COLOR_RESET)
            if otro_analisis.lower() != 's':
                break
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Se produjo un error al procesar el análisis MIXTO Manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#abrir XMIN para vista previa
def investigacion_vista_previa():
    archivo = "P4InformeMentalPentesting.md"
    # Comando para abrir el archivo .md con Xmind
    comando = ["xmind", "open", f'/home/paimon/cursopythonhacking/herramientaparainformesYmapamental/{archivo}.md']

    # Ejecuta el comando
    try:
        subprocess.run(comando, check=True)
    except subprocess.CalledProcessError as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f"Error al abrir el archivo con Xmind manito: {error}")
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
#ver menu de AYUDA
def leer_ayuda():
    try:
        # Abrir el archivo en modo de lectura ('r')
        with open('ayuda.txt', 'r') as archivo:
            # Realiza las operaciones de lectura aquí
            contenido = archivo.read()
            return print(COLOR_YELLOW+contenido+COLOR_RESET)  # Esto imprimirá el contenido 
    except Exception as error:
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)
        print(f'Se produjo un error manito: {error}')
        print(COLOR_RED+'***********************************************************************************************************'+COLOR_RESET)

#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------        
if __name__ == "__main__":
    main()


#?-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


```

Last updated