
cmdchamp v1.2.13
bash CLI trainer — 30 livelli da ls a escalation dei privilegi
cmdchamp
Addestratore CLI per Bash — 30 livelli da ls all'escalation dei privilegi.

Ogni domanda ti chiede di digitare un comando reale — ricevi un feedback immediato e vai avanti. Se sbagli, non ti mostra solo la risposta: mostra cosa ha stampato IL TUO comando rispetto a ciò che era richiesto e, per una pipeline, il conteggio delle righe in ogni fase, così puoi vedere il punto in cui si è interrotta. Per le domande con corrispondenza testuale, indica la risposta accettata a cui la tua era più vicina e il flag esatto che hai tralasciato. Se la risolvi nel modo lungo, ti mostra il modo breve — cat f | grep -c X ti fa guadagnare un Shorter: grep -c X f, attivato sia per un minor numero di fasi della pipeline sia per un minor numero di caratteri, perché il processo che hai risparmiato è la lezione. Molte domande vengono eseguite su file reali nella sandbox e tutte accettano più sintassi valide (sort -u o sort | uniq). Il tasto Tab attiva la manpage quando ti serve un riferimento — pagine condensate per ogni comando eseguito dalla risposta, più la sintassi shell su cui si basa (x=$(cmd), ${var:-default}, ${path##*/}), così nulla in una domanda è lasciato alla tua immaginazione. L'ordine viene randomizzato a ogni esecuzione, così non puoi memorizzarlo. La padronanza tiene traccia di ciò che sai: rispondi correttamente due volte a una domanda per padroneggiarla, sbagliala e viene declassata così che ricompaia prima. Una serie di 5 risposte corrette attiva la fire mode — un banner che resta attivo finché non sbagli.
Ogni livello termina con un boss round — niente manpage, timer di 30s, 4/5 per passare. Se fallisci, puoi riprovare subito il boss o tornare alla pratica. Supera tutti e 30 e si sblocca la challenge mode — il percorso finale: catene di comandi multipli che compongono gli strumenti di tutto il gioco in un'unica pipeline. 30s ciascuna, una sola vita, niente manpage, il tuo punteggio migliore è il record. Ogni catena viene valutata sul suo output reale nella sandbox, quindi qualsiasi pipeline corretta passa. Ogni esecuzione crea anche una sandbox randomizzata nuova — IP, conteggi, host e dati di log diversi — e attinge da oltre 50 modelli di catena con delimitatori, ordine di ordinamento e aggregati variabili, così l'IP più trafficato, l'URL più visitato, il conteggio più alto non sono mai gli stessi due volte. La prima esecuzione include un breve tutorial e un test di posizionamento che ti permette di saltare i livelli che già conosci.
Con bubblewrap, i comandi vengono eseguiti in un vero filesystem in sandbox e vengono valutati sul loro output effettivo. La macchina all'interno è sintetica — utente sandbox, host sandbox, il suo /etc/passwd e la sua riga di comando del kernel — quindi nulla di ciò che digiti può stampare a schermo il tuo vero nome utente, il nome della macchina o la disposizione del disco, e id, whoami e hostname rispondono allo stesso modo ovunque. Questo ora raggiunge anche il livello forense: il livello 28 ti consegna un vero binario di esempio (samples/target.bin) e valuta se hai effettivamente estratto la flag, il dominio di esfiltrazione e la chiave API trapelata — lo stesso per le domande jq su JSON reale. Il percorso finale compone queste estrazioni in catene a tempo. Anche i livelli 24-25 ora vengono eseguiti davvero: un piccolo servizio HTTP si avvia su localhost:8080 all'interno del namespace di rete della sandbox mentre la tua risposta viene eseguita, con tre porte in ascolto, così curl, jq su HTTP, ss e nmap vengono valutati su ciò che hanno effettivamente restituito. Nulla è esposto alla tua macchina — il namespace blocca comunque ogni connessione in uscita e la porta è invisibile dall'esterno. Solo gli strumenti che non possono davvero girare in una sandbox — wifi/RF, cattura live e forense su memoria/disco di grandi dimensioni — restano a corrispondenza testuale. I livelli di ricerca (16-17) accettano sia la sintassi rg/fd sia grep/find. L'editing di riga Vi è integrato — movimenti, operatori, conteggi, registri, undo e modalità visuale (v/V, o per scambiare le estremità), con ? per la mappa completa.
Installazione
Arch (AUR):
paru -S cmdchamp # oppure: yay -S cmdchamp
Ovunque (file singolo):
mkdir -p ~/.local/bin && curl -sL https://raw.githubusercontent.com/mellen9999/cmdchamp/main/cmdchamp -o ~/.local/bin/cmdchamp && chmod +x ~/.local/bin/cmdchamp
Aggiungi ~/.local/bin al PATH se necessario: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Oppure clona:
git clone https://github.com/mellen9999/cmdchamp.git
cd cmdchamp && make install
Richiede: bash 4.4+, coreutils, awk
macOS: Include bash 3.2 — installa prima bash 4.4+: brew install bash
Opzionale: bubblewrap (bwrap) per la modalità sandbox (solo Linux) — la maggior parte delle distribuzioni desktop lo include. Senza, le risposte sono solo a corrispondenza testuale
Opzionale: python3 — serve il servizio HTTP localhost della sandbox, così le domande live api / live box dei livelli 24-25 vengono valutate su output reale. Senza, quelle domande ripiegano sulla corrispondenza testuale; nulla altro cambia
Accessibilità: Rispetta NO_COLOR e TERM=dumb. Il layout si adatta a COLUMNS / tput cols. Le barre di padronanza portano sia colore sia un simbolo ✓ / ~ / x — leggibili anche senza colore.
Terminali: Funziona su veri terminali seriali, non solo emulatori. cmdchamp verifica cosa il terminale può effettivamente visualizzare e sceglie uno dei tre livelli di rendering — unicode, disegno di linee DEC ACS o ASCII puro — così i riquadri restano intatti su un VT100/VT220/VT320/VT420 o Wyse. Su uno schermo monocromatico, le distinzioni di colore vengono ri-codificate come grassetto/inverso. Forza un livello con CMDCHAMP_ASCII=1 o CMDCHAMP_UNICODE=1. ./test_terminals.sh lo verifica.
Utilizzo
cmdchamp # Avvia il menu del gioco
cmdchamp explain 'CMD' # Spiega qualsiasi comando - ogni flag, più la sintassi shell circostante
cmdchamp autopsy # Legge la tua cronologia shell e la mappa sul programma
cmdchamp daily # Gioca la sfida giornaliera di oggi (stessa esecuzione per tutti)
cmdchamp daily 2026-02-16 # Ripeti l'esecuzione di un giorno specifico (sfida un amico)
cmdchamp play # Sandbox di gioco libero: digita qualsiasi comando, guardalo eseguire
cmdchamp --no-sandbox # Disabilita la sandbox (solo corrispondenza testuale)
cmdchamp reset # Cancella tutti i progressi
cmdchamp test # Esegue i self-test
cmdchamp version # Stampa la versione
cmdchamp help # Mostra l'aiuto
cmdchamp explain (o cmdchamp x) è il pannello Tab come strumento autonomo: pagine scritte a mano per ~300 comandi più la sintassi shell circostante, offline, senza rete, senza dipendenze. Accetta un comando tra virgolette o le parole singole e legge da stdin quando non riceve nessuno dei due — quindi history | tail -1 | cmdchamp x spiega ciò che hai appena eseguito. Esce con 0 quando conosce il comando, 1 quando non lo conosce.