Je crée makin pour faciliter l'évaluation des logiciels malveillants initiaux pour moi, je pense que c'est utile pour les autres également, cela aide à révéler une technique de détection de débogueur utilisée par un échantillon.
makin ouvre un échantillon en tant que débogGEE et injecte asho.dll (le module principal renonce à toutes dlls avant l'injection), asho.dll accroche plusieurs fonctions sur ntdll.dll et kernelbase.dll Libraries et après les paramètres de vérification, il envoie le message correspondant au Debugger ( makin.exe ).
makin génère également un script pour IDA Pro pour définir des points d'arrêt sur des API détectées.
En ce moment, makin peut révéler les techniques suivantes:
ntdll.dll :
NtClose - REF: La référence anti-débugage "ultime": 7.b.iiNtOpenProcess - Réf: la référence anti-débugage "ultime": 7.biNtCreateFile - Réf: la référence anti-débugage "ultime": 7.b.iii (ouvrir lui-même)NtCreateFile - Réf: La référence anti-débugage "ultime": 7.b.iii (ouvrir un pilote)LdrLoadDll - REF: La référence anti-débugage "ultime": 7.b.ivNtSetDebugFilterState - REF: La référence anti-débugage "ultime": 7.D.VINtQueryInformationProcess - Réf: Référence anti-débugage "ultime": 7.D.VIII.A, 7.D.VIII.B, 7.D.VIII.CNtQuerySystemInformation - Réf: la référence anti-débugage "ultime": 7.e.iiiNtSetInformationThread - Réf: la référence anti-débugage "ultime" 7.f.iiiNtCreateUserProcess - Réf: La référence anti-débugage "ultime" 7.GINtCreateThreadEx - REF: NTUERY Blog BlogNtSystemDebugControl - Réf: @waleedassar - PastebinNtYieldExecution - REF: La référence anti-débugage "ultime" 7.D.XIIINtSetLdtEntries - Réf: Tricks anti-unpacker: première partie - 2.1.2NtQueryInformationThread - REF: NTQuery - ntQueryInformationThreadNtCreateDebugObject et NtQueryObject - Réf: anti-lebug ntqueryObjectRtlAdjustPrivilege - Réf: Utilisation de rtladjustPrivilege pour détecter le débogueur par insid3codeteam PEB->BeingDebugged - Au lieu d'appeler IsDebuggerPresent() , certains programmes vérifient manuellement le PEB (Bloc de l'environnement de processus) pour le drapeau BeingDebugged .PEB->NtGlobalFlag - Réf: al-khaserUserSharedData->KdDebuggerEnabled - REF: Al-Khaser - SharedUserData_KerneldebuggerPROCTECTED - Réf: al-khaser - manche_flag_protect_from_close kernelbase.dll :
IsDebuggerPresent - Réf: MSDNCheckRemoteDebuggerPresent - REF: MSDNSetUnhandledExceptionFilter - Réf: la référence anti-débugage "ultime": d.xvRegOpenKeyExInternalW - vérifie les clés de registreRegQueryValueExW - vérifie les valeurs de clé de registre Vous pouvez ajouter plus de vérifications de machine virtuelle via l'édition de checks.json , sans modification de l'exécutable
C'est tout pour l'instant, vous pouvez ajouter autant que vous le souhaitez :)
