📦Sandbox
Une Sandbox est essentiellement une machine virtuelle isolée qui reproduit une partie ou l'ensemble d'un environnement informatique réel. Elle permet d'exécuter des applications potentiellement dangereuses tout en capturant leurs interactions avec le système d'exploitation et les fichiers.
🛌 Sleeping through Sandboxes
⏳ Contraintes de temps
Utiliser des techniques pour retarder l'exécution du code malveillant jusqu'à ce qu'il soit hors de la fenêtre de surveillance des Sandbox
📈 Calculs complexes et lourds
Une autre méthode consiste à effectuer des calculs complexes et lourds, comme le calcul de la suite de Fibonacci jusqu'à un certain nombre. La durée de cette méthode varie en fonction du matériel du système.
👨💻 Pour aller plus loin
Exemples
Sleeping through Sandboxes
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
// Exemple de retard d'exécution de 120 secondes (2 minutes)
Sleep(120000);
// Code malveillant à exécuter après le délai
downloadAndExecute();
return 0;
}⏳ Calculs complexes et lourds
Une autre méthode efficace consiste à effectuer des calculs complexes, comme le calcul de la suite de Fibonacci, pour ralentir l'exécution. Cela permet de prolonger le temps d'exécution au-delà des limites typiques des Sandboxes.
🌍 Géolocalisation
📍 Localisation des Sandboxes
Un facteur déterminant des Sandboxes est qu'elles sont souvent situées hors site et hébergées par des fournisseurs d'antivirus. Si vous savez que vous attaquez une entreprise européenne, et que votre binaire est exécuté en Californie, vous pouvez supposer raisonnablement que le binaire a fini dans une Sandbox.
Vous pouvez choisir d'implémenter un filtre de géolocalisation dans votre programme qui vérifie si le bloc d'adresse IP appartient à l'entreprise que vous ciblez ou s'il provient d'un espace d'adresse résidentielle.
🛠️ Services de vérification
Il existe plusieurs services que vous pouvez utiliser pour vérifier cette information :
ifconfig.me peut être utilisé pour récupérer votre adresse IP actuelle, avec des informations supplémentaires en option. En combinant cela avec RDAP d'ARIN, vous pouvez déterminer le fournisseur d'accès internet (ISP) retourné dans un format facile à analyser (JSON).
⚠️ Accès Internet et Restrictions
Il est important de noter que cette méthode ne fonctionnera que si l'hôte a accès à Internet.
Exemple
💻 Vérification des Informations Système
Les Sandboxes ont souvent des ressources limitées. Par exemple, Any.Run alloue seulement 1 cœur de CPU et 4 Go de RAM par machine virtuelle. La plupart des postes de travail ont généralement 2 à 8 cœurs de CPU, 8 à 32 Go de RAM et plus d'espace disque.
📋 Informations à Vérifier
Nombre de cœurs CPU
Quantité de RAM
Taille du disque
🛠️ Autres Critères Possibles
Numéro de série du disque
Nom d'hôte du PC
Version/numéro de série du BIOS/UEFI
Clé de produit Windows/version de l'OS
Informations sur l'adaptateur réseau
Vérifications de virtualisation
Utilisateur connecté
En utilisant ces informations, vous pouvez adapter votre code pour détecter un environnement de Sandbox.
Exemples
🌐 Interrogation des Informations Réseau
Cette méthode est la plus ouverte et la plus avancée que nous aborderons. Elle implique principalement l'interrogation d'informations sur le domaine Active Directory.
🏢 Vérification de l'Appartenance au Domaine
Presque aucune Sandbox de logiciels malveillants n'est jointe à un domaine. Ainsi, si une machine n'est pas jointe à un domaine, il est relativement sûr de supposer que ce n'est pas la cible appropriée. Cependant, il est prudent de collecter des informations sur le domaine pour être sûr.
📋 Objets à Interroger
Il existe de nombreux objets que vous pouvez interroger :
Ordinateurs
Comptes utilisateur
Dernières connexions utilisateur
Groupes
Administrateurs de domaine
Administrateurs d'entreprise
Contrôleurs de domaine
Comptes de service
Serveurs DNS
Exemples
Interroger les informations sur le domaine Active Directory peut indiquer la présence d'une Sandbox.
Last updated