Skip to content
Learni
Voir tous les tutoriels
Cybersécurité

Comment automatiser une Red Team en 2026

Read in English

Introduction

L'automatisation Red Team permet d'exécuter des campagnes offensives de manière reproductible et scalable. En 2026, face à la complexité des environnements cloud et zero-trust, les équipes doivent réduire le temps de reconnaissance et d'exploitation. Ce tutoriel vous guide à travers la création de scripts Python et Bash pour automatiser les phases clés d'une opération Red Team. Vous apprendrez à orchestrer des outils tout en maintenant un contrôle humain sur les décisions critiques. Chaque section inclut du code fonctionnel prêt à l'emploi.

Prérequis

  • Python 3.11+
  • Kali Linux ou distribution équivalente
  • Connaissances de base en réseaux et exploitation
  • Outils : nmap, netcat installés
  • Accès à un environnement de lab (VM isolée)

Installation des dépendances

setup.sh
#!/bin/bash
pip install requests python-nmap colorama
apt update && apt install -y nmap netcat-traditional

Ce script installe les bibliothèques Python nécessaires et les outils système. Exécutez-le avec sudo pour les paquets système. Il évite les erreurs de dépendances lors des étapes suivantes.

Automatisation de la reconnaissance

La phase de reconnaissance est la plus chronophage. Nous allons créer un script qui scanne automatiquement une plage d'IP et extrait les ports ouverts.

Script de reconnaissance automatisée

recon.py
import nmap
import json

def automated_recon(target):
    nm = nmap.PortScanner()
    nm.scan(target, '1-1024', arguments='-sV -T4')
    results = {}
    for host in nm.all_hosts():
        results[host] = nm[host]['tcp']
    with open('recon_results.json', 'w') as f:
        json.dump(results, f, indent=2)
    return results

if __name__ == "__main__":
    automated_recon('192.168.1.0/24')

Ce script utilise python-nmap pour scanner et sauvegarder les résultats en JSON. Il est fonctionnel et peut être étendu avec des filtres sur les services critiques.

Automatisation d'exploitation basique

exploit.py
import subprocess
import sys

def run_exploit(target, port):
    cmd = ['nc', '-nv', target, str(port)]
    try:
        result = subprocess.run(cmd, capture_output=True, timeout=5, text=True)
        print(result.stdout)
    except subprocess.TimeoutExpired:
        print("Connexion timed out")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Usage: python exploit.py <ip> <port>")
        sys.exit(1)
    run_exploit(sys.argv[1], int(sys.argv[2]))

Script simple utilisant netcat pour tester des connexions. Il gère les timeouts et peut servir de base pour des payloads plus avancés.

Orchestration et reporting

Combinez les scripts précédents dans un pipeline. Le reporting automatique génère un résumé clair pour les livrables clients.

Script de reporting automatisé

report.py
import json
from datetime import datetime

def generate_report():
    with open('recon_results.json') as f:
        data = json.load(f)
    report = f"Red Team Report - {datetime.now()}\n"
    for host, ports in data.items():
        report += f"Host: {host}\nOpen ports: {list(ports.keys())}\n"
    with open('report.txt', 'w') as f:
        f.write(report)
    print("Report generated: report.txt")

if __name__ == "__main__":
    generate_report()

Ce script lit les résultats JSON et produit un rapport texte simple et daté. Il est facilement adaptable en HTML ou Markdown.

Configuration pipeline complet

pipeline.sh
#!/bin/bash
python3 recon.py
python3 exploit.py 192.168.1.10 22
python3 report.py

Pipeline Bash qui enchaîne les trois scripts Python. Rendez-le exécutable avec chmod +x et adaptez les IPs cibles selon votre lab.

Bonnes pratiques

  • Toujours isoler les scripts dans un environnement de lab
  • Utiliser des timeouts et gestion d'erreurs robustes
  • Logger chaque action pour traçabilité
  • Ne jamais exécuter sur des systèmes de production sans autorisation
  • Versionner vos scripts avec Git

Erreurs courantes à éviter

  • Oublier la gestion des exceptions réseau (script qui bloque)
  • Scanner sans rate limiting (détection IPS)
  • Stocker des credentials en clair dans le code
  • Ignorer les résultats de scan partiels

Pour aller plus loin

Intégrez vos scripts avec des frameworks comme Empire ou Cobalt Strike via API. Découvrez nos formations Red Team avancées.