Lors de la compromission d'un serveur, il arrive que l'on ne puisse pas envoyer directement des exécutables sur celui-ci. Toutefois, il est souvent possible de copier du texte, que cela soit par copier / coller ou autres.

La méthode utilisée par sqlninja est intéressante car elle n'utilise que des outils disponibles par défaut sur Windows, à savoir le petit binaire "debug.exe". Il est possible de la reproduire dans d'autres cas, elle a par exemple été utilisée (avec succès ;)) lors de pentests impliquant du Citrix.

Détails de l'opération :

  • Première étape :

Sur notre machine, transformer l'exécutable en fichier "debug" à l'aide de dbgtool pour Windows ("dbgtool.exe monbinaire.exe" crée un fichier "monbinaire.scr") ou l'outil makescr.pl fourni avec sqlninja pour linux.
On obtient ainsi un fichier texte un peu (!) plus gros que le binaire original.

Remarque : passez par la rubrique "Outils sympas" si vous n'avez pas d'idée d'exécutable à envoyer ;)

  • Deuxième étape :

Réaliser le copier / coller avec ce qui est à notre disposition (notepad, plein de echo avec redirection dans un fichier (méthode utilisée par sqlninja à l'aide de xp_cmdshell)).

  • Troisième étape :

Repasser le fichier texte en fichier exécutable avec le binaire debug présent de base sous Windows ("debug < monbinaire.scr"). Cela crée un fichier "#temp#" que l'on peut ensuite renommer en monbinaire.exe.

Attention, cette méthode ne permet pas de récupérer des binaires de plus de 64Ko car le débugger est en 16 bits. Il est donc conseillé d'utiliser upx pour réduire la taille du binaire avant de le passer en scr.

Note : Il existe d'autres méthodes au moins aussi (en fait plus) performantes (base64 par exemple, qui ne limite pas la taille de l'exe a envoyer).

Voilà, je rends l'antenne à Hurukan. A vous les studios. ;-)