eWPT · Fundamentals
Linux for WebHacking
Difficoltà: Beginner Time to Master: 3h Prerequisiti: nessuno (ripasso eJPTv2) Lab: OverTheWire Bandit (opzionale, refresh)
Obiettivo
Durante un engagement web passerai più tempo nel terminale che dentro Burp: costruire wordlist su misura, ripulire l’output di gobuster, incatenare grep/sed/awk per isolare un parametro tra migliaia di righe. Qui consolidi la command line Linux che usi ogni giorno — gestione file, testo, permessi, processi — non come ripasso teorico ma come attrezzi che tirerai fuori in continuazione.
Concetti chiave
Redirection e pipe (fondamentali per il workflow)
comando > file.txt # sovrascrive output su file
comando >> file.txt # appende output
comando1 | comando2 # passa output di 1 come input di 2
comando 2>&1 # unisce stderr a stdout
Permessi file (rilevante per privesc post-exploitation)
-rwsr-xr-x <- SUID bit (la "s" sostituisce la "x" nel blocco owner/user, non nel gruppo)
Strumenti
| Tool | Comando base | Output | Note |
|---|---|---|---|
| grep | grep -i "password" file.txt |
righe matching | -r ricorsivo, -E regex estesa |
| sed | sed 's/http/https/g' file.txt |
testo modificato | utile per manipolare wordlist/payload |
| awk | awk -F: '{print $1}' /etc/passwd |
campo estratto | parsing output CSV-like |
| cut | cut -d: -f1 /etc/passwd |
campo estratto | più semplice di awk per split banali |
| find | find / -perm -4000 2>/dev/null |
file SUID | privesc enumeration |
| xargs | cat urls.txt \| xargs -I{} curl -sI {} |
esegue comando per ogni riga | batch requests |
Payload / Esempi
Esempio 1: preparare una wordlist di username da una lista di nomi
cat names.txt | tr 'A-Z' 'a-z' | sed 's/ /./g' > usernames.txt
Spiegazione: trasforma “Mario Rossi” in “mario.rossi”, pattern username comune da testare in credential stuffing.
Esempio 2: estrarre tutti i parametri da una lista di URL
cat urls.txt | grep -oP '(?<=\?)[^ ]+' | tr '&' '\n' | cut -d= -f1 | sort -u
Spiegazione: utile per costruire rapidamente una lista di parametri candidati da fuzzare per SQLi/XSS su un intero sito.
Esempio 3: batch di richieste con xargs e parallel
cat subdomains.txt | xargs -P 10 -I{} curl -sI https://{} -o /dev/null -w "%{http_code} {}\n"
Spiegazione: verifica velocemente quali subdomain rispondono, 10 richieste in parallelo.
Evasion / Bypass Techniques
Non applicabile direttamente: questo file è strumentale. Vedi le sezioni tematiche per evasion specifiche (WAF, filtri).
Lab Hands-On
Lab 1: OverTheWire Bandit (livelli 0-10)
Obiettivo: rinfrescare comandi base di navigazione/manipolazione file Difficulty: Facile Time: 1h
Walkthrough breve:
- SSH nel primo livello con le credenziali fornite
- Trova la password del livello successivo nascosta nel filesystem
- Ripeti usando
find,grep,file, permessi
Common Mistakes
- Scrivere payload lunghi a mano ogni volta -> costruisci alias/funzioni bash riutilizzabili (vedi 09-Tools-Reference/Scripting-Snippets.md)
- Non salvare mai l’output dei comandi -> usa sempre
| tee output.txtdurante l’engagement
Link Utili
Connessioni
- Prerequisito: Networking-Basics.md
- Prossimo Step: Burp-Suite-Setup.md
- Combinazione con: 09-Tools-Reference/Command-Line-Tools.md
Checklist di padronanza
- So usare grep/sed/awk/cut senza cercare online
- So costruire pipe di più comandi
- So usare xargs per batch di richieste
- Ho un set di alias/script pronti nel mio ambiente