elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Python (Moderador: Danielㅤ)
| | |-+  [APORTE] Blue_Shield - Programa enfocado en defensivo
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [APORTE] Blue_Shield - Programa enfocado en defensivo  (Leído 50 veces)
W17CH3R

Conectado Conectado

Mensajes: 123



Ver Perfil
[APORTE] Blue_Shield - Programa enfocado en defensivo
« en: Hoy a las 15:40 »

BIENVENIDOS/AS
ACTUALIZADO 24/4/2025 - 16:16

Bienvenidos a mi post, en la que creado un programa en lenguaje Python, que ejecutara varias opciones, como ver las especificaciones de su equipo, analizar la red y realizar un análisis con el antivirus Clamav.



Es muy importante tener instalado fastfetch y clamav, para ello abrimos un terminal y ejecutamos lo siguiente:

Código
  1. sudo apt-get install fastfetch
  2. sudo apt install clamav-daemon

Una vez lo tengamos instalados, descargamos mi herramienta Blue_Shield con el siguiente comando:

Código
  1. git clone https://github.com/W17CHeR/Blue_Shield.git

Una vez descargado, tendremos que ejecutarlo con permisos sudo, de lo contrario nos dará un mensaje de error al ejecutar netstat en la segunda opción del programa.

Código
  1. sudo python3 Blue_Shield.py

Cuando lo ejecutemos, como podrán comprobar, añadido un art ASCII de un escudo azul, referencia al nombre del programa Blue_Shield, y la bienvenida al programa y sus 3 opciones y Q para salir, tal como muestro en la siguiente captura:



El código del programa es el siguiente:

Código
  1. # -------------------------------------------------------
  2. # Bienvenido al programa de Blue_Shield
  3. # -------------------------------------------------------
  4.  
  5. import os
  6. import subprocess
  7.  
  8. def mostrar_ascii_azul():
  9.    ascii_art = r"""
  10.            .                                  
  11.                                 :--===.                                
  12.                             .:--:    .=++=.                            
  13.                     .::::-::.    :--=.   .=+**#*+=-                    
  14.                    .:.      ..-----=-==+=:       *#                    
  15.                    .:. :::::-------==+++++++*#%. *#                    
  16.                    .:. :::---------==++++++***#. *#                    
  17.                    .-. ::--------=-=++++******#. *#                    
  18.                    .-: :---------==+++*******#%  #*                    
  19.                     -: .------=====+******####@  %=                    
  20.                     :-  =---====++++******#*##= :%.                    
  21.                     .=. :--====++++***#*######  #%                    
  22.                      ==  =====++++*****######% .%-                    
  23.                      .=: .++++++****#######*@  %#                      
  24.                       :+. .+++*****########%  %@                      
  25.                        :+. .******#######%%  @%                        
  26.                         .**  **#######%#%- .%@                        
  27.                           #*.  ####%##%+  *%+                          
  28.                            :##.  **%@:  +@%                            
  29.                              .#%-     %%#                              
  30.                                 ##%=%%=                                
  31.                                 .:=%-..
  32.    """
  33.    print("\033[94m" + ascii_art + "\033[0m")  # 94 = azul claro ANSI
  34.  
  35. def mostrar_presentacion():
  36.    print("="*75)
  37.    print("     Bienvenido a Blue_Shield".center(75))
  38.    print("="*75)
  39.    print("Esta herramienta te mostrara en CLI una lista de programas de Python".center(50))
  40.    print("="*75)
  41.    print()
  42.  
  43. def mostrar_menu():
  44.    scripts = {
  45.        "1": ("Mostrar especificaciones del sistema", "./specs.py"),
  46.        "2": ("Mostrar el uso de la red", "./network_usage.py"),
  47.        "3": ("Antivirus Clamav", "./antivirus_usage.py"),
  48.    }
  49.  
  50.    while True:
  51.        print("Menu de opciones:")
  52.        for key, value in scripts.items():
  53.            print(f"{key}. {value[0]}")
  54.  
  55.        opcion = input("Selecciona una opción (1-3) o 'q' para salir: ")
  56.        if opcion == 'q':
  57.            print("Saliendo del programa...")
  58.            break
  59.        elif opcion in scripts:
  60.            script_path = scripts[opcion][1]
  61.            if os.path.exists(script_path):
  62.                try:
  63.                    subprocess.run(["python", script_path], check=True)
  64.                except subprocess.CalledProcessError as e:
  65.                    print(f"Error al ejecutar el script: {e}")
  66.            else:
  67.                print(f"El script {script_path} no existe.")
  68.        else:
  69.            print("Opción no válida. Intenta de nuevo.")
  70.  
  71. if __name__ == "__main__":
  72.    mostrar_ascii_azul()
  73.    mostrar_presentacion()
  74.    mostrar_menu()
  75.    print("Gracias por usar Blue_Shield. ¡Hasta luego!")
  76.  
  77. # -------------------------------------------------------
  78. # Programa creado por Sergio (aka W17CHeR)
  79. # -------------------------------------------------------

Una vez ejecutemos la primera opción, nos volverá a preguntar si queremos ver las especificaciones, le marcamos 1 y se nos ejecutara fastfetch, como ocurre en la siguiente captura:



Cuyo código de specs.py es el siguiente:

Código
  1. import subprocess
  2. import os
  3.  
  4. def mostrar_presentacion():
  5.    print("="*75)
  6.    print("     Bienvenido a Specs".center(75))
  7.    print("="*75)
  8.    print("Esta herramienta te mostrará en CLI las especificaciones de tu equipo".center(75))
  9.    print("="*75)
  10.    print()
  11.  
  12. def ejecutar_fastfetch():
  13.    print("\nEjecutando Fastfetch...\n")
  14.    try:
  15.        subprocess.run(["fastfetch"], check=True)
  16.    except FileNotFoundError:
  17.        print("Error: 'fastfetch' no está instalado o no se encuentra en el PATH.")
  18.    except subprocess.CalledProcessError as e:
  19.        print(f"Ocurrió un error al ejecutar fastfetch: {e}")
  20.  
  21. def menu_post_ejecucion():
  22.    while True:
  23.        print("\n¿Qué deseas hacer ahora?")
  24.        print("1. Volver al menú principal de Blue_Shield")
  25.        print("q. Salir")
  26.        opcion = input("Selecciona una opción: ").strip()
  27.  
  28.        if opcion == "1":
  29.            # ✅ Reemplaza el proceso actual con Blue_Shield.py
  30.            os.execlp("python", "python", "Blue_Shield.py")
  31.        elif opcion.lower() == "q":
  32.            print("Saliendo del programa...")
  33.            break
  34.        else:
  35.            print("Opción no válida. Intenta de nuevo.")
  36.  
  37. def mostrar_menu():
  38.    while True:
  39.        print("\nMenú de opciones:")
  40.        print("1. Mostrar especificaciones del sistema (fastfetch)")
  41.        print("q. Salir")
  42.  
  43.        opcion = input("Selecciona una opción: ").strip()
  44.        if opcion == 'q':
  45.            print("Saliendo del programa...")
  46.            break
  47.        elif opcion == "1":
  48.            ejecutar_fastfetch()
  49.            menu_post_ejecucion()
  50.            break  # Salimos del menú después de regresar o salir
  51.        else:
  52.            print("Opción no válida. Intenta de nuevo.")
  53.  
  54. if __name__ == "__main__":
  55.    mostrar_presentacion()
  56.    mostrar_menu()
  57.    print("Gracias por usar Specs. ¡Hasta luego!")

Cuando seleccionemos la segunda opción del programa, nos preguntara si deseamos ejecutar nmap o netstat, tal como muestro en las 2 capturas siguientes:




El código de analizar la red, es el que muestro a continuación:
Código
  1. # -------------------------------------------------------
  2. # Bienvenido al programa de especificaciones del sistema
  3. # -------------------------------------------------------
  4. import os
  5. import subprocess
  6.  
  7. def mostrar_menu():
  8.    while True:
  9.        print("=" * 60)
  10.        print("        Análisis de Red - Blue_Shield".center(60))
  11.        print("=" * 60)
  12.        print("1. Escanear red con Nmap")
  13.        print("2. Analizar conexiones activas con Netstat")
  14.        print("3. Volver al menú principal de Blue_Shield.py")
  15.        print("q. Salir")
  16.        opcion = input("\nSelecciona una opción: ").strip()
  17.  
  18.        if opcion == "1":
  19.            escanear_con_nmap()
  20.        elif opcion == "2":
  21.            analizar_con_netstat()
  22.        elif opcion == "3":
  23.            regresar_a_blue_shield()
  24.        elif opcion.lower() == "q":
  25.            print("Saliendo del análisis de red...")
  26.            break
  27.        else:
  28.            print("Opción no válida. Intenta de nuevo.")
  29.  
  30. def escanear_con_nmap():
  31.    objetivo = input("\nIntroduce la IP o rango a escanear (ej. 192.168.1.0/24): ").strip()
  32.    print(f"\n🔍 Ejecutando escaneo Nmap en {objetivo}...\n")
  33.    try:
  34.        subprocess.run(["nmap", "-sP", objetivo], check=True)
  35.    except FileNotFoundError:
  36.        print("❌ Error: Nmap no está instalado o no se encuentra en el PATH.")
  37.    except subprocess.CalledProcessError as e:
  38.        print(f"❌ Ocurrió un error al ejecutar Nmap: {e}")
  39.  
  40. def analizar_con_netstat():
  41.    print("\n🔍 Mostrando conexiones activas con Netstat...\n")
  42.    try:
  43.        subprocess.run(["netstat", "-tunap"], check=True)
  44.    except FileNotFoundError:
  45.        print("❌ Error: Netstat no está disponible en tu sistema.")
  46.    except subprocess.CalledProcessError as e:
  47.        print(f"❌ Ocurrió un error al ejecutar Netstat: {e}")
  48.  
  49. def regresar_a_blue_shield():
  50.    print("\n🔙 Volviendo al menú principal de Blue_Shield.py...")
  51.    try:
  52.        os.execlp("python", "python", "Blue_Shield.py")
  53.    except Exception as e:
  54.        print(f"❌ Error al intentar regresar al menú principal: {e}")
  55.  
  56. if __name__ == "__main__":
  57.    mostrar_menu()
  58.  
  59. # -------------------------------------------------------
  60. # Programa creado por Sergio (aka W17CHeR)
  61. # -------------------------------------------------------

Por último, al ejecutar la tercera opción del antivirus Clamav, nos dará 2 opciones, análizar el directorio raíz o de lo contrario analizar el directorio /home, como pueden ver en las capturas:




El código que utilizado para el antivirus Clamav, es el siguiente:

Código
  1. # -------------------------------------------------------
  2. # Bienvenido al programa de especificaciones del sistema
  3. # -------------------------------------------------------
  4.  
  5. import os
  6. import subprocess
  7.  
  8. def mostrar_menu():
  9.    while True:
  10.        print("=" * 60)
  11.        print("        Análisis de Antivirus - ClamAV".center(60))
  12.        print("=" * 60)
  13.        print("1. Analizar la carpeta raíz de Linux (/)")
  14.        print("2. Analizar el directorio Home (/home)")
  15.        print("3. Volver al menú principal de Blue_Shield.py")
  16.        print("q. Salir")
  17.        opcion = input("\nSelecciona una opción: ").strip()
  18.  
  19.        if opcion == "1":
  20.            analizar_con_clamav("/")
  21.        elif opcion == "2":
  22.            analizar_con_clamav("/home")
  23.        elif opcion == "3":
  24.            regresar_a_blue_shield()
  25.        elif opcion.lower() == "q":
  26.            print("Saliendo del programa...")
  27.            break
  28.        else:
  29.            print("Opción no válida. Intenta de nuevo.")
  30.  
  31. def analizar_con_clamav(directorio):
  32.    print(f"\n🔍 Iniciando análisis de ClamAV en el directorio: {directorio}...\n")
  33.    try:
  34.        subprocess.run(["clamscan", "-r", directorio], check=True)
  35.    except FileNotFoundError:
  36.        print("❌ Error: ClamAV no está instalado o no se encuentra en el PATH.")
  37.    except subprocess.CalledProcessError as e:
  38.        print(f"❌ Ocurrió un error al ejecutar ClamAV: {e}")
  39.  
  40. def regresar_a_blue_shield():
  41.    print("\n🔙 Volviendo al menú principal de Blue_Shield.py...")
  42.    try:
  43.        os.execlp("python", "python", "Blue_Shield.py")
  44.    except Exception as e:
  45.        print(f"❌ Error al intentar regresar al menú principal: {e}")
  46.  
  47. if __name__ == "__main__":
  48.    mostrar_menu()
  49.  
  50.  
  51. # -------------------------------------------------------
  52. # Programa creado por Sergio (aka W17CHeR)
  53. # -------------------------------------------------------



De momento eso a sido todo, en un futuro cercano, lo iré actualizando y añadiendo más funciones enfocadas en lo defensivo.

Un saludo a todos/as y espero que el programa sea de su agrado :)


« Última modificación: Hoy a las 16:16 por W17CH3R » En línea

La importancia de los Datos es la importancia de los Recuerdos.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Hacking defensivo
Seguridad
Fustigador 6 4,104 Último mensaje 1 Agosto 2012, 10:05 am
por Fustigador
Oscobo es un nuevo buscador web enfocado en la privacidad
Noticias
wolfbcn 0 1,364 Último mensaje 6 Enero 2016, 21:42 pm
por wolfbcn
e enfocado un laser 240 mw rojo a......
Electrónica
dff200 1 5,806 Último mensaje 1 Noviembre 2016, 21:28 pm
por theusuario5000
Xbash, un gusano multiplataforma enfocado a servidores
Noticias
wolfbcn 0 1,150 Último mensaje 22 Septiembre 2018, 02:00 am
por wolfbcn
SSH Hardening & Offensive Mastery – Libro técnico con enfoque defensivo y ofensivo
Seguridad
DSDSec 0 782 Último mensaje 18 Abril 2025, 23:58 pm
por DSDSec
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines