Notas de Luis

Up

Python para la Automatización de Tareas de Seguridad

Python es un lenguaje de programación muy utilizado en la ciberseguridad debido a su simplicidad, legibilidad y potente conjunto de bibliotecas. A continuación, se describe cómo Python puede ser utilizado para automatizar diversas tareas de seguridad, junto con ejemplos prácticos y recursos útiles.

Introducción a Python para Seguridad

Conceptos Clave

  • Python y Seguridad: Python es ampliamente utilizado en el campo de la seguridad por su capacidad de automatizar tareas repetitivas y complejas.
  • Entornos de Desarrollo: Instalación y configuración de entornos Python para tareas de seguridad.

Tareas Comunes

  • Instalación de Python:
# En Debian/Ubuntu
sudo apt-get install python3 python3-pip
 
# En RHEL/CentOS
sudo yum install python3 python3-pip
  • Configuración de Entorno Virtual:
python3 -m venv mi_entorno
source mi_entorno/bin/activate

Recursos

Escaneo y Recolección de Información

Conceptos Clave

  • Escaneo de Puertos: Detectar puertos abiertos en un sistema objetivo.
  • Recolección de Información: Obtención de datos sobre sistemas y redes.

Ejemplos y Tareas Comunes

  • Uso de socket para Escaneo de Puertos:
import socket
 
def escanear_puertos(direccion_ip):
    for puerto in range(1, 1025):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        resultado = sock.connect_ex((direccion_ip, puerto))
        if resultado == 0:
            print(f"Puerto {puerto}: Abierto")
        sock.close()
 
escanear_puertos('192.168.1.1')
  • Uso de scapy para Recolección de Información:
from scapy.all import ARP, Ether, srp
 
def escanear_red(rango_ip):
    arp = ARP(pdst=rango_ip)
    ether = Ether(dst="ff:ff:ff:ff:ff:ff")
    paquete = ether/arp
 
    resultado = srp(paquete, timeout=2, verbose=0)[0]
 
    dispositivos = []
    for enviado, recibido in resultado:
        dispositivos.append({'ip': recibido.psrc, 'mac': recibido.hwsrc})
 
    for dispositivo in dispositivos:
        print(f"IP: {dispositivo['ip']}, MAC: {dispositivo['mac']}")
 
escanear_red("192.168.1.0/24")

Recursos

Explotación y Pruebas de Penetración

Conceptos Clave

  • Explotación de Vulnerabilidades: Uso de scripts y herramientas para explotar vulnerabilidades conocidas.
  • Pruebas de Penetración: Evaluación de la seguridad de un sistema mediante ataques controlados.

Ejemplos y Tareas Comunes

  • Uso de pwntools para Explotación de Vulnerabilidades:
from pwn import *
 
contexto(arch='i386', os='linux')
sh = remote('victima.com', 1234)
 
payload = b'A' * 32
payload += p32(0xdeadbeef)
 
sh.sendline(payload)
sh.interactive()
  • Uso de requests para Pruebas de Penetración:
import requests
 
def probar_sql_inyeccion(url):
    payload = "' OR '1'='1"
    response = requests.get(f"{url}?id={payload}")
    if "Nombre del usuario" in response.text:
        print("Vulnerable a SQL Injection")
    else:
        print("No Vulnerable")
 
probar_sql_inyeccion('http://victima.com/buscar')

Recursos

Análisis de Malware

Conceptos Clave

  • Análisis Estático y Dinámico: Evaluación de software malicioso sin ejecutarlo (estático) y durante su ejecución (dinámico).
  • Desensamblado y Depuración: Uso de herramientas para analizar el código binario.

Ejemplos y Tareas Comunes

  • Análisis Estático con yara:
import yara
 
reglas = yara.compile(filepath='reglas.yara')
coincidencias = reglas.match('archivo_malicioso.exe')
for coincidencia in coincidencias:
    print(f"Regla coincidida: {coincidencia.rule}")
  • Desensamblado con capstone:
from capstone import *
 
codigo = b"\x55\x48\x8b\x05\xb8\x13\x00\x00"
md = Cs(CS_ARCH_X86, CS_MODE_64)
for i in md.disasm(codigo, 0x1000):
    print(f"0x{i.address:x}:\t{i.mnemonic}\t{i.op_str}")

Recursos

Monitoreo y Detección de Intrusos

Conceptos Clave

  • SIEM (Security Information and Event Management): Herramientas y procesos para monitorizar eventos de seguridad.
  • IDS/IPS: Sistemas de detección y prevención de intrusos.

Ejemplos y Tareas Comunes

  • Monitoreo de Logs con watchdog:
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
 
class LogHandler(FileSystemEventHandler):
    def on_modified(self, event):
        with open(event.src_path, 'r') as archivo:
            lineas = archivo.readlines()
            print(f"Nuevas líneas en {event.src_path}:")
            for linea en lineas[-5:]:
                print(linea.strip())
 
observer = Observer()
handler = LogHandler()
observer.schedule(handler, path='/var/log/', recursive=True)
observer.start()
 
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    observer.stop()
observer.join()
  • Detección de Intrusos con scapy:
from scapy.all import sniff
 
def detectar_intrusos(paquete):
    if paquete.haslayer(TCP) and paquete[TCP].flags == "S":
        print(f"Posible escaneo de puerto desde {paquete[IP].src}")
 
sniff(filter="tcp", prn=detectar_intrusos)

Recursos

Conclusión

Python es una herramienta poderosa para la automatización de tareas de seguridad, proporcionando capacidades para escaneo de redes, explotación de vulnerabilidades, análisis de malware y monitoreo de sistemas. Utilizando las bibliotecas y técnicas descritas, los profesionales de la seguridad pueden mejorar su eficiencia y eficacia en la protección de sistemas y redes. Los recursos proporcionados ofrecen guías detalladas para profundizar en cada uno de estos aspectos y mejorar tus habilidades en la automatización de tareas de seguridad con Python.

Recursos Adicionales

computing/hacking/hack_roadmap/hack_roadmap-2.1.b.txt · Última modificación: por 127.0.0.1