________________________________________________________________ ____ __ __
/ ___________________________________________________________ ____ __ _ / `
\ / \[12]/ + ,\_____ ___/ . `
|\/ , \__/ . \____ /:/=[ un affaire de reverse shell ] =\:\ _____/ ` x
|| , . " :X \_______________________________ ____ ____ / , ` `
|| + , () . x , . ` ' ` \_ \ ,\\_ +\_ \ 'M ` | .
|| ` | ` , ` , + , ` ,--, + . \\_ \_ \ , \\_ K -+-
/ |+ -+- . , ` , ,',/ ,'. \_ \ . \\_ \_ \ - | `
/ . | ; + + . ` | : . :`` ,_): ' ` \\_ \_ \ \\_` 1 ,
/ ` . . x , .-=+=- `. ,. ,' ` , \_ \ + \\_` \_ \ 1
/\_____ x ' , . . X | ` `--' ` ` \\_ \_ \ , \\_ 1 +
\\_ \___________________ , . . ` , + ' , , ; x ._\ \___\\___\ \ .
\_ \ \__________________________________/ \ ` ,
\\_ /:/=[ Aka: ]=\:\ \
\__\__________________________________________ ______________________________ \`
\__\ /__/
\\_ /:/=[ __2 ]=\:\ _//
\__\________________________/__/
Depuis des temps immémoriaux, l'homme a essayé, a plusieurs reprise (non sans peine) de
comprendre d'ou venait son ombre...Avec un intérêt beaucoup moindre, voici une des solutions
a un problème d'un tout autre ordre, j'ai nommé: Comment ouvrir un reverse shell a partir
d'un simple script PHP sans avoir a utiliser un logiciel tierce ?
Il existe présentement une quantité incroyable de solutions (la majorité, si ce n'est la
totalité) utilisant des pseudo-shells "one time", je m'explique: un script PHP exécutant par
exemple shell_exec() et retournant le résultat via une page WEB dans un browser (tel que
Firefox ou IE. Cette solution est très basique et ne permet pas l'utilisation de programmes
plus complexes comme "vi" ou "lynx". J’entends par complexe le fait que les applications,
nommées précedement, ont la fâcheuse tendance de nécessitées une interaction continue avec
leur utilisateur. Le logiciel ne sort pas après son exécution, mais nécessite par contre un
CTRL-C pour terminer. Il y a aussi le fait d'avoir à taper dans un formulaire HTML pour faire
exécuter des commandes qui brise un peu l'ambiance kitch du bon vieux shell en console. Et
que pourrais bien en penser les voisins?
Pour régler le problème il faut donc être capable de lire le résultat d'une application et de
lui écrire (envoyer du contenu), on parle alors de transmission full-duplex. Le problème
étant qu'a priori PHP n'offrait pas ce genre de fonctionnalités, jusqu’a récemment avec la
venu de PHP 4.3.0 et 5.
Les nouvelles fonctionnalités sont donc arrivez sous la forme de la fonction "stream_select",
qui est une copie conforme du bon vieux select() en C, on peut donc faire du
"IO multiplexing" via PHP. Lire le contenu d'un socket ou d'un processus ne cause plus un
blocage complet du script PHP :)
Dans le cas ou ces fonctionnalités ne soient pas disponibles, la méthode efficace aurait pris
la forme d'un module PHP programmer en C contenant ce que vous auriez bien voulu charger
durant l'exécution du script via la fonction "dl()".
Revenons à nos moutons, voici le code, permettant de faire ce que je viens d'écrire, expliqué
ligne par ligne pour vous, les nombreux (Sarcasme) lecteurs. Les instructions sont justes
après le code:
--------------------------------SNIP HERE-------------------------------------------------
"; // a afficher un
die("