12 Comments

  • 1. mxatone  |  décembre 28th, 2009 at 20:12

    Content que tu reviennes a la realite ! :)

    SInon l’autre moyen de se cacher serait de remapper son propre binaire a l’exterieur d’une section tag SEC_IMAGE et apres de s’unload. Par contre faut vraiment en vouloir !

  • 2. Baboon  |  décembre 29th, 2009 at 14:25

    #define HASHTABLE_DATA_OFFSET 0×260

    Eh ba c’est propre ça ;)
    Tu peux pas faire mieux avec les symboles ?

    Sinon tu peux aussi forcer le loader win à utiliser une autre API que ZwMapViewOfSection (hook ou exécution contrôlée) pour loader ta dll et ainsi éviter la détection par VMMap

    Après tu peux toujours loader ta dll à la main ;) ca dépend ce que tu veux faire avec …

  • 3. admin  |  décembre 29th, 2009 at 22:06

    @Baboon
    Si on peut faire plus précis avec les symboles :]

    Sinon modifier le loader je trouver ca un peu violent par contre un petit loader de DLL ferait clairement l’affaire.

  • 4. Flopik  |  janvier 2nd, 2010 at 02:30

    La meilleur facon pour retrouver les dlls, c’est avec le VAD

  • 5. admin  |  janvier 2nd, 2010 at 13:23

    @Flopik
    Wai c’est ce que utilise ZwQueryVirtualMemory en fait.

  • 6. Flopik  |  janvier 2nd, 2010 at 16:26

    On est aussi fourer, si la node est delinker du VAD, sois en modifiant le FILE_OBJECT ou en nulliant/modifiant le VadRoot ou les enfants du MMVAD

    typedef struct _MMVAD
    {
    ULONG u1;
    PMMVAD LeftChild;
    PMMVAD RightChild;
    ULONG StartingVpn;
    ULONG EndingVpn;
    ULONG u;
    EX_PUSH_LOCK PushLock;
    ULONG u5;
    ULONG u2;
    union
    {
    PSUBSECTION Subsection;
    PMSUBSECTION MappedSubsection;
    };
    PMMPTE FirstPrototypePte;
    PMMPTE LastContiguousPte;
    } MMVAD, *PMMVAD;

    typedef struct _SUBSECTION
    {
    PCONTROL_AREA ControlArea;

    typedef struct _CONTROL_AREA
    {
    PSEGMENT Segment;
    LIST_ENTRY DereferenceList;
    ULONG NumberOfSectionReferences;
    ULONG NumberOfPfnReferences;
    ULONG NumberOfMappedViews;
    ULONG NumberOfUserReferences;
    ULONG u;
    ULONG u1;
    EX_FAST_REF FilePointer;

    FilePointer va pointer sur un FILE_OBJECT(un peu différent sous Xp et Vista)

    En faisant ca, il ne reste plus grande facon de détecter des dlls injecter ou caché à part la page table , et on deviens caché usermode et kernel mode sans aucun hook.

  • 7. un_craneur  |  janvier 3rd, 2010 at 12:21

    Je me permet de repaster les structures de Flopik.

    MMVAD (Win7 x86)
    http://msdn.msuiche.net/win7rtm_x86/MMVAD.php

    CONTROL_AREA (Win7 x86)
    http://msdn.msuiche.net/win7rtm_x86/CONTROL_AREA.php

    SUBSECTION (Win7 x86)
    http://msdn.msuiche.net/win7rtm_x86/CONTROL_AREA.php

  • 8. Mp8  |  janvier 9th, 2010 at 05:10

    Merci pour ton Article Ivan ;)

    Je me demandais si on pouvait cacher des threads avec une technique semblable (en modifiant le PEB / TEB) ?

    L’autre jour, je testais le trick :

    RtlLeaveCriticalSection( NtCurrentTeb()->Peb->LoaderLock );

    Et j’ai remarqué que les threads du processus étaient invisible dans Process Explorer.
    Mais ça provoque plusieurs problèmes, surtout avec LoadLibrary et CreateThread.

  • 9. admin  |  janvier 11th, 2010 at 01:29

    @Mp8
    Yo, mail moi sur ivanlef0u@tuxfamily.org, j’ai qqch pour toi.

  • 10. sloshy  |  janvier 17th, 2010 at 18:09

    Yo,
    J’ai un 403 sur tes sources est-ce normal?

  • 11. admin  |  janvier 17th, 2010 at 21:34

    @sloshy
    Toujours des emmerdes avec le repo. J’espère le faire revenir bientôt. En attendant les sources sont la : http://download.tuxfamily.org/ivanblog/LdrpHashTable.rar

  • 12. Hidding Module from the V&hellip  |  mars 8th, 2010 at 19:18

    [...] =) Récemment j’ai lu un post d’Ivanlef0u : LdrpHashTable dans lequel il montre comment cacher une dll de cette table. En lisant ce post on peut dire que [...]

Trackback this post