Condivisione della tecnologia

Utilizza docker per creare un ambiente di vulnerabilità e utilizza SSRF Redis per scrivere le chiavi pubbliche di centos e Ubuntu per ottenere un accesso senza password.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Ambiente sperimentale

kali: crea un ambiente contenitore docker in kali Qui utilizzo principalmente il primo;

Come database, Redis può scrivere dati in memoria. Usiamo richieste ssrf per consentire al server di scrivere la propria chiave pubblica per sperimentare l'accesso senza password;

2. Processo sperimentale

Preparazione e test preliminari

Redis salva i dati sotto forma di valori chiave Qui utilizzo l'ambiente centos creato con docker;

Utilizzare il comando seguente per accedere al contenitore centos;

docker exex -it 容器的编号 /bin/bash

Poiché centos dispone già di uno script per eseguire redis-server, dobbiamo solo abilitare redis-cli nel contenitore;

Verificare se può essere scritto normalmente. Come mostrato nella figura, il contenuto o la directory scritti possono essere modificati.

È anche possibile modificare il nome del file, in modo da poter costruire una chiave pubblica e scriverla sul server di destinazione per ottenere un accesso senza password;

Dopo la modifica salvatela, come mostrato in figura, la scrittura è andata a buon fine!

Problemi che sorgono e vengono risolti

Se c'è una situazione in cui il server non può essere connesso, possiamo usare ./start.sh per eseguire questo script;

Breve introduzione dell’SSRF e inizio dell’esperimento

Crea richieste tramite il server, utilizza il protocollo gopher o time dict per richiedere redis e scrivere file.

script di generazione gopher

Carico utile generato

Quindi possiamo effettuare una richiesta, incollarvi il contenuto di cui sopra e fare clic su Recupera

Problemi riscontrati

Quando ho eseguito Fetch per la prima volta, ho scoperto che il file non esisteva perché la sua chiave pubblica non era stata generata nell'ambiente centos, rendendone impossibile la scrittura. Pertanto, è necessario utilizzare ssh-keygen per generare il file chiave pubblica in centos in anticipo.

risultato

Si può vedere che la chiave pubblica è stata scritta con successo sul server di destinazione;

Quindi puoi accedere tramite ssh senza password. Si può vedere che l'accesso è riuscito!

Problemi riscontrati

Ci sono alcuni problemi nell'ambiente Dockerfile, che impediscono l'avvio della porta 22 nell'immagine docker, quindi il file viene modificato ed esegue /usr/sbin/sshd per avviare sshd.

Quando riscontriamo il suddetto errore di download, possiamo semplicemente inizializzare il file, come mostrato nella figura seguente;

3. Riepilogo

I passaggi per Centos e Ubuntu sono quasi gli stessi, tranne che a causa del meccanismo di protezione di Redis, si verificheranno i seguenti errori, impedendo la modifica di alcuni attributi. La soluzione è disattivare la modalità protetta e utilizzare quanto segue comando;

config set protected-mode no

A causa delle limitazioni della versione Redis, la sicurezza della versione 7.2.5 è troppo elevata, il che causerà il fallimento dell'accesso SSH senza password, quindi l'ho estratto qui.

Versione 5.0.5

Quindi utilizzare la stessa operazione per ottenere un accesso senza password;