Share
## https://sploitus.com/exploit?id=8C7ED1A3-6E85-56C5-8EC0-609939D28A41
# NimPentestAgent
Agent autonome de pentest intelligent pour CTF et apprentissage en cybersécurité.
## Concept
NimPentestAgent est un agent autonome capable d'analyser et d'exploiter automatiquement des cibles réseau. L'agent reçoit une adresse IP et procède de manière autonome pour identifier les failles et obtenir les flags.
### Fonctionnement
L'agent fonctionne en boucle d'observation-décision-action :
1. **Observer** : Scan de ports, énumération de services, détection de versions
2. **Raisonner** : Un LLM local (Ollama) analyse les résultats et décide de la prochaine action
3. **Agir** : Exécution de l'action choisie (exploit, bruteforce, etc.)
4. **Apprendre** : Sauvegarde des résultats pour affiner les prochaines décisions
### Intérêts du projet
- **Apprentissage** : Comprendre l'automatisation d'un pentest de bout en bout
- **Nim** : Découvrir un langage performant et moderne pour la sécurité
- **IA** : Intégrer un LLM dans un workflow technique
- **DevOps** : Maîtriser Docker et l'orchestration de services
## Architecture
```
nim-pentest-agent/
├── agent/ # Code source Nim
│ ├── src/
│ │ ├── main.nim # Point d'entrée
│ │ ├── core/
│ │ │ ├── brain.nim # Interface avec le LLM
│ │ │ ├── memory.nim # Gestion de l'état
│ │ │ └── orchestrator.nim # Boucle principale
│ │ ├── tools/
│ │ │ ├── scanner.nim # Reconnaissance réseau
│ │ │ ├── exploiter.nim # Exploitation
│ │ │ └── enumerator.nim # Énumération
│ │ └── utils/
│ │ ├── logger.nim # Logs structurés
│ │ └── reporter.nim # Génération de rapports
│ ├── tests/
│ └── nimble.nim # Dépendances
├── docker/
│ ├── agent.Dockerfile
│ ├── ollama.Dockerfile
│ └── targets/ # Cibles vulnérables
│ ├── web-vuln/
│ └── ssh-weak/
├── config/
│ ├── prompts/ # Prompts système pour le LLM
│ └── tools.yaml # Configuration des outils
├── docs/
│ ├── ARCHITECTURE.md
│ ├── DEVELOPMENT.md
│ └── USAGE.md
├── docker-compose.yml
├── TODO.md
└── README.md
```
## Quick Start
### Prérequis
- Docker et Docker Compose
- Nim (pour développement local)
- 8GB RAM minimum (pour Ollama)
### Installation
```bash
# Cloner le repo
git clone https://github.com/cchopin/nim-pentest-agent.git
cd nim-pentest-agent
# Lancer l'environnement
docker-compose up -d
# Tester sur une cible
docker exec -it agent ./nimpentest --target 172.20.0.10
```
## Documentation
- [Architecture détaillée](docs/ARCHITECTURE.md)
- [Guide de développement](docs/DEVELOPMENT.md)
- [Guide d'utilisation](docs/USAGE.md)
## Objectifs pédagogiques
Ce projet permet d'apprendre :
1. **Nim** : Syntaxe, gestion mémoire, interfaçage système
2. **Réseau** : Protocoles, scanning, énumération
3. **Sécurité** : Méthodologie pentest, exploits courants
4. **IA** : Intégration LLM, prompt engineering
5. **DevOps** : Conteneurisation, orchestration
## Disclaimer
Cet outil est destiné uniquement à l'apprentissage et aux tests sur des environnements autorisés (CTF, labs personnels). L'utilisation sur des systèmes non autorisés est illégale.
## Roadmap
### Phase 1 : MVP (Minimum Viable Product)
- [ ] Scan de ports basique
- [ ] Détection de services
- [ ] Intégration LLM simple
- [ ] Exploitation d'une vulnérabilité web
### Phase 2 : Autonomie
- [ ] Système de mémoire persistant
- [ ] Décisions multi-étapes
- [ ] Gestion des échecs
- [ ] Pivoting réseau
### Phase 3 : Intelligence
- [ ] Apprentissage des patterns
- [ ] Priorisation automatique
- [ ] Rapports détaillés
- [ ] Interface web
## Contribution
Projet personnel et éducatif. Les forks et adaptations sont encouragés.
## License
MIT License - Utilisation à des fins éducatives uniquement.