Código equipo azul y rojo

Y seguí preguntando a chatgpt y me volvió a responder Diez ejemplos adicionales de código que podrían ser útiles en un contexto de ciberseguridad, relacionados con diversas tareas para el Equipo Rojo (pentesters) y el Equipo Azul (defensores). Cada ejemplo está descrito para entender su función y cómo se relaciona con la seguridad de la información.

---

### 1. Escaneo de Puertos Abiertos (Python) Este script utiliza la biblioteca socket para escanear puertos abiertos en un servidor específico.

```python import socket

def escanear_puertos(host):     print(f"Escaneando puertos abiertos en {host}...")     for puerto in range(1, 1024):  # Escaneo básico en puertos del 1 al 1023         sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)         sock.settimeout(0.5)         resultado = sock.connect_ex((host, puerto))         if resultado == 0:             print(f"Puerto {puerto} está abierto")         sock.close()

escanear_puertos("192.168.1.1") ```

Descripción: Este script ayuda al Equipo Rojo a identificar puertos abiertos en una máquina, lo cual es un primer paso para detectar servicios vulnerables en un objetivo.

---

### 2. Generación de Hash para Contraseñas (Python) Este código genera un hash seguro para una contraseña usando bcrypt.

```python import bcrypt

def generar_hash(password):     password_bytes = password.encode('utf-8')     hashed = bcrypt.hashpw(password_bytes, bcrypt.gensalt())     return hashed

print(generar_hash("mi_contraseña_segura")) ```

Descripción: El Equipo Azul puede usar este script para almacenar contraseñas de manera segura en una base de datos, asegurándose de que los datos de autenticación no sean almacenados en texto plano.

---

### 3. Autenticación de Dos Factores (Python) Ejemplo de generación de un código OTP para 2FA (Autenticación de Dos Factores) con la biblioteca pyotp.

```python import pyotp

# Generar una clave secreta clave_secreta = pyotp.random_base32() totp = pyotp.TOTP(clave_secreta)

# Generar un código OTP print("Código OTP:", totp.now()) ```

Descripción: Este código puede integrarse en un sistema de autenticación que use 2FA, añadiendo una capa adicional de seguridad para proteger las cuentas de los usuarios.

---

### 4. Detección de Cambios en Archivos (Python) Utilizando hashlib para verificar cambios en archivos críticos del sistema.

```python import hashlib

def hash_archivo(ruta_archivo):     hasher = hashlib.sha256()     with open(ruta_archivo, 'rb') as archivo:         contenido = archivo.read()         hasher.update(contenido)     return hasher.hexdigest()

print(hash_archivo("archivo_importante.txt")) ```

Descripción: Este script es útil para el Equipo Azul, ya que permite verificar la integridad de archivos críticos, asegurándose de que no hayan sido alterados por agentes externos.

---

### 5. Prevención de Ataques de Fuerza Bruta (Python) Implementación de un límite de intentos de inicio de sesión.

```python intentos_fallidos = {}

def iniciar_sesion(usuario, contrasena):     max_intentos = 5     if intentos_fallidos.get(usuario, 0) >= max_intentos:         print("Cuenta bloqueada. Demasiados intentos fallidos.")         return False     # Suponer que la contraseña es "segura"     if contrasena == "segura":         print("Inicio de sesión exitoso")         intentos_fallidos[usuario] = 0         return True     else:         intentos_fallidos[usuario] = intentos_fallidos.get(usuario, 0) + 1         print("Contraseña incorrecta")         return False

iniciar_sesion("usuario1", "incorrecta") ```

Descripción: Esto ayuda al Equipo Azul a protegerse de ataques de fuerza bruta al limitar el número de intentos de inicio de sesión.

---

### 6. Enumeración de Usuarios en Servicios de Red (Python) Con la biblioteca paramiko, se verifica la existencia de un usuario en un servicio SSH.

```python import paramiko

def verificar_usuario_ssh(host, usuario):     cliente = paramiko.SSHClient()     cliente.set_missing_host_key_policy(paramiko.AutoAddPolicy())     try:         cliente.connect(host, username=usuario, password="intento_incorrecto")     except paramiko.AuthenticationException:         print(f"Usuario {usuario} parece existir en {host}")     except:         print("Conexión fallida o usuario inexistente")

verificar_usuario_ssh("192.168.1.1", "root") ```

Descripción: Esto permite al Equipo Rojo identificar si un usuario específico existe en el sistema, lo cual puede ser un vector de ataque en redes.

---

### 7. Escaneo de Vulnerabilidades con Nmap (Bash) Ejecutar un escaneo de vulnerabilidades con Nmap desde un script de Bash.

```bash #!/bin/bash nmap -sV --script=vuln 192.168.1.1 ```

Descripción: Este script ejecuta un escaneo de servicios y busca vulnerabilidades conocidas en un sistema específico, facilitando la identificación de problemas de seguridad en servidores o dispositivos de red.

---

### 8. Sistema de Detección de Intrusos Simple (Python) Monitoreo de conexiones sospechosas con psutil.

```python import psutil

def detectar_conexiones_sospechosas():     conexiones = psutil.net_connections(kind="inet")     for conexion in conexiones:         if conexion.status == "ESTABLISHED":             print(f"Conexión establecida: {conexion.laddr} -> {conexion.raddr}")

detectar_conexiones_sospechosas() ```

Descripción: El Equipo Azul puede usar este script para detectar conexiones activas y verificar si son legítimas o si podrían indicar actividad sospechosa.

---

### 9. Automatización de Copias de Seguridad (Python) Script para realizar copias de seguridad de archivos importantes.

```python import shutil import os from datetime import datetime

def respaldo(archivo):     fecha = datetime.now().strftime("%Y%m%d%H%M%S")     shutil.copy2(archivo, f"{archivo}_{fecha}.bak")

respaldo("archivo_importante.txt") ```

Descripción: Automatizar las copias de seguridad ayuda al Equipo Azul a preservar la integridad de los datos críticos en caso de un ataque o falla del sistema.

---

### 10. Escaneo de Seguridad en Aplicaciones Web (SQL Injection Test) (Python) Prueba de inyección SQL básica para una aplicación web.

```python import requests

def probar_inyeccion_sql(url):     payload = "' OR '1'='1"     response = requests.get(f"{url}?usuario={payload}")     if "error" not in response.text:         print("Posible vulnerabilidad de inyección SQL")     else:         print("No se encontró vulnerabilidad")

probar_inyeccion_sql("http://localhost/login") ```

Descripción: Este script automatiza una prueba para identificar vulnerabilidades de inyección SQL en aplicaciones web, una herramienta esencial para el Equipo Rojo en pruebas de penetración.

---

Estos ejemplos representan funciones clave tanto para la defensa como para la penetración en sistemas de seguridad de la información. Aportan un enfoque práctico a tareas que pueden encontrarse en el día a día de un especialista.

Autor Donal Sandro Noblejas Huaman Lima Perú

Inicia sesión para ver o añadir un comentario.

Más artículos de Donal sandro Noblejas Huaman

Otros usuarios han visto

Ver temas