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
WFH — Outil d'analyse dynamique basé sur Frida qui identifie automatiquement les vulnérabilités de sideloading de DLL et de détournement COM dans les exécutables Windows via l'instrumentation en cours d'exécution et l'analyse de l'IAT. | Kitploit
Outils/GitHubGitHub/conscioushacker/wfh
Analyse Dynamique (Sandboxing)ExploitationFuzzingAnalyse de Binaires
GitHubconscioushacker/wfh

WFH

Outil d'analyse dynamique basé sur Frida qui identifie automatiquement les vulnérabilités de sideloading de DLL et de détournement COM dans les exécutables Windows via l'instrumentation en cours d'exécution et l'analyse de l'IAT.

Voir le dépôt
436722il y a 4 ansVé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 →
Partager

Windows Feature Hunter (WFH)

Windows Feature Hunter (WFH) est un script Python de preuve de concept qui utilise Frida, un kit d'instrumentation dynamique, pour aider à identifier potentiellement des « vulnérabilités » ou « fonctionnalités » courantes dans les exécutables Windows. WFH a actuellement la capacité d'identifier automatiquement les opportunités de sideloading de bibliothèques de liens dynamiques (DLL) et de détournement de modèle COM (Component Object Model) à grande échelle.

Le sideloading de DLL utilise l'assembly côte à côte Windows (WinSXS) pour charger une DLL malveillante à partir de la liste côte à côte (SXS). Le détournement de COM permet à un adversaire d'insérer du code malveillant qui peut être exécuté à la place d'un logiciel légitime en détournant les références et les relations COM. WFH affichera les vulnérabilités potentielles et écrira un fichier CSV contenant les vulnérabilités potentielles dans les exécutables Windows cibles.

Table des matières

  • Windows Feature Hunter (WFH)
    • Installation de WFH
    • Aide de WFH
    • Utilisation de WFH
      • Identification du sideloading de DLL avec WFH
      • Identification du détournement de COM avec WFH
    • Cas d'utilisation de WFH
      • Binaires signés Windows natifs
  • Windows Feature Hunter Dridex (WFH Dridex)
    • Installation de WFH Dridex
    • Dépendances de WFH Dridex
Utilisation de WFH Dridex
  • Identification du sideloading de DLL avec WFH Dridex
  • Sideloads de DLL de WFH Dridex depuis System32
    • Résultats WFH vs WFH Dridex
  • Contribution à HijackLibs
  • Installation de WFH

    root@kitploit:~
    pip install -r requirements.txt
    

    Aide de WFH

    root@kitploit:~
    PS C:\Tools\WFH > python .\wfh.py -h
    usage: wfh.py [-h] -t T [T ...] -m {dll,com} [-v] [-timeout TIMEOUT]
    
    Windows Feature Hunter
    
    optional arguments:
      -h, --help            show this help message and exit
      -t T [T ...], -targets T [T ...]
                            list of target windows executables
      -m {dll,com}, -mode {dll,com}
                            vulnerabilities to potentially identify
      -v, -verbose          verbose output from Frida instrumentation
      -timeout TIMEOUT      timeout value for Frida instrumentation
    
    EXAMPLE USAGE
        NOTE: It is recommended to copy target binaries to the same directory as wfh for identifying DLL Sideloading
    
        DLL Sideloading Identification (Single):        python wfh.py -t .\mspaint.exe -m dll
        DLL Sideloading Identification (Verbose):       python wfh.py -t .\mspaint.exe -m dll -v
        DLL Sideloading Identification (Timeout 30s):   python wfh.py -t .\mspaint.exe -m dll -timeout 30
        DLL Sideloading Identification (Wildcard):      python wfh.py -t * -m dll
        DLL Sideloading Identification (List):          python wfh.py -t .\mspaint.exe .\charmap.exe -m dll
    
        COM Hijacking Identification (Single):          python wfh.py -t "C:\Program Files\Internet Explorer\iexplore.exe" -m com
        COM Hijacking Identification (Verbose):         python wfh.py -t "C:\Program Files\Internet Explorer\iexplore.exe" -m com -v
        COM Hijacking Identification (Timeout 60s):     python wfh.py -t "C:\Program Files\Internet Explorer\iexplore.exe" -m com -timeout 60
        COM Hijacking Identification (Wildcard):        python wfh.py -t * -m com -v
        COM Hijacking Identification (List):            python wfh.py -t "C:\Program Files\Internet Explorer\iexplore.exe" "C:\Windows\System32\notepad.exe" -m com -v
    

    Utilisation de WFH

    Identification du sideloading de DLL avec WFH

    Vous devez d'abord copier les binaires que vous souhaitez analyser dans le même répertoire que WFH

    root@kitploit:~
    PS C:\Tools\WFH > copy C:\Windows\System32\mspaint.exe .
    PS C:\Tools\WFH > copy C:\Windows\System32\charmap.exe .
    PS C:\Tools\WFH > dir
    
    
        Directory: C:\Tools\WFH
    
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    d-----         5/14/2021   2:12 PM                .vscode
    -a----          5/6/2021   2:39 PM           1928 .gitignore
    -a----         12/7/2019   2:09 AM         198656 charmap.exe
    -a----         5/18/2021   7:39 AM           6603 loadlibrary.js
    -a----          4/7/2021  12:48 PM         988160 mspaint.exe
    -a----         5/18/2021   7:53 AM           8705 README.md
    -a----         5/17/2021  11:27 AM           5948 registry.js
    -a----          5/6/2021   2:41 PM             11 requirements.txt
    -a----         5/18/2021   8:35 AM          10623 wfh.py
    

    Vous pouvez maintenant exécuter wfh sur les binaires pour identifier les opportunités de sideloading de DLL

    root@kitploit:~
    PS C:\Tools\WFH > python .\wfh.py -t * -m dll
    ==================================================
    Running Frida against charmap.exe
    --------------------------------------------------
            [+] Potential DllMain Sideloading: LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    
    [*] Writing raw Frida instrumentation to charmap.exe-raw.log
    [*] Writing Potential DLL Sideloading to charmap.exe-sideload.log
    --------------------------------------------------
    ==================================================
    Running Frida against mspaint.exe
    --------------------------------------------------
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : gdiplus.dll, dwFlags : NONE
            [-] Potential DllExport Sideloading: GetProcAddress,hModule : C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.789_none_faf0a7e97612e7bb\gdiplus.dll, LPCSTR: GdiplusStartup
            [+] Potential DllMain Sideloading: LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    
    [*] Writing raw Frida instrumentation to mspaint.exe-raw.log
    [*] Writing Potential DLL Sideloading to mspaint.exe-sideload.log
    --------------------------------------------------
    ==================================================
    [*] Writing dll results to dll_results.csv
    
    PS C:\Tools\WFH > type .\dll_results.csv
    Executable,WinAPI,DLL,EntryPoint / WinAPI Args
    charmap.exe,LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
    charmap.exe,LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    mspaint.exe,LoadLibraryExW,LPCWSTR : gdiplus.dll, dwFlags : NONE
    mspaint.exe,GetProcAddress,hModule : C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.789_none_faf0a7e97612e7bb\gdiplus.dll, LPCSTR: GdiplusStartup
    mspaint.exe,LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
    mspaint.exe,LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    

    Si vous préférez une sortie plus détaillée, vous pouvez utiliser "-v" pour voir chaque message de Frida instrumentant les appels API Windows. Vous pouvez également consulter cette sortie dans le fichier journal brut.

    root@kitploit:~
    PS C:\Tools\WFH > python .\wfh.py -t * -m dll -v
    ==================================================
    Running Frida against charmap.exe
    {'type': 'send', 'payload': 'LoadLibraryW,LPCWSTR: MSFTEDIT.DLL'}
    {'type': 'send', 'payload': 'LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE'}
    --------------------------------------------------
            [+] Potential DllMain Sideloading: LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    
    [*] Writing raw Frida instrumentation to charmap.exe-raw.log
    [*] Writing Potential DLL Sideloading to charmap.exe-sideload.log
    --------------------------------------------------
    ==================================================
    Running Frida against mspaint.exe
    {'type': 'send', 'payload': 'LoadLibraryExW,LPCWSTR : gdiplus.dll, dwFlags : NONE'}
    {'type': 'send', 'payload': 'GetProcAddress,hModule : C:\\WINDOWS\\WinSxS\\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.789_none_faf0a7e97612e7bb\\gdiplus.dll, LPCSTR: GdiplusStartup'}
    {'type': 'send', 'payload': 'LoadLibraryW,LPCWSTR: MSFTEDIT.DLL'}
    {'type': 'send', 'payload': 'LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE'}
    --------------------------------------------------
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : gdiplus.dll, dwFlags : NONE
            [-] Potential DllExport Sideloading: GetProcAddress,hModule : C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.789_none_faf0a7e97612e7bb\gdiplus.dll, LPCSTR: GdiplusStartup
            [+] Potential DllMain Sideloading: LoadLibraryW,LPCWSTR: MSFTEDIT.DLL
            [+] Potential DllMain Sideloading: LoadLibraryExW,LPCWSTR : MSFTEDIT.DLL, dwFlags : NONE
    
    [*] Writing raw Frida instrumentation to mspaint.exe-raw.log
    [*] Writing Potential DLL Sideloading to mspaint.exe-sideload.log
    --------------------------------------------------
    ==================================================
    [*] Writing dll results to dll_results.csv
    

    Identification du détournement de COM avec WFH

    root@kitploit:~
    PS C:\Tools\WFH > python .\wfh.py -t "C:\Program Files\Internet Explorer\iexplore.exe" -m com
    ==================================================
    Running Frida against C:\Program Files\Internet Explorer\iexplore.exe
    --------------------------------------------------
            [+] Potential COM Hijack: Path : HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{0E5AAE11-A475-4C5B-AB00-C66DE400274E}\InProcServer32,lpValueName : null,Type : REG_EXPAND_SZ, Value : %SystemRoot%\system32\Windows.Storage.dll
            [+] Potential COM Hijack: Path : HKEY_CLASSES_ROOT\CLSID\{1FD49718-1D00-4B19-AF5F-070AF6D5D54C}\InProcServer32,lpValueName : null,Type : REG_SZ, Value : C:\Program Files (x86)\Microsoft\Edge\Application\90.0.818.62\BHO\ie_to_edge_bho_64.dll
    
    [*] Writing raw Frida instrumentation to .\iexplore.exe-raw.log
    [*] Writing Potential COM Hijack to .\iexplore.exe-comhijack.log
    --------------------------------------------------
    ==================================================
    [*] Writing dll results to comhijack_results.csv
    

    Cas d'utilisation de WFH

    Binaires signés Windows natifs

    Copiez tous les binaires signés Windows natifs dans le répertoire wfh

    root@kitploit:~
    Get-ChildItem c:\ -File | ForEach-Object { if($_ -match '.+?exe$') {Get-AuthenticodeSignature $_.fullname} } | where {$_.IsOSBinary} | ForEach-Object {Copy-Item $_.path . }
    

    Recherchez les opportunités de sideloading de DLL

    root@kitploit:~
    python wfh.py -t * -m dll
    

    Recherchez les opportunités de détournement de COM

    root@kitploit:~
    python wfh.py -t * -m com
    

    Windows Feature Hunter Dridex (WFH Dridex)

    Windows Feature Hunter Dridex (WFH Dridex) est un script Python de preuve de concept inspiré du chargeur Dridex. WFH Dridex analyse la table d'adresses d'importation (IAT) des exécutables cibles, compile une DLL pour chaque entrée de l'IAT des exécutables et valide si un sideload de DLL a été identifié.

    La version originale de WFH a identifié environ 96 opportunités potentielles de sideloading de DLL. WFH Dridex a identifié environ 966 opportunités validées de sideloading de DLL.

    Installation de WFH Dridex

    root@kitploit:~
    pip install -r requirements.txt
    

    Dépendances de WFH Dridex

    MingW G++ (64 bit)

    g++.exe doit être ajouté à la variable d'environnement PATH après l'installation pour que WFH Dridex fonctionne correctement.

    Utilisation de WFH Dridex

    Identification du sideloading de DLL avec WFH Dridex

    Vous devez d'abord copier les binaires que vous souhaitez analyser dans le même répertoire que WFH Dridex

    root@kitploit:~
    ❯ cp C:\Windows\System32\mspaint.exe .
    ❯ cp C:\Windows\System32\charmap.exe .
    
    root@kitploit:~
    ❯ python .\wfh_dridex.py
    [*] Creating a payload for charmap.exe with GetUName.dll
        |_ Compiling with: g++.exe -s -Os -static -shared -fpermissive -oGetUName.dll dllmain.c
        |_ Testing charmap.exe with GetUName.dll for DLL sideloading opportunity
        |_ PID: 8936
    [>] Listing working DLL sideloads
        |_ charmap.exe GetUName.dll
    [*] Creating a payload for mspaint.exe with MFC42u.dll
        |_ Compiling with: g++.exe -s -Os -static -shared -fpermissive testaroo.def -oMFC42u.dll dllmain.c
        |_ Testing mspaint.exe with MFC42u.dll for DLL sideloading opportunity
        |_ PID: 9472
    [*] Creating a payload for mspaint.exe with PROPSYS.dll
        |_ Compiling with: g++.exe -s -Os -static -shared -fpermissive -oPROPSYS.dll dllmain.c
        |_ Testing mspaint.exe with PROPSYS.dll for DLL sideloading opportunity
        |_ PID: 11308
    [*] Creating a payload for mspaint.exe with WINMM.dll
        |_ Compiling with: g++.exe -s -Os -static -shared -fpermissive -oWINMM.dll dllmain.c
        |_ Testing mspaint.exe with WINMM.dll for DLL sideloading opportunity
        |_ PID: 180
    [>] Listing working DLL sideloads
        |_ mspaint.exe MFC42u.dll
        |_ mspaint.exe PROPSYS.dll
        |_ mspaint.exe WINMM.dll
    

    Vous pouvez maintenant exécuter WFH Dridex sur les binaires pour identifier les opportunités de sideloading de DLL

    root@kitploit:~
    ❯ gc .\results.csv
    Executable,DllName
    charmap.exe,GetUName.dll
    mspaint.exe,MFC42u.dll
    mspaint.exe,PROPSYS.dll
    mspaint.exe,WINMM.dll
    

    Sideloads de DLL de WFH Dridex depuis System32

    Un exemple de sortie CSV de WFH Dridex exécuté sur C:\Windows\System32 peut être consulté ici.

    Résultats WFH vs WFH Dridex

    La version originale de WFH a identifié environ 96 opportunités potentielles de sideloading de DLL. WFH Dridex a identifié environ 966 opportunités validées de sideloading de DLL.

    Contribution à HijackLibs

    Dans le cadre de la version WFH Dridex, une pull request a été soumise au projet HijackLibs de Wietze, qui incluait 507 nouvelles entrées dans le projet.

    Télécharger l’outil