NetShell - InitHelperDll callback function

ѠOOT

NetShell - InitHelperDll callback function

par ѠOOT »

Bonjour,

De retour après 2 bonnes semaines sans écrire un mot sur ce forum.
Avant toute chose, meilleurs vœux à tous pour cette année 2015.

Je vais vous relater une anecdote d'un cas de compromission observé l'année dernière. Les comportements anormaux de la machine avaient attirés l'attention. Les premiers éléments de l'investigation montraient qu'un chargeur injectait un code malveillant dans un processus cible avant de se décharger. La routine... sauf que le chargeur en question n'est autre que le shell réseau, l'utilitaire netsh de Microsoft. En le traçant, on comprends rapidement que l'origine provient plus d'une bibliothèque illégitime chargée depuis netsh. Voilà qui change un peu des entrées sur Démarrage, System.ini, Win.ini, Autoexec.bat, et registre avec Run, RunOnce, etc... Les recherches sur la bibliothèque menèrent à une valeur dans l'éditeur de Registre. Bien avant la compromission, cette machine était configurée pour exécuter plusieurs scripts au démarrage dont quelques uns avec des commandes netsh. L'intrus a donc su s'adapter afin de se fondre dans le décors en créant un point de chargement simple et discret pour y placer méticuleusement et avec patience sa porte dérobée.

Comme à l'habitude, pour ceux qui souhaitent tester, j'ai recréé une démo inoffensive ( affiche seulement "OWNED" ) à extraire dans C:\ Un clique droit sur "c:\demo.reg" puis sélectionner "Incrire" dans le menu contextuel.

À l'exécution de netsh, "c:\demo.dll" ( 1,78 Ko ) se charge.
Image

Pour + de détails techniques, lire InitHelperDll function called by NetShell to perform an initial loading of a helper.

Dans le cas étudié, il a vite été question de dater les différents éléments. Les informations de type timestamp du PE ont été strippées et les dates de création, modification,.. de la bibliothèque étaient identiques à celles de certains fichiers systèmes légitimes. Par contre la date de la clef était plus évocatrice:

Image

Extrait du rapport RegAlyzer

+ Accessing HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NetSh
NumSubKeys: 0
MaxSubKeyLen: 0
NumValues: 13
MaxValueLen: 8
MaxDataLen: 26
FileTime: 17/02/2013 13:15:08
+ Accessing DACL_SECURITY_INFORMATION
...

Aïe, début 2013, ajoutez à cela que l'intrus était rentré la première fois par la grande porte, comme un Prince dès la première tentative, avec les précieux identifiants. Dur ! Le mal est fait mais depuis les leçons ont été tirées afin de mieux cloisonner, auditer, détecter et prévenir différents types d'intrusions.

Revenir à « Tech, Tips & Tricks »