Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
aether — Outil de forensique mémoire et de chasse aux menaces pour Windows qui analyse la mémoire des processus en direct à la recherche de motifs malveillants, de techniques d'injection et d'assemblages .NET chargés de manière réflexive, en utilisant un modèle de confiance multicouche pour réduire les faux positifs. | Kitploit
Outils/GitHubGitHub/0xsp-srd/aether
Analyse Dynamique (Sandboxing)Criminalistique MémoireAnalyse des VulnérabilitésShellcodeAnalyse ForensiqueAnalyse de MalwareCriminalistique NumériqueCommandement et ContrôleAnalyse de BinairesRéponse aux Incidents
GitHub0xsp-srd/aether
584il y a 1 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

aether

Voir le dépôt

À propos

Outil de forensique mémoire et de chasse aux menaces pour Windows qui analyse la mémoire des processus en direct à la recherche de motifs malveillants, de techniques d'injection et d'assemblages .NET chargés de manière réflexive, en utilisant un modèle de confiance multicouche pour réduire les faux positifs.

Partager

Aether logo


Aether

version : 0.9 (version stable)

Aether est un outil de forensique mémoire et de chasse aux menaces sous Windows qui analyse la mémoire des processus en direct à la recherche de motifs malveillants, détecte les techniques d'injection, les signatures d'implant, les assemblages .NET chargés de manière réfléchie. Il fonctionne avec un modèle de confiance multicouche qui réduit considérablement le taux de faux positifs et chasse les comportements malveillants. Aether possède de bonnes capacités de détection des techniques de Hollowing, d'APC et de détournement de threads. Les analystes de sécurité peuvent l'utiliser pour scanner, chasser et capturer des régions suspectes pour une analyse hors ligne.

Documentation : https://0xsp.com/docs/aether-getting-started/

Articles de recherche :

https://0xsp.com/security%20research%20%20development%20srd/aether-memory-forensics-and-threat-hunting-tool/

https://0xsp.com/research/game-of-hide-and-seek-detecting-dynamic-api-resolution-at-runtime-with-aether/

Fonctionnalités principales

Explications rapides des fonctionnalités principales d'Aether, vous pouvez lire l'article technique complet pour plus de détails :

Analyse de signatures

  • Correspondance de motifs d'octets dans la mémoire du processus avec un index du premier octet qui offre un gain de vitesse de 50 à 100 fois par rapport à une analyse naïve
  • Double encodage ASCII + UTF-16LE — capture les chaînes stockées par le CLR .NET (où "msxsl:script" devient 6D 00 73 00 78 00 ...)
  • Chargement dynamique de règles à partir de fichiers JSON — déposez de nouvelles signatures dans rules/ sans recompilation
  • Détection d'en-tête PE dans les régions MEM_PRIVATE — signale les assemblages .NET chargés de manière réfléchie (métadonnées MZ + PE + BSJB)

IOC structurels de la mémoire

Aether superpose cinq filtres au signal brut de l'ensemble de travail, de sorte qu'une constatation nécessite plusieurs indicateurs concordants avant d'être signalée avec un filtrage FP :

Autres vérifications structurelles :

  • Référence croisée du module PEB : allocations MEM_IMAGE qui ne sont pas dans la liste des modules du PEB (DLL hollowing / module stomping)
  • Analyse de l'ensemble de travail : détection de pages de code modifiées via K32QueryWorkingSetEx, regroupée avec un seul appel système par région au lieu d'un par page de 4 Ko (environ 50 à 100 fois plus rapide que la boucle naïve)
  • Détection de RWX privé : signale les allocations MEM_PRIVATE + PAGE_EXECUTE_* (cela produit des résultats FP) (shellcode, JIT spray, allocations de stubs de code dynamique)
  • Sonde de prologue de hook — lit les 16 premiers octets de chaque page de code privé et correspond aux trampolines x86/x64 classiques :
    • E9 ?? ?? ?? ?? — JMP rel32
    • FF 25 ?? ?? ?? ?? — JMP [rip+disp32]
    • 68 ?? ?? ?? ?? C3 — PUSH imm32 ; RET
    • 48 B8 ?? ?? ?? ?? ?? ?? ?? ?? FF E0 —

Validation de l'adresse de démarrage des threads (TSAV / L8)

Aether vérifie les threads avec une classification plus stricte et une corrélation croisée avec les résultats L1–L5. Pour chaque thread créé dans le processus cible, Aether lit son Win32StartAddress via NtQueryInformationThread et, lorsque les permissions le permettent, également le Rip / Eip en direct via GetThreadContext / Wow64GetThreadContext. Chaque adresse est ensuite évaluée selon le tableau suivant, pour plus de détails lisez l'article de blog :

Ce qui rend cette vérification plus forte que la vérification de base "l'adresse de démarrage est-elle dans un module" :

  • Vérification croisée VirtualQueryEx — chaque adresse est interrogée pour Type / Protect / AllocationBase en un seul appel O(1) au lieu d'un balayage linéaire de la liste des modules
  • Corrélation croisée avec L1–L5 — un thread dont le démarrage se trouve dans une allocation déjà signalée passe de "OK" à TSAV_MODIFIED_HOST
  • Cohérence PEB — les modules hollowés sont détectés même lorsque l'adresse de démarrage se trouve techniquement dans une plage "réelle"
  • Sonde RIP suspendu — Win32StartAddress est accessible en écriture via NtSetInformationThread et est le champ usurpable ; le Rip en direct d'un thread suspendu est celui qu'un chargeur ne peut pas facilement réécrire. Nous comparons les deux et signalons toute divergence pointant vers une région suspecte
  • Conscience WoW64 — bascule automatiquement vers Wow64GetThreadContext et lit Eip pour les threads 32 bits dans un processus 64 bits
  • Échelle des droits d'accès — descend de → → par thread, de sorte que les scénarios d'accès partiel produisent toujours des classifications utiles

L9 + L10 - Détection de la table API du tas avec corrélation inter-modules

La résolution d'API à l'exécution est une technique fréquemment utilisée par les logiciels malveillants. Le mécanisme de détection d'Aether identifie ce comportement en analysant le tas à la recherche d'adresses et de pointeurs de module valides, et en corrélant les résultats avec les critères de filtrage décrits ci-dessous :

Chaque filtre élimine une classe FP spécifique observée dans la télémétrie réelle :

Analyse d'entropie et heuristiques de shellcode

Aether prend en charge la détection de motifs XOR au niveau du stub pour l'instant et adopte l'algorithme d'entropie de Shannon pour vérifier le caractère aléatoire des valeurs d'octets dans une région mémoire, il signale tout ce qui dépasse un seuil. Pour faire face au nombre élevé de FP, Aether utilise plusieurs indicateurs.

Détection de balise C2

  • Surveillance des connexions TCP — interroge GetExtendedTcpTable pour un PID cible
  • Détection de motif de balise — identifie les connexions périodiques de courte durée (comportement de rappel C2 classique)
  • Sortie de table de connexion — table console formatée avec état, point de terminaison, hits et protocole

Modes de sortie

  • Rapport console coloré avec surlignage ANSI basé sur la sévérité
  • JSON interprétable par machine pour l'intégration avec SIEM / pipeline d-tect.py
  • Sortie de suspicion graduée — chaque constatation MODIFIED_CODE_* comporte private_pages et region_pages afin que le triage dispose des chiffres réels
  • Sortie formatée en tableau utilisant des caractères de dessin de boîte Unicode pour la surveillance des connexions

Utilisation

root@kitploit:~
Aether.exe --scan --pid <PID> [OPTIONS]
Aether.exe --scan --lookup "ProcessName.exe"
Aether.exe --hunt <PID> SLEEP_MS PERIOD
Aether.exe --scan-all [OPTIONS]

Options

Comment compiler

Prérequis

  • Zig 0.16 — télécharger ici
  • La compilation croisée fonctionne depuis n'importe quel système d'exploitation hôte (Linux, macOS, Windows)

Construction

root@kitploit:~
git clone https://github.com/0xsp-SRD/aether
cd aether

# Construction Debug (contrôles de sécurité activés)
zig build

# Construction Release (binaire plus petit, plus rapide)
zig build -Doptimize=ReleaseSafe
# ou
zig build -Doptimize=ReleaseFast

L'exécutable construit se trouve dans zig-out/bin/Aether.exe.

Déploiement

Copiez zig-out/bin/Aether.exe et le répertoire rules/ sur la machine Windows cible si vous souhaitez effectuer une analyse de signature supplémentaire. Si le processus cible nécessite des privilèges Administrateur, vous devez exécuter Aether.exe avec les privilèges Administrateur.

Limitations

  • Mode utilisateur uniquement — pas de pilote noyau ; ne peut pas détecter les rootkits ou les manipulations au niveau du noyau
  • IPv4 uniquement — la surveillance des connexions TCP ne prend pas en charge les points de terminaison IPv6 pour l'instant.
  • Le diff disque L5 nécessite un accès au fichier — si le fichier module d'origine a été supprimé ou verrouillé, le diff sur disque ignore silencieusement ce module (les autres couches continuent de fonctionner)
  • La liste des trampolines usurpés TSAV est résolue dans le propre processus du scanner — capture le cas courant où les DLL système partagent une base ASLR à l'échelle de la session mais peut manquer des cibles avec des bases uniques par processus (rare sur Win10+)
  • La sonde RIP TSAV ne capture que les threads suspendus — une réécriture de Win32StartAddress sur un thread déjà en cours d'exécution ne peut être détectée que si le thread se trouve en attente au moment de la sonde (même contrainte que Moneta)
  • La détection XOR-PE est basique dans cette version

Licence

Aether Community est sous licence GNU GPL v3.0. Des licences commerciales sont disponibles uniquement auprès de l'auteur pour une utilisation propriétaire ou commerciale.

Télécharger l’outil
CoucheFiltreObjectif
L1StructurelSeules les sous-régions IMAGE exécutables sont considérées (élimine le bruit COW de .data / .rdata)
L2QuantitatifÉvaluation par le nombre de private_pages et le private_ratio (faible / moyen / élevé)
L3CorroborationPromu seulement si un signal indépendant s'accorde sur la même base d'allocation — hit de signature, missing_peb_entry, private_rwx, prologue de hook, ou diff sur disque
L4Sensible au CLRSuppression par module pour les cibles ngen / R2R / tiered-JIT (*.ni.dll, mscor*, clr*, coreclr, system.private.corelib*) au lieu d'un saut global lorsque le CLR est chargé
L5Diff sur disqueMappe le fichier module avec CreateFileMappingW(SEC_IMAGE_NO_EXECUTE) ; compare les 16 premiers octets de chaque page privée exécutable avec la même RVA sur disque. Toute divergence est un IOC de modification réelle
MOV RAX, imm64 ; JMP RAX
  • 49 BB ?? ?? ?? ?? ?? ?? ?? ?? 41 FF E3 — style Detours MOV R11, imm64 ; JMP R11
  • Détection CLR — sonde d'objet de section pour Cor_Private_IPCBlock_v4_<PID> et la v2 Cor_Private_IPCBlock_<PID> (héritage .NET 2/3 / mscorwks), de sorte que les pools d'applications bruyants exécutant d'anciens runtimes ne soient pas mal classifiés
  • VerdictSévéritéCondition
    TSAV_SHELLCODE_PRIVATECRITIQUEL'adresse se trouve dans une région MEM_PRIVATE + PAGE_EXECUTE_* — shellcode CreateRemoteThread classique
    TSAV_SUSPENDED_RIPCRITIQUELe Rip du thread suspendu diffère de Win32StartAddress et pointe vers une région suspecte — détecte l'usurpation de Win32StartAddress (astuces EarlyBird / APC) et les détournements SetThreadContext
    TSAV_HOLLOWED_HOSTÉLEVÉAdresse dans une allocation MEM_IMAGE qui n'est pas dans la liste des modules du PEB (DLL hollowing / module stomping)
    TSAV_MODIFIED_HOSTÉLEVÉAdresse dans une allocation MEM_IMAGE que le pipeline L1–L5 a déjà signalée comme MODIFIED_CODE_*, MISSING_PEB, PRIVATE_RWX, DISK_MEM_DIFF, ou HOOK_PROLOGUE
    TSAV_STAGED_PRIVATE_RWÉLEVÉMEM_PRIVATE + PAGE_READWRITE — préparation de shellcode avant VirtualProtect
    TSAV_MAPPED_NONPEMOYENMEM_MAPPED (section basée sur le fichier d'échange) sans en-tête PE — chargeur réfléchi sRDI / pagefile
    TSAV_SPOOF_TRAMPOLINEMOYENL'adresse correspond à un trampoline en liste de blocage (LoadLibraryA/W/ExA/W, WinExec, CreateProcessA/W, VirtualAlloc[Ex], RtlExitUserThread, RtlExitUserProcess, NtTerminateProcess, ShellExecuteA/W)
    QUERY_INFORMATION | GET_CONTEXT
    QUERY_INFORMATION
    QUERY_LIMITED_INFORMATION
    FiltreRègleClasse FP qu'il supprime
    F1count >= 5données en forme de pointeur aléatoire, NULL, HMODULES
    F2rejeter les séquences pointant uniquement vers l'EXE hôtevtables de classe d'application C++
    F3distinct_modules >= 2vtables de framework à DLL unique (Qt, MFC, wxWidgets)
    F4capability_modules >= 2vtables de navigateur / CRT touchant une seule DLL OS (ex. iertutil + ucrtbase + shlwapi)
    F5 (L10)>= 80% des pointeurs vérifiables atterrissent sur des RVA exportéstables de distribution Winsock LSP, tableaux de rappels de plugins, vtables pointant vers des méthodes internes (non exportées)
    DrapeauDescription
    --pid, -p <PID>ID du processus cible à analyser
    --lookup, -l <name>Trouver tous les PID correspondant à un nom de processus
    --json, -jSortie des résultats au format JSON (pour intégration SIEM)
    --verbose, -vAfficher les détails d'analyse par région
    --scan-all, -aAnalyser tous les processus
    --hunt, -b <PID> [ms] [hits]Surveiller les connexions — interroger toutes les ms (défaut 2000), signaler les points de terminaison avec ≥ hits occurrences
    --networkingMode de surveillance réseau
    --rules, -r <dir>Répertoire des règles (défaut : rules/)
    --config, -c <file>Fichier de règle unique (format hérité)
    --dump, ``Vider une région mémoire spécifique avec une taille personnalisée
    --read, ``Lire le contenu d'une région mémoire en direct sur le terminal
    --help, -hAfficher l'aide