De la réalité a la virtualité … 1/2

Alors pilule rouge ou pilule bleue ?

Non désole cette article ne va pas parler de cette trilogie où ils ont utilisé Nmap. A ce jour on ne sait toujours pas pourquoi d’ailleurs ?

La virtualité, une chose tant convoité par l’humain. Il n’y a qu’à regarder l’essor que connais les MMORPG depuis quelques temps pour comprendre qu’une vie virtuelle est tellement réjouissante pour le moral humain.
« Rêve ta vie en couleur, c’est le secret du bonheur. » Peter Pan connaissait t-il déjà les vies virtuelles ?
Les statisticiens ( pour une fois qu’ils servent … ) de chez Gartner annonce qu’en 2011, 80% des internautes auraient une seconde virtuelle.

Tout ça pour annoncer le sujet de ce petit article. Naviguant sur le Web je tombe sur un article paru dans Phrack #63 qui annonçait les rootkits de 4ème génération.
Oui je suis en retard :) mais mieux vaut tard que jamais. La technique proposée par Sherri Sparks et Jamie Butler est intitulée Virtual memory Subversion.

Lire la suite…

Publié dans Développement, Windows.

Classé dans , , , .


Injection de code sous Windows

Je suis tombé sur un POC de c0de90e7 sur Rootkit.com qui exposait une nouvelle technique d’injection de code dans un processus qui emploi une technique plus furtive que celles utilisées jusqu’alors.
Avant d’expliquer en détail le procédé très astucieux employé par cette personne, je vais d’abord rappeler quelques notions techniques.

I. CreateRemoteThread

Cette API est présente sous Windows NT, 2000, XP, Vista semble-t-il. Comme son nom l’indique celle-ci permet de créer un thread dans un autre processus.

Son prototype:

1
2
3
4
5
6
7
8
9
HANDLE WINAPI CreateRemoteThread( //Renvoi un Handle sur le thread créé.
  HANDLE hProcess, //Handle sur le processus cible.
  LPSECURITY_ATTRIBUTES lpThreadAttributes, //Pointeur sur un déscripteur de sécurité choisi pour le thread
  SIZE_T dwStackSize, //Spécifie la taille de la pile à l'initialisation du thread.
  LPTHREAD_START_ROUTINE lpStartAddress, //Adresse du début de la routine.
  LPVOID lpParameter, //Pointeur sur des paramètres éventuels.
  DWORD dwCreationFlags, //Flags servant par exemple a créer le thread sans le lancer : CREATE_SUSPENDED...
  LPDWORD lpThreadId //Pointeur sur un DWORD pour recevoir l'ID du thread créé.
);

Lire la suite…

Publié dans Développement, Windows.

Classé dans , , .