Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projet RAT Éducatif - Sécurité Python ESGI

Description

Ce repository contient mon projet personnel de développement d'un RAT (Remote Access Trojan) éducatif dans le cadre du cours de sécurité Python de 4e année à l'ESGI. L'objectif est d'apprendre et de comprendre les mécanismes de sécurité informatique, les communications réseau sécurisées et les techniques de surveillance dans un contexte purement pédagogique.

⚠️ PROJET ÉDUCATIF PERSONNEL : Ce code est développé uniquement pour mon apprentissage. Il n'est pas destiné à être utilisé par d'autres personnes et toute utilisation malveillante est strictement interdite.

Objectifs d'Apprentissage

Ce projet me permet d'acquérir des compétences dans :

Fonctionnalités Client (à développer)

  • 🎙️ Enregistrement audio - Capture du microphone ✅ module existant
  • ⌨️ Keylogger - Enregistrement des frappes clavier ✅ module existant
  • 📷 Captures d'écran - Screenshots automatiques ✅ module existant
  • 📸 Photos webcam - Capture depuis la caméra ✅ module existant
  • 🌐 Informations réseau - Configuration système ✅ module existant
  • Transfert de fichiers - Upload/download de fichiers
  • 🖥️ Shell distant - Exécution de commandes
  • 🔍 Recherche de fichiers - Exploration du système
  • 🔐 Extraction de hashes - SAM/shadow (Windows/Linux)

Serveur de Contrôle (à développer)

  • 🖥️ Interface CLI - Prompt interactif rat >
  • 🔐 Communication TLS - Chiffrement obligatoire des communications
  • 🌐 Gestion multi-agents - Support de plusieurs clients simultanés
  • Monitoring - Surveillance des clients connectés
  • �️ Gestion erreurs - Robustesse et help intégré

Configuration de l'Environnement de Développement

Prérequis

  • Python 3.11+
  • Poetry pour la gestion des dépendances

Configuration initiale

  1. Installer les dépendances avec Poetry :
poetry install
  1. Activer l'environnement virtuel :
poetry shell
  1. Installer les hooks pre-commit :
poetry run pre-commit install

Structure du Projet

src/
├── rat/
│   ├── client/          # Modules client du RAT
│   │   ├── commands.py             # ✅ NOUVEAU - Orchestrateur principal (6/12 commandes)
│   │   ├── client_audio_recorder.py    # ✅ Enregistrement audio (adapté)
│   │   ├── keylogger.py                # ✅ Capture clavier (adapté)
│   │   ├── client_screenshot.py        # ✅ Captures d'écran (adapté)
│   │   ├── client_picture.py           # ✅ Photos webcam (adapté)
│   │   └── client_info.py              # ✅ Informations système (étendu)
│   └── server/          # ❌ Modules serveur (à développer)
├── tp1/                 # TP1 - Analyse réseau
└── tp3/                 # TP3 - Captcha solving
tests/                   # ✅ Tests unitaires (50 tests passent)
├── conftest.py          # ✅ Configuration automatique PYTHONPATH
├── rat/client/          # ✅ Tests des modules client adaptés
│   ├── test_help_command.py        # 7 tests
│   ├── test_ipconfig_command.py    # 10 tests
│   ├── test_keylogger.py           # 10 tests
│   ├── test_client_screenshot.py   # 8 tests
│   ├── test_client_photo.py        # 8 tests
│   └── test_client_audio_recorder.py # 7 tests
docs/                    # Documentation

État Actuel du Développement

✅ Weekend 1 : Commandes de Base (TERMINÉ)

  • help : Liste des 12 commandes avec usage détaillé ✅
  • ipconfig : Configuration réseau étendue ✅
  • Tests unitaires complets (17 tests) ✅
  • Architecture RATCommands avec dispatcher ✅

✅ Weekend 2 : Modules Multimédia (TERMINÉ)

  • keylogger : Adaptation du module existant ✅ (10 tests)
  • screenshot : Adaptation du module existant ✅ (8 tests)
  • webcam_snapshot : Adaptation du module existant ✅ (8 tests)
  • record_audio : Adaptation du module existant ✅ (7 tests)
  • Dépendances multimédia installées (pynput, pillow, opencv-python, sounddevice, scipy) ✅
  • Total : 6/12 commandes client implémentées 🎯

📋 Tests des Commandes Implémentées

Testez le système de commandes unifié :

# Test complet de toutes les commandes
poetry run python -c "
from src.rat.client.commands import RATCommands
rat = RATCommands()

# Test help
print('=== HELP ===')
result = rat.execute_command('help')
print(f'Status: {result[\"status\"]}')

# Test des commandes multimédia
for cmd in ['screenshot', 'keylogger', 'webcam_snapshot', 'record_audio']:
    print(f'\\n=== {cmd.upper()} ===')
    if cmd == 'keylogger':
        result = rat.execute_command(cmd, duration=1)
    elif cmd == 'record_audio':
        result = rat.execute_command(cmd, duration=1)
    else:
        result = rat.execute_command(cmd)
    print(f'Status: {result[\"status\"]}')
"

📊 Modules Client - Statut Détaillé

✅ Implémentées (6/12) :

  • help : Liste des commandes avec usage
  • ipconfig : Configuration réseau complète
  • keylogger : Enregistrement clavier avec durée
  • screenshot : Capture d'écran avec sauvegarde
  • webcam_snapshot : Photo webcam avec sauvegarde
  • record_audio : Enregistrement audio avec durée

🔄 En cours d'implémentation (0/12) : Toutes les commandes ont leur structure créée mais retournent des messages "À implémenter"

❌ À implémenter (6/12) :

  • webcam_stream : Stream vidéo temps réel
  • shell : Shell interactif bash/cmd
  • search : Recherche de fichiers
  • download : Téléchargement fichiers victime → serveur
  • upload : Envoi fichiers serveur → victime
  • hashdump : Extraction SAM/shadow

❌ Serveur (0/6 points) : Toute la partie serveur reste à développer

Autres TPs du Repository

Ce repository contient également d'autres travaux pratiques :

# TP1 - Analyse réseau
poetry run python -m src.tp1.main

# TP3 - Résolution de captcha
poetry run python -m src.tp3.main

Tests

Exécuter la suite de tests complète :

poetry run pytest

Tests spécifiques des modules RAT :

# Tests des commandes client (50 tests)
poetry run pytest tests/rat/client/ -v

# Tests d'un module spécifique
poetry run pytest tests/rat/client/test_help_command.py -v
poetry run pytest tests/rat/client/test_keylogger.py -v

Avec couverture :

poetry run pytest --cov=src --cov-report=html

État actuel : ✅ 50/50 tests passent pour les 6 commandes implémentées

Développement

Standards de code

Le projet utilise des outils de qualité de code configurés :

  • ruff : Linting et formatage
  • autoflake : Suppression imports inutiles
  • pre-commit : Hooks de validation

Installer les hooks pre-commit

poetry run pre-commit install

🎯 Prochaines Étapes - Weekend 3 (2-3 Juin 2025)

Objectif : Compléter les 6 commandes client restantes (5 points)

Commandes à implémenter :

  1. webcam_stream : Extension du module webcam pour stream continu
  2. shell : Interface bash/cmd avec subprocess
  3. search : Recherche de fichiers avec patterns
  4. download : Transfert fichiers victime → serveur
  5. upload : Transfert fichiers serveur → victime
  6. hashdump : Extraction SAM (Windows) / shadow (Linux)

Architecture de Test

# Tester une commande spécifique après implémentation
poetry run python -c "
from src.rat.client.commands import RATCommands
rat = RATCommands()
result = rat.execute_command('shell', command='ls -la')
print(result)
"

Progression Vers Serveur

Une fois les 12 commandes client terminées (10/10 points), développement du serveur avec :

  • Socket TCP sécurisé (TLS)
  • Interface CLI rat >
  • Gestion multi-agents
  • Communication bidirectionnelle

Mon Planning de Développement

Voir le fichier PLAN_IMPLEMENTATION.md pour mon planning détaillé.

Période : 10 mai - 31 juillet 2025 (weekends uniquement) Développement : Solo

Cadre Éducatif et Éthique

Ce projet personnel est développé exclusivement dans un cadre éducatif pour :

  • Mon apprentissage des mécanismes de sécurité informatique
  • Ma compréhension des techniques de communication réseau sécurisée
  • L'étude des vulnérabilités et méthodes de protection

Engagement Éthique Personnel

  • ✅ Tests uniquement sur mes propres machines
  • ✅ Environnement de développement isolé et contrôlé
  • ✅ Respect absolu de la vie privée et des lois
  • ❌ Aucune utilisation malveillante
  • ❌ Aucun partage ou distribution du code
  • ❌ Aucun déploiement en dehors du cadre éducatif

À Propos

Étudiant : Spero KOTIN & Lauren EDOH COFFI Formation : ESGI 4e année - Cours de sécurité Python Objectif : Projet personnel d'apprentissage de la cybersécurité


Projet éducatif personnel - ESGI 2025

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages