
l'unico webshell PHP di cui hai bisogno.
php webshell
Dato che ho fatto un errore e ho dimenticato di parlare dell'uso. Ecco.
Per far funzionare questa shell, hai bisogno di 2 cose: una vittima che permetta il caricamento di file PHP (te stesso, in un ambiente educativo) e un modo per inviare richieste HTTP a questa webshell (lo script client è il modo migliore al 100% per comunicare con questa shell).
Grazie per tutto il supporto che la comunità ha dato, significa molto per noi. Ora per le cose che verranno aggiunte a questa shell, per renderla ancora più fantastica.
Rapporto di rilevamento VT attuale: 2/59 (versione più recente)
Rapporto di rilevamento VT attuale (versione offuscata): 1/59 //Questa è una versione raffinata del dropper ridotto. La lunghezza totale del file è poco meno di 2KB. Slopshell ora assegna correttamente un user-agent casuale con un valore valido, cioè un user-agent reale come Mozilla, Opera, Chrome, Chromium, ecc.
Il problema con questo rilevamento è che non ho trovato una soluzione valida per la parola chiave eval; se non ci fosse alcuna chiamata a eval, questo script sarebbe indistinguibile.
Ok, eccoci qua, c'era una voglia che avevo di scrivere qualcosa in PHP, quindi eccolo. Questa webshell ha qualche campanello e fischietto, e ogni giorno ne vengono aggiunti altri. Avrai bisogno di un server pgsql in esecuzione che controlli. Tuttavia, il modo in cui lo implementi dipende da te.
Debian: apt install -y postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-dev && python -m pip install proxybroker --user
Sistemi RHEL: dnf -y -b install postgresql-server postgresql php php-pear python3-pip php-readline php-curl libsodium libsodium-devel && python -m pip install proxybroker --user
WIN: installa il file msi di php e assicurati di avere un server postgresql attivo a cui connetterti in esecuzione da qualche parte.
Una volta che hai configurato tutto correttamente e puoi confermare che sono in esecuzione, un comando che incoraggio è usare pg_ctl per creare il DB in quel modo, o almeno inizializzarlo e avviarlo. Poi tutte le query al db funzioneranno bene.
Devi eseguire cd /lib/ e poi composer install per installare le dipendenze lato server necessarie affinché il client funzioni. Il client ora è molto più veloce di prima.
Potresti notare che questi sono un re-skin di un altro backdoor per Wordpress, e quando troverò di nuovo il repository, mi assicurerò di dare credito per la funzione di esecuzione dei comandi presente in queste shell. Non mi piace rubare codice e credo che il credito vada dato dove è dovuto. Grazie, gentile signore, mi hai aiutato molto con questo rendendo i tuoi script disponibili al pubblico.
Quindi, mentre facevo alcune modifiche, ho pensato: perché non aggiungere un modo per far sì che la shell stessa si nasconda da un amministratore meno attento. Ho pulito i metodi di esecuzione del codice, ho ripulito l'intero script. Non mostrerà più una falsa pagina 500, poiché attira troppa attenzione da un amministratore attento (soprattutto per la mia esperienza come amministratore di uno stack PHP su un server). I messaggi di errore 500 attirano molta attenzione, il che significa che la shell ha più probabilità di essere scoperta. Una risposta 404, invece, ha molta meno probabilità di attirare l'attenzione dell'amministratore del server. Rendere questa shell molto più difficile da rilevare e trovare, oltre al cambio del nome del file, trovare questa shell sarà un incubo assoluto. La personalizzazione dello User-Agent è ancora qualcosa che deve essere fatta, oppure si dovrà utilizzare un valore unico di cookie al posto del valore User-Agent; tuttavia, non sarà impostato da me e lascerò che gli utenti più esperti personalizzino questa shell a loro piacimento. Ancora una volta, se noti problemi o carenze (la maggior parte le ho risolte e ho aggiornato questa shell a PHP8 per la maggior parte, i type hint non posso ancora aggiungerli per ragioni di retrocompatibilità), per favore apri un issue e fammi sapere cosa c'è che non va, e vedrò di risolverlo. Grazie, fai del bene, combatti il male, divertiti.
Ecco cosa sono riuscito a trovare per le routine elusive aggiunte:
Man mano che sono cresciuto nel linguaggio PHP, anche l'intero progetto crescerà e le classi diventeranno classi vere, con namespace e tutto. Ho solo bisogno di un po' di tempo per sistemare il codice secondo standard più comuni di sviluppo PHP. Probabilmente aggiungerò un modo per impacchettare questa shell come plugin per WordPress, in modo che possa essere usata anche in WordPress (un vero plugin, peraltro). Il client ora crea veri plugin per WordPress, che agganciano la funzione init del sito WordPress. Non ho testato completamente questo, quindi se ci sono problemi, sentiti libero di aprire un nuovo issue e descrivere il problema che stai riscontrando. L'attivatore per il plugin WordPress è lasciato vuoto, questo perché sto cercando modi per rendere l'attivatore un valore unico e sicuro/crittografato che non possa essere replicato. Per favore sii paziente.
Quando chiami la funzione cqI, stampa informazioni più rilevanti invece che... sai, spazzatura.
Esempio:
Max file uploads: 20
Safemode: impossibile impostare safemode.
File_Uploads: true
Upload Temp Dir: impossibile impostare upload_tmp_dir
Maximum File upload size: 2M
Include Path: .:/usr/share/php8:/usr/share/php/PEAR:/var/www/somesite/html/public/.scache/
---------------- SLOP DEFINES ---------------------
slopMTLS: true
slopEncryption: true
slopOS: LIN
slopShell: bash
slopTor: false
slopPGP: false
percorso completo .scache: /var/www/somesite/html/public/.scache/
Questi avranno colore a seconda dell'output, false di default rosso, true di default verde. Con piccole eccezioni per slopOS e slopshell, che sono verdi in ogni caso.
Utilizzo dello script client:

Connessione inversa avviata dallo script client:

Pagine di atterraggio randomizzate:

Io, come manutentore, non sono in alcun modo responsabile per l'uso improprio di questo prodotto. Questo è stato pubblicato per scopi legittimi di penetration test/red teaming e/o per valore educativo. Conosci le leggi applicabili nel tuo paese di residenza prima di usare questo script e non infrangere la legge mentre lo usi. Grazie e buona giornata.
Poiché la maggior parte dei server blocca la capacità degli script di scrivere nella directory servita (come dovrebbero), per impostazione predefinita uso la shell completa. La versione WordPress di questa shell funzionerà ancora correttamente, aggancia semplicemente la funzione init invece di essere solo una shell che sbatte al vento.