Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Samuraizer — NotebookLM dopé aux stéroïdes — conçu spécialement pour les chercheurs en sécurité. | Kitploit
Outils/GitHubGitHub/zomry1/samuraizer
OSINT (Renseignement de Sources Ouvertes)Collecte d'InformationsUtilitaires et FrameworksRenseignement sur les MenacesApprentissage AutomatiqueApprentissage et ÉducationCrawlerRessources Organisées
GitHubzomry1/samuraizer

Samuraizer

NotebookLM dopé aux stéroïdes — conçu spécialement pour les chercheurs en sécurité.

Voir le dépôt
294il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Samuraizer

Samuraizer — Moteur de Base de Connaissances en Cyber‑Sécurité

NotebookLM sous stéroïdes — conçu spécifiquement pour les chercheurs en sécurité.

Auto-hébergé Construit pour
Licence Python React Dernier commit GitHub

💡 Pourquoi Samuraizer ?

Tout chercheur en sécurité connaît cette sensation — vous tombez sur un dépôt GitHub intéressant, un nouveau writeup CVE, un article de blog sur une technique d'exploitation récente. Vous vous l'envoyez sur WhatsApp. Il se noie immédiatement dans la discussion. Des semaines plus tard, vous avez réellement besoin de cet article — et il a disparu.

Arrêtez de vous envoyer des liens que vous ne retrouverez jamais — envoyez-les à Samuraizer une fois, et ils sont résumés, étiquetés et consultables pour toujours.

Avant 😵Après 🗡️

Liens éparpillés noyés dans l'historique des discussions

🔐 Confidentialité locale en priorité (fonctionnalité locale uniquement)

🎯 Mode confidentialité supplémentaire (local uniquement) — exécutez avec ollama, toutes les données restent sur votre machine.

  • 🗄️ Stockage vectoriel local dans samuraizer.db + plongements IA locaux via Ollama.
  • ⚡ Fonctionne entièrement hors ligne une fois les modèles téléchargés (ollama pull qwen3:4b, ollama pull qwen3-embedding:8b).
  • ✅ Idéal pour les équipes de sécurité et les chercheurs qui nécessitent des configurations isolées / air-gapped.

🧩 Ce que vous obtenez (en un coup d'œil)

🔍 Analyser — Collez des URLs, regardez les résultats défiler

  • 📝 Collez une ou plusieurs URLs (dépôts GitHub, writeups CVE, articles de blog, vidéos YouTube) — les résultats arrivent en temps réel
  • 📄 Téléversez des fichiers directement depuis le navigateur ou Telegram — le texte complet est extrait, analysé, stocké et consultable dans l'interface
    • formats pris en charge : .pdf, .docx, .pptx, .txt, .md
  • 🗞️ Scanner de blog : collez la page d'accueil d'un blog et extrayez tous les liens d'articles pour une analyse par lot en un clic
  • ✨ Lecture suggérée : une entrée non lue pertinente est affichée sur l'onglet Analyser à chaque session pour faire avancer votre file d'attente

🗂️ Base de connaissances

  • ✏️ Édition d'étiquettes en ligne (ajout/suppression d'étiquettes sur les entrées, flux et éléments de liste)
  • 🔎 Recherche sémantique (recherche vectorielle via les plongements Gemini) + recherche textuelle classique
  • 🧩 Nuage d'étiquettes + multi-filtrage (par étiquette, catégorie, source, liste, lu/utile)
  • 📚 Gestion des listes — regroupez les entrées dans des listes manuelles, des listes RSS ou des listes de chaînes
  • 👁️‍🗨️ Aperçu au survol (fiches résumées) et boutons de copie rapide

🗺️ Graphe de connaissances

  • Visualisez l'ensemble de votre base de connaissances sous forme de graphe interactif à force dirigée
  • Les entrées et les étiquettes sont des nœuds — les arêtes montrent quelles étiquettes sont liées à quels articles
  • Cliquez pour prévisualiser une entrée ; double-cliquez pour ouvrir l'URL d'origine
  • Codage couleur par catégorie (CVE, article, outil, vidéo, blog, etc.)
  • Recherchez des étiquettes pour mettre en évidence les clusters connexes dans le graphe

📡 Flux RSS et abonnements YouTube

  • Ajoutez des flux RSS/Atom — le serveur interroge toutes les heures et ingère et résume automatiquement les nouveaux articles
  • Les nouveaux articles sont automatiquement ajoutés à la Base de connaissances
  • Chaque flux devient sa propre liste, ce qui facilite la révision par lot
  • Les éléments de flux affichent les métadonnées de la source et peuvent être étiquetés/filtrés comme n'importe quelle entrée

🎥 Abonnements aux chaînes YouTube

  • Abonnez-vous à des chaînes YouTube via une URL (par exemple https://www.youtube.com/@handle, /channel/UCxxx)
  • Prévisualisez les dernières vidéos avant de vous abonner et sélectionnez les vidéos à analyser
  • Lors de l'abonnement, les vidéos sélectionnées sont analysées immédiatement ; les futures publications sont interrogées automatiquement toutes les heures
  • Fonctionne via l'API /yt-channels et apparaît dans l'interface sous les sections RSS/YT

🤖 Bot Telegram (Optionnel)

  • Envoyez n'importe quelle URL au bot — il l'analyse via le même backend et renvoie une carte formatée
  • Envoyez un fichier PDF — il le télécharge, l'analyse et renvoie une carte de résultat avec un lien pour voir/télécharger le fichier
  • Mises à jour de progression en direct diffusées pendant l'analyse
  • Reçoit une notification de Lecture suggérée — le bot propose proactivement des entrées non lues

Analyse d'une URL

Lecture suggérée quotidienne

💬 Chat (RAG + diffusion + contexte épinglé)

  • Posez des questions sur votre base de connaissances — les réponses sont citées à partir des entrées les plus pertinentes
  • ⚡ Réponses en streaming avec saisie en direct et scores de pertinence par source
  • 🗂️ Plusieurs sessions de chat avec historique sauvegardé et sélection de modèle
  • 📌 Épinglez des articles spécifiques comme contexte — tapez @ pour l'auto-complétion ou utilisez le bouton de navigation @
    • Lorsque des entrées sont épinglées, Gemini répond uniquement à partir de ces articles — pas de bruit RAG
    • Les entrées épinglées apparaissent sous forme de puces au-dessus de la zone de saisie ; les sources affichent un badge 📌 au lieu d'un score
    • Parfait pour explorer en profondeur un PDF, un writeup ou un CVE spécifique

Chat RAG avec scores des sources

Chat avec contexte épinglé

[!IMPORTANT] Façonnez l'avenir de Samuraizer ! Nous votons actuellement pour de nouvelles fonctionnalités comme les LLM locaux et l'export Obsidian. Votez ici !


🏗 Architecture (haut niveau)

root@kitploit:~
flowchart LR
  Browser[Interface Navigateur] -->|HTTP| Frontend[Frontend React]
  Frontend -->|REST/NDJSON| Backend[API Flask]
  Backend -->|SQL| SQLite[(samuraizer.db)]
  Backend -->|API| Gemini[Gemini 2.5 Flash]
  Backend -->|API locale| Ollama[Ollama - LLM Local]
  Backend -->|API GitHub| GitHub[GitHub]
  Backend -->|RSS| RSS[Flux RSS]
  Telegram[Bot Telegram] -->|HTTP| Backend

🧠 Comment ça fonctionne (de bout en bout)

  1. Soumettez une URL ou un PDF via l'interface web (ou le bot Telegram).
  2. Le backend détermine le type (dépôt GitHub, article de blog, flux RSS, PDF, etc.) et récupère/extrait le contenu.
  3. Le contenu est envoyé à Gemini 2.5 Flash pour générer :
    • Un résumé concis
    • Une catégorie et des étiquettes
    • (Optionnellement) des plongements utilisés pour la recherche sémantique
  4. Les résultats sont stockés dans samuraizer.db et affichés dans le frontend.
  5. Le frontend vous permet de :
    • Filtrer par étiquette, catégorie, source, liste, indicateurs lu/utile
    • Modifier les étiquettes en ligne (les mises à jour sont persistées via PATCH /entries/<id>)
    • Utiliser la recherche sémantique (recherche vectorielle sur les plongements Gemini)
  6. Les flux RSS sont interrogés périodiquement ; les nouveaux articles sont ingérés automatiquement.

🧰 Pile technologique

CoucheTech / Bibliothèques
Backend

🚀 Configuration

Choisissez votre méthode de configuration préférée :

⚙️ Installation Locale (installation manuelle)

0) Cloner le dépôt 📥

root@kitploit:~
git clone https://github.com/zomry1/Samuraizer.git
cd Samuraizer

1) Configuration 🔐

Copiez .env.example vers .env et remplissez vos valeurs. Vous pouvez aussi ouvrir l'interface web, aller dans l'onglet Paramètres, et ajuster les réglages (fournisseur, clés API, noms des modèles Ollama, noms des modèles de plongement) avant d'enregistrer.

root@kitploit:~
cp .env.example .env
🐳 Installation Docker (recommandée)

La façon la plus simple d'exécuter la pile complète — une commande construit et démarre tout.

0) Cloner le dépôt 📥

root@kitploit:~
git clone https://github.com/zomry1/Samuraizer.git
cd Samuraizer

1) Configuration 🔐

root@kitploit:~
cp .env.example .env
# Modifiez .env et remplissez GEMINI_API_KEY (et toutes les autres valeurs nécessaires)

2) Construire et exécuter ▶️

Tous les fichiers Docker se trouvent dans le dossier docker/. Exécutez les commandes depuis la racine du projet :

Gemini (cloud) — par défaut :

root@kitploit:~
docker compose -f docker/docker-compose.yml up -d

Ollama sur CPU :

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama up -d

Ollama sur GPU NVIDIA :

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-nvidia up -d

📺 Récupération de transcription YouTube

Pourquoi pas youtube-transcript-api ?

L'implémentation originale utilisait la bibliothèque open-source Python youtube-transcript-api. Elle fonctionne bien localement mais présente une limitation critique en pratique : YouTube bloque agressivement les adresses IP qui effectuent des requêtes automatisées de transcription, en particulier :

  • Les IP appartenant aux fournisseurs de cloud / hébergeurs VPS (AWS, GCP, Azure, Hetzner, etc.)
  • Les IP qui sollicitent trop fréquemment le point de terminaison de transcription

Cela signifie qu'après avoir analysé seulement une poignée de vidéos, l'ensemble du serveur se retrouvait bloqué et chaque récupération de transcription suivante échouait avec une erreur IPBlocked / RequestBlocked — brisant complètement l'analyse des vidéos YouTube.

Solution actuelle : transcriptapi.com

Samuraizer utilise désormais transcriptapi.com — une API payante tierce qui gère la récupération des transcriptions YouTube de leur côté, en routant via une infrastructure qui n'est pas bloquée.

Avantages :

  • Pas de blocage IP — ils gèrent le problème anti-bot pour vous
📦 Points de terminaison de l'API

Analyser une URL

POST /analyze

Corps :

root@kitploit:~
{ "url": "https://github.com/proprietaire/depot" }

Analyser un PDF

POST /analyze-pdf

Corps : multipart/form-data avec un champ file contenant un fichier .pdf. Diffuse des événements NDJSON dans le même format que /analyze (en utilisant le nom du fichier comme clé url).

Récupérer un PDF stocké

GET /entries/<id>/pdf — sert le PDF en ligne dans le navigateur. GET /entries/<id>/pdf?dl=1 — sert le PDF en tant que téléchargement de fichier.


🙌 Contribuer

  1. Fork
  2. Créez une branche
  3. Apportez des modifications
  4. Soumettez une PR

⚖️ Licence

MIT

Télécharger l’outil

Analysés, étiquetés et prêts à être retrouvés
Python, Flask, SQLite, feedparser, PyMuPDF
LLMGemini 2.5 Flash (API Gemini), Ollama (local optionnel)
FrontendReact 18, Vite, Tailwind CSS
Botpython-telegram-bot v20
Transcriptstranscriptapi.com
VariableRequiseOù l'obtenir
LLM_PROVIDERNongemini (par défaut, cloud) ou ollama (local)
GEMINI_API_KEYQuand geminiGoogle AI Studio → Obtenir une clé API
OLLAMA_URLQuand ollamaURL de l'API Ollama (par défaut : http://localhost:11434)
OLLAMA_MODELQuand ollamaModèle de raisonnement (par défaut : qwen3:14b)
OLLAMA_EMBED_MODELQuand ollamaModèle de plongement (par défaut : qwen3-embedding:8b)
TELEGRAM_BOT_TOKENNonCréez un bot avec @BotFather sur Telegram
GITHUB_TOKENNonGitHub → Paramètres → Paramètres développeur → Jetons d'accès personnels — augmente la limite de taux API de 60 à 5 000 requêtes/heure
TRANSCRIPTAPINontranscriptapi.com/dashboard/api-keys — requis pour la récupération des transcriptions YouTube
SAMURAIZER_URLNonURL de votre backend (par défaut : http://localhost:8000), utilisée par le bot Telegram
🏠 Mode Local (Ollama)

Exécutez Samuraizer entièrement hors ligne avec Ollama :

root@kitploit:~
# Installer l'interface en ligne de commande Ollama (dépend de la plateforme)
# macOS
curl -fsSL https://ollama.com/install.sh | sh

# Windows
irm https://ollama.com/install.ps1 | iex

# Linux (Ubuntu/Debian)
curl -fsSL https://ollama.com/install.sh | sh
root@kitploit:~
# Démarrer le service Ollama
ollama serve

# Installer les modèles
ollama pull qwen3:4b            # raisonnement
ollama pull qwen3-embedding:8b  # plongements

# Définir le fournisseur dans .env
LLM_PROVIDER=ollama

Si vous avez déjà des plongements Gemini, passer à Ollama les effacera automatiquement au prochain démarrage (incompatibilité de dimension). Ré-encodage via l'interface ou POST /entries/embed-all.

2) Installer les dépendances 📦

root@kitploit:~
# Créer et activer un environnement virtuel
python -m venv .venv
source .venv/bin/activate  # Sur Windows : .venv\Scripts\activate

pip install -r requirements.txt

cd frontend
npm install
cd ..

3) Lancer le backend ▶️

root@kitploit:~
python server.py

4) Lancer le frontend 🌐 (nouveau terminal)

root@kitploit:~
cd frontend
npm run dev

5) (Optionnel) Lancer le bot Telegram 🤖 (nouveau terminal)

root@kitploit:~
python telegram_bot.py
Prérequis pour GPU NVIDIA

Windows (WSL 2) :

  1. Installez les derniers pilotes NVIDIA Game Ready / Studio sur Windows — aucun pilote Linux séparé n'est nécessaire dans WSL.
  2. Installez WSL 2 : ouvrez PowerShell en tant qu'Administrateur et exécutez :
    root@kitploit:~
    wsl --install
    wsl --update
    
  3. Installez Docker Desktop pour Windows et dans ses paramètres :
    • Général → activez "Utiliser le moteur basé sur WSL 2"
    • Ressources → Intégration WSL → activez pour votre distribution

Docker Desktop pour Windows intègre automatiquement l'environnement d'exécution de conteneur NVIDIA — aucune étape supplémentaire n'est nécessaire.

Linux :

Installez le NVIDIA Container Toolkit :

root@kitploit:~
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Ollama sur GPU AMD (nécessite un GPU compatible ROCm + pilote amdgpu sur Linux) :

root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-amd up -d

C'est tout. Le frontend est à l'adresse http://localhost et l'API à http://localhost:8000.

Astuce : Lorsque vous utilisez un profil Ollama, définissez LLM_PROVIDER=ollama dans votre .env. L'OLLAMA_URL est automatiquement définie sur http://ollama:11434 à l'intérieur des conteneurs — vous n'avez pas besoin de la modifier.

Après le premier démarrage avec Ollama, téléchargez les modèles (utilisez le nom du conteneur correspondant au profil que vous avez démarré) :

root@kitploit:~
# --profile ollama
docker exec -it samuraizer-ollama-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-1 ollama pull qwen3-embedding:8b

# --profile ollama-nvidia
docker exec -it samuraizer-ollama-nvidia-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-nvidia-1 ollama pull qwen3-embedding:8b

# --profile ollama-amd
docker exec -it samuraizer-ollama-amd-1 ollama pull qwen3:4b
docker exec -it samuraizer-ollama-amd-1 ollama pull qwen3-embedding:8b
  • Le backend et le frontend redémarrent automatiquement en cas de panne.
  • Docker stocke la base de données et le fichier journal dans le répertoire data/ du projet et les sauvegardes dans db_backups/.
  • Les fichiers de modèle Ollama sont stockés dans le volume Docker ollama_data (persiste entre les redémarrages).
  • Le bot Telegram est désactivé par défaut. Combinez les profils pour l'activer avec Ollama :
root@kitploit:~
docker compose -f docker/docker-compose.yml --profile ollama-nvidia --profile bot up -d

Mise à jour

root@kitploit:~
git pull
docker compose -f docker/docker-compose.yml up -d --build

Arrêt

root@kitploit:~
docker compose -f docker/docker-compose.yml down
  • API REST simple (GET /api/v2/youtube/transcript)
  • Niveau gratuit disponible ; les crédits ne sont débités qu'en cas de succès (HTTP 200)
  • Codes d'erreur réessayables (408 / 503) avec une sémantique claire
  • Inconvénients :

    • Pas gratuit au-delà du niveau gratuit (facturation basée sur les crédits)
    • Dépendance externe — si leur service tombe en panne, la récupération des transcriptions échoue
    • Les données transitent par un tiers

    Configuration : Ajoutez à .env :

    root@kitploit:~
    TRANSCRIPTAPI=votre_cle_ici
    

    Obtenez une clé sur transcriptapi.com/dashboard/api-keys.

    Alternatives à considérer

    OptionFonctionnementRisque de blocage IPCoût
    transcriptapi.com (actuel)API REST géréeAucun (leur problème)Basé sur crédits
    yt-dlpTélécharge les sous-titres via --write-sub --skip-downloadFaible (imite un navigateur)Gratuit, auto-hébergé
    youtube-transcript-api + cookiesTransmet un cookies.txt Netscape depuis une session navigateur connectéeMoyen (risque de compte jetable)Gratuit
    YouTube Data API v3API officielle Google, pas de scrapingAucunQuota gratuit, puis payant
    SupadataAPI REST gérée similaireAucunNiveau gratuit (100 req/jour)

    Meilleure alternative gratuite : yt-dlp — il est activement maintenu, imite les requêtes de navigateur réelles et a peu de chances d'être bloqué aussi rapidement qu'une simple requête HTTP. Pour basculer, remplacez _fetch_youtube_content par un appel à yt-dlp --write-auto-sub --sub-format vtt --skip-download et analysez le fichier .vtt résultant.

    Lister les entrées

    GET /entries (prend en charge les filtres : search, category, tag, source, list_id, read, useful)

    Abonnements aux chaînes YouTube

    • GET /yt-channels — lister les chaînes abonnées (id, channel_id, channel_url, name, last_checked)
    • POST /yt-channels/preview — corps { "url": "https://www.youtube.com/@handle" }, renvoie les informations de la chaîne + les dernières vidéos (url/title/published)
    • POST /yt-channels — corps { "url": "...", "name": "optionnel", "analyze_urls": ["https://...", ...] } ; créer un abonnement et analyser optionnellement les vidéos sélectionnées
    • POST /yt-channels/<id>/poll — interrogation manuelle immédiate d'une chaîne
    • DELETE /yt-channels/<id> — supprimer l'abonnement

    Gérer les étiquettes

    • Les modifications d'étiquettes se font via PATCH /entries/<id> avec JSON { "tags": ["tag1","tag2"] }