Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
NuReaper — Nuget scanner | Kitploit
Strumenti/GitHubGitHub/daanixpl/nureaper
Analisi StaticaScanner di VulnerabilitàAnalisi Dinamica (Sandboxing)Analisi del CodiceAnalisi MalwareDevSecOpsAnalisi di BinariThreat IntelligenceSicurezza della Supply Chain
GitHubdaanixpl/nureaper

NuReaper

Nuget scanner

2 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

NuReaper — Scanner di Sicurezza dei Pacchetti NuGet

⚠️ Lavori in corso — Il progetto è in fase di sviluppo attivo. Il motore di scansione principale è funzionante; persistenza del database, caching e copertura completa dei test sono pianificati per le prossime iterazioni.

NuReaper è un'API backend .NET 8 che analizza automaticamente la sicurezza dei pacchetti NuGet. Fornisci un link a qualsiasi pacchetto NuGet e il sistema scarica ricorsivamente l'intero albero delle dipendenze, decompila il codice compilato e scansiona ogni metodo alla ricerca di pattern dannosi — restituendo un rapporto dettagliato sulle minacce.

🔍 Per i lettori non tecnici: Immagina di installare un'app sul telefono. Insieme ad essa, vengono installate automaticamente decine di librerie più piccole. NuReaper ispeziona ognuna di esse — guardando il codice binario compilato effettivo — e rileva se qualcuna cerca di connettersi a server sospetti, eseguire codice nascosto o offuscare il proprio comportamento reale.


🎯 Cosa fa NuReaper?

Invia una singola richiesta HTTP con l'URL di un pacchetto NuGet e NuReaper:

  1. Costruisce l'intero albero delle dipendenze — recupera e mappa ricorsivamente tutti i pacchetti da cui dipende il target (fino a 20 livelli di profondità), rilevando le dipendenze circolari lungo il percorso
  2. Scarica e verifica ogni pacchetto — recupera il file .nupkg e calcola il suo hash SHA-256
  3. Analizza il codice IL compilato — decompila gli assembly .NET e scansiona ogni metodo di ogni classe alla ricerca di pattern sospetti
  4. Assegna un punteggio al livello di minaccia — basato sui pattern rilevati, numero di reperti, diversità dei tipi, punteggi di confidenza e profondità di offuscamento
  5. Restituisce un rapporto completo — con reperti per pacchetto, tracce del flusso di codice e il grafo completo delle dipendenze

🔬 Pattern di Codice Maligno Rilevati

Il motore analizza il codice a livello di istruzioni IL (Intermediate Language) e riconosce 7 pattern caratteristici di software dannoso:

Tipi di Minacce Rilevate

root@kitploit:~
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

Punteggio del Livello di Minaccia (0–100)

L'algoritmo di punteggio tiene conto di:

  • Livello di pericolo massimo di qualsiasi singolo reperto
  • Numero totale di reperti (fino a +30 punti)
  • Diversità dei tipi di minaccia rilevati (fino a +15 punti)
  • Punteggio di confidenza medio tra i reperti (+5 punti se >90%)
  • Presenza di offuscamento — costruzione di stringhe a più salti (+10 punti)

📡 API

POST /api/PackageScan

Scansiona il pacchetto NuGet fornito insieme al suo intero albero delle dipendenze.

Richiesta:

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

Risposta:

root@kitploit:~
{
  "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": [...]
  }
}

🏗️ Architettura

Costruita su Clean Architecture con una rigida separazione delle responsabilità:

root@kitploit:~
NuReaperBackend/
├── NuReaper.Api/               # Livello API — controller, middleware, avvio
├── NuReaper.Application/       # Livello applicativo — comandi, interfacce, DTO, validazione
├── NuReaper.Domain/            # Core del dominio — entità, enumerazioni, astrazioni
├── NuReaper.Infrastructure/    # Implementazioni — scanner, parser, repository
│   └── Repositories/
│       ├── Scanners/           # Motore di analisi IL
│       │   ├── Analysis/       # ScanModule, ScanMethod, NetworkApiCallScan
│       │   ├── Detectors/      # 7 rilevatori di pattern (Pattern1–Pattern7)
│       │   ├── Patterns/       # PatternRegistry (regex: URL, IP, .onion, Base64)
│       │   ├── RiskCalculation/# Algoritmo di punteggio minaccia
│       │   ├── Finders/        # Localizzazione chiamate API nelle istruzioni IL
│       │   ├── VariableAnalysis/# Tracciamento valori variabili attraverso IL
│       │   └── StringAnalysis/ # Ricostruzione stringhe da frammenti
│       ├── Parsers/            # Analisi file .nuspec
│       ├── GraphBuilders/      # Costruzione grafo dipendenze (BFS + ricorsione)
│       └── FileHelpers/        # Download, estrazione, SHA-256
└── Docker/
    ├── Dockerfile
    └── docker-compose.yml

Stack e Pattern


⚙️ Come funziona il Motore di Scansione

root@kitploit:~
Package URL
    │
    ▼
DependencyGraphBuilder          ← costruisce il grafo delle dipendenze dai file .nuspec
    │  (ricorsione + BFS, rilevamento cicli)
    ▼
Lista di pacchetti univoci
    │
    ▼  (parallelo, SemaphoreSlim — thread CPU-1)
NetworkApiCallScan per pacchetto
    ├── DownloadPackageAsync     ← recupera il .nupkg
    ├── CalculateSha256          ← verifica integrità
    ├── ExtractNupkgAsync        ← estrae l'archivio
    └── GetAssemblyFiles         ← elenca i file .dll
            │
            ▼  (Parallel.ForEachAsync)
        ScanModule (per .dll)
            │
            ▼  (Parallel.ForEach — tutti i tipi e metodi)
        ScanMethod (per metodo)
            │
            ▼  (7 rilevatori di pattern)
        Pattern1..7 → FindingSummaryDto
            │
            ▼
    CalculateThreatLevel         ← punteggio 0–100
    │
    ▼
ScanPackageResultResponse

📦 Dipendenze Principali


📄 Licenza

Questo progetto è disponibile sotto la licenza PolyForm Noncommercial 1.0.0, l'uso commerciale è vietato. Per licenze commerciali o richieste, contatta: [email protected]

Scarica lo strumento
#PatternDescrizione
1Chiamata API DirettaStringa sospetta utilizzata immediatamente in una chiamata di rete
2Stringa AssegnataURL assegnato a una variabile, poi passato a una chiamata di rete
3Costruzione di StringheURL costruito per concatenazione ("http://" + var + "/path") — tecnica di offuscamento
4Interpolazione di StringheURL assemblato tramite interpolazione ($"{part1}{part2}")
5Interpolazione Solo CaratteriURL costruito carattere per carattere da un array di char — offuscamento avanzato
6DefaultInterpolatedStringHandlerMeccanismo di interpolazione di basso livello utilizzato per nascondere stringhe dall'analisi statica
7Chiamate API NudeChiamate di rete dirette senza stringhe esplicite (TcpClient.Connect, Socket.Connect, Process.Start)
AreaTecnologia / Pattern
ArchitetturaClean Architecture
Comunicazione tra livelliCQRS + MediatR
Analisi codice ILdnlib
Validazione inputFluentValidation + MediatR Pipeline Behavior
Mapping oggettiAutoMapper
RegistrazioneSerilog (console + file rolling giornaliero)
Documentazione APISwagger / OpenAPI
DatabaseEntity Framework Core + MySQL (Pomelo)
HTTPIHttpClientFactory con connection pooling
ContainerizzazioneDocker + Docker Compose
TestxUnit + Moq
PacchettoScopo
dnlibDecompilazione e analisi IL .NET
MediatRCQRS — pipeline comandi/query
FluentValidationValidazione richieste
AutoMapperMapping oggetti tra livelli
SerilogRegistrazione strutturata
Pomelo.EntityFrameworkCore.MySqlORM MySQL
Swashbuckle.AspNetCoreInterfaccia Swagger
xUnit + MoqTest unitari