Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
NuReaper — Scanner Nuget | Kitploit
Outils/GitHubGitHub/daanixpl/nureaper
Analyse StatiqueScanners de VulnérabilitésAnalyse Dynamique (Sandboxing)Analyse de CodeAnalyse de MalwareDevSecOpsAnalyse de BinairesRenseignement sur les MenacesSécurité de la Chaîne Logistique
GitHubdaanixpl/nureaper

NuReaper

Scanner Nuget

24il y a 19 joursPas encore vérifié
Voir le dépôt

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

NuReaper — Scanner de sécurité des packages NuGet

⚠️ Travail en cours — Le projet est activement développé. Le moteur d'analyse principal est en cours de reconstruction

NuReaper est une API backend .NET 8 qui analyse automatiquement la sécurité des packages NuGet. Vous fournissez un lien vers n'importe quel package NuGet, et le système télécharge récursivement l'intégralité de son arbre de dépendances, décompile le code compilé et analyse chaque méthode à la recherche de motifs malveillants — en renvoyant un rapport de menace détaillé.

🔍 Pour les lecteurs non techniques : Imaginez que vous installez une application sur votre téléphone. En même temps, des dizaines de bibliothèques plus petites s'installent automatiquement. NuReaper inspecte chacune d'entre elles — en examinant le code binaire compilé réel — et détecte si l'une d'elles tente de se connecter à des serveurs suspects, d'exécuter du code caché ou d'obfusquer son véritable comportement.


🎯 Que fait NuReaper ?

Envoyez une seule requête HTTP avec l'URL d'un package NuGet, et NuReaper va :

  1. Construire l'arbre de dépendances complet — récupère et cartographie récursivement tous les packages dont dépend la cible (jusqu'à 20 niveaux de profondeur), en détectant les dépendances circulaires au passage
  2. Télécharger et vérifier chaque package — récupère le fichier .nupkg et calcule son hash SHA-256
  3. Analyser le code IL compilé — décompile les assemblys .NET et analyse chaque méthode de chaque classe à la recherche de motifs suspects
  4. Évaluer le niveau de menace — en fonction des motifs détectés, du nombre de résultats, de la diversité des types, des scores de confiance et de la profondeur d'obfuscation
  5. Renvoyer un rapport complet — avec les résultats par package, les traces de flux de code et le graphe de dépendances complet

🔬 Motifs de code malveillant détectés

Le moteur analyse le code au niveau des instructions IL (Intermediate Language) et reconnaît 7 motifs caractéristiques des logiciels malveillants :

#MotifDescription
1Appel API directChaîne suspecte immédiatement utilisée dans un appel réseau
2Chaîne assignéeURL assignée à une variable, puis transmise à un appel réseau
3Construction de chaîneURL construite par concaténation ("http://" + var + "/path") — technique d'obfuscation
4Interpolation de chaîneURL assemblée via interpolation ($"{part1}{part2}")
5Interpolation par caractèresURL construite caractère par caractère à partir d'un tableau de caractères — obfuscation avancée
6DefaultInterpolatedStringHandlerMécanisme d'interpolation de bas niveau utilisé pour dissimuler des chaînes à l'analyse statique
7Appels API nusAppels réseau directs sans chaînes explicites (TcpClient.Connect, Socket.Connect, Process.Start)

Types de menaces détectées

Network:      HttpClient, WebClient, DNS, TcpClient, WebSocket
Execution:    Process.Start, Assembly.Load, Activator.CreateInstance
Low-level:    DllImport, VirtualAlloc, CreateThread, NtCreateThreadEx
System:       ManagementObjectSearcher (WMI)
String-based: Concatenation, CharArray, Interpolation, StringBuilder
Suspicious:   URL, IP address, .onion address, Base64

Score de niveau de menace (0–100)

L'algorithme de notation prend en compte :

  • Le niveau de danger maximal de chaque résultat individuel
  • Le nombre total de résultats (jusqu'à +30 pts)
  • La diversité des types de menaces détectés (jusqu'à +15 pts)
  • Le score de confiance moyen des résultats (+5 pts si >90%)
  • La présence d'obfuscation — construction de chaîne multi-sauts (+10 pts)

📡 API

POST /api/PackageScan

Analyse le package NuGet donné ainsi que l'intégralité de son arbre de dépendances.

Requête :

{
  "url": "https://www.nuget.org/packages/System.Net.Http/4.3.4"
}

Réponse :

{
  "rootPackageName": "System.Net.Http",
  "rootPackageVersion": "4.3.4",
  "totalPackages": 12,
  "totalFindingsFromAllPackages": 5,
  "threatLevelAllPackages": 47.5,
  "scannedTimeAllPackages": "2026-03-25T12:00:00Z",
  "packages": [
    {
      "packageName": "System.Net.Http",
      "version": "4.3.4",
      "sha256Hash": "abc123...",
      "threatLevel": 35.0,
      "totalFindings": 3,
      "findings": [
        {
          "type": "HttpClientCall",
          "confidenceScore": 95.0,
          "dangerLevel": 60.0,
          "evidence": "http://example.com/payload",
          "location": "MyClass::SendData",
          "hopDepth": 0,
          "flowTrace": "[Pattern1] Direct API call using string..."
        }
      ]
    }
  ],
  "dependencyGraph": {
    "rootPackage": "[email protected]",
    "nodes": [...],
    "edges": [...],
    "cycles": [...]
  }
}

🏗️ Architecture

Construite sur une Clean Architecture avec une séparation stricte des responsabilités :

NuReaperBackend/
├── NuReaper.Api/               # API layer — controllers, middleware, startup
├── NuReaper.Application/       # Application layer — commands, interfaces, DTOs, validation
├── NuReaper.Domain/            # Domain core — entities, enums, abstractions
├── NuReaper.Infrastructure/    # Implementations — scanners, parsers, repositories
│   └── Repositories/
│       ├── Scanners/           # IL analysis engine
│       │   ├── Analysis/       # ScanModule, ScanMethod, NetworkApiCallScan
│       │   ├── Detectors/      # 7 pattern detectors (Pattern1–Pattern7)
│       │   ├── Patterns/       # PatternRegistry (regex: URL, IP, .onion, Base64)
│       │   ├── RiskCalculation/# Threat scoring algorithm
│       │   ├── Finders/        # Locating API calls within IL instructions
│       │   ├── VariableAnalysis/# Tracking variable values across IL
│       │   └── StringAnalysis/ # Reconstructing strings from fragments
│       ├── Parsers/            # .nuspec file parsing
│       ├── GraphBuilders/      # Dependency graph construction (BFS + recursion)
│       └── FileHelpers/        # Download, extract, SHA-256
└── Docker/
    ├── Dockerfile
    └── docker-compose.yml

Stack et motifs

DomaineTechnologie / Motif
ArchitectureClean Architecture
Communication inter-couchesCQRS + MediatR
Analyse de code ILdnlib
Validation des entréesFluentValidation + MediatR Pipeline Behavior
Mapping d'objetsAutoMapper
JournalisationSerilog (console + fichier journalier rotatif)
Documentation APISwagger / OpenAPI
Base de donnéesEntity Framework Core + MySQL (Pomelo)
HTTPIHttpClientFactory avec pooling de connexions
ConteneurisationDocker + Docker Compose
TestsxUnit + Moq

⚙️ Comment fonctionne le moteur d'analyse

Package URL
    │
    ▼
DependencyGraphBuilder          ← builds dependency graph from .nuspec files
    │  (recursion + BFS, cycle detection)
    ▼
List of unique packages
    │
    ▼  (parallel, SemaphoreSlim — CPU-1 threads)
NetworkApiCallScan per package
    ├── DownloadPackageAsync     ← fetches .nupkg
    ├── CalculateSha256          ← integrity verification
    ├── ExtractNupkgAsync        ← unpacks the archive
    └── GetAssemblyFiles         ← lists .dll files
            │
            ▼  (Parallel.ForEachAsync)
        ScanModule (per .dll)
            │
            ▼  (Parallel.ForEach — all types and methods)
        ScanMethod (per method)
            │
            ▼  (7 pattern detectors)
        Pattern1..7 → FindingSummaryDto
            │
            ▼
    CalculateThreatLevel         ← score 0–100
    │
    ▼
ScanPackageResultResponse

📦 Dépendances principales

Télécharger l’outil