Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AMSI-patches-learned-till-now — 지금까지 배운 모든 AMSI 패치를 문서화했습니다. | Kitploit
도구/GitHubGitHub/reveng007/amsi-patches-learned-till-now
IDS/IPS EvasionReverse EngineeringPost-ExploitationLearning & EducationRed TeamingCurated Resources
GitHubreveng007/amsi-patches-learned-till-now

AMSI-patches-learned-till-now

지금까지 배운 모든 AMSI 패치를 문서화했습니다.

저장소 보기
7211610개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

지금까지 배운 AMSI 패치

지금까지 배운 모든 AMSI 패치를 문서로 정리했습니다

❗ 지금까지의 내 AMSI 패치 학습. 우리 회사 자산에 속하지 않습니다!

고지 사항: 이 코드는 지금까지 탐지 회피용이 아닙니다! 단지 개념적 접근일 뿐입니다!

링크:

  1. https://web.archive.org/web/20220718153535/https://pre.empt.dev/posts/maelstrom-etw-amsi/#Antimalware_Scan_Interface_(AMSI)
  2. https://rastamouse.me/memory-patching-amsi-bypass/

아직 구현해야 할 것:

  1. 하드웨어 브레이크포인트와 VEH를 통한 AMSI 패치: In-Process Patchless AMSI Bypass

이미지:

Capture

AMSI 패치 방법 중 하나:

AMSI_patch

개념:

1. AmsiOpenSession: 여러 검사 요청을 상호 연관시킬 수 있는 세션을 엽니다.

a. jne 호출 전의 모든 명령이 성공하면 jne 를 통해 amsi!AmsiOpenSession+0x4c 진입을 건너뛰기
=> 결국 amsi!AmsiCloseSession 으로 직접 이동하게 됩니다.

동영상 링크: https://drive.google.com/file/d/1H0JheGNGzIyWZ62HNLmJ_oeAAUtDGIKd/view?usp=sharing

amsi!AmsiOpenSession 에서 jne를 사용하는 기법을 보여준 @D1rkMtr에게 감사드립니다 Github. 저는 그의 AMSI 패치 코드 템플릿을 사용했고, 지금까지 제가 작업한 다른 방법들을 추가했습니다.

b. amsi!AmsiOpenSession 시작 부분에 _c3_를 직접 붙여넣어 _ret_를 통해 amsi!AmsiOpenSession+0x4c (여러 검사 요청을 상호 연관시킬 수 있는 세션을 엽니다) 진입을 건너뛰기
=> 결국 amsi!AmsiCloseSession 으로 직접 이동하게 됩니다.

동영상 링크: https://drive.google.com/file/d/1_tpCfJ-aO1wzeEx3Id7b7bTJUyc5ExBw/view?usp=sharing

2. AmsiScanBuffer: 버퍼 전체의 콘텐츠를 검사하여 악성코드 여부를 확인합니다.

a. amsi!AmsiScanBuffer 시작 부분에 _c3_를 직접 붙여넣어 _ret_를 통해 amsi!AmsiScanBuffer 의 주요 명령 실행을 건너뛰기

동영상 링크: https://drive.google.com/file/d/1PljZld1aXz89nCO3gQCjYpwSqbEbi4J_/view?usp=sharing

b. amsi!AmsiScanBuffer 시작 부분에 \\xB8\\x57\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070057; ret')를 직접 붙여넣어, amsi!AmsiScanBuffer 에서 실제 검사를 수행하고 반환하는 분기를 건너뛰기

여기서 HRESULT 값(정확히는 오류 값)은 'E_INVALIDARG'입니다 (출처: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)

이 블로그를 작성한 @_RastaMouse_ 에게 감사드립니다.

c. amsi!AmsiScanBuffer 시작 부분에 \\xB8\\x05\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070005; ret')를 직접 붙여넣어, amsi!AmsiScanBuffer 에서 실제 검사를 수행하고 반환하는 분기를 건너뛰기

여기서 HRESULT 값(정확히는 오류 값)은 'E_ACCESSDENIED'입니다 (출처: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)

d. amsi!AmsiScanBuffer 시작 부분에 \\xB8\\x06\\x00\\x07\\x80\\xC3 ('mov eax, 0x80070006; ret')를 직접 붙여넣어, amsi!AmsiScanBuffer 에서 실제 검사를 수행하고 반환하는 분기를 건너뛰기

여기서 HRESULT 값(정확히는 오류 값)은 'E_HANDLE'입니다 (출처: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)

e. amsi!AmsiScanBuffer 시작 부분에 \\xB8\\x0E\\x00\\x07\\x80\\xC3 ('mov eax, 0x8007000E; ret')를 직접 붙여넣어, amsi!AmsiScanBuffer 에서 실제 검사를 수행하고 반환하는 분기를 건너뛰기

여기서 HRESULT 값(정확히는 오류 값)은 'E_OUTOFMEMORY'입니다 (출처: https://pre.empt.dev/posts/maelstrom-etw-amsi/#Historic_AMSI_Bypasses)

기타 중요한 블로그:

Ritaban Das 작성: https://github.com/dosxuz/TradecraftImrprovement

  1. Null 문자를 이용한 AMSI 우회: https://standa-note.blogspot.com/2018/02/amsi-bypass-with-null-character.html
  2. Win10: AMSI 내부 구조: AMSI 우회: 패치 기법: https://www.cyberark.com/resources/threat-research-blog/amsi-bypass-patching-technique
  3. AMSI 메모리 변조 헌팅: https://blog.f-secure.com/hunting-for-amsi-bypasses/
  4. BlackHat 2018: https://i.blackhat.com/briefings/asia/2018/asia-18-Tal-Liberman-Documenting-the-Undocumented-The-Rise-and-Fall-of-AMSI.pdf
  5. PowerShell AMSI, 스크립트 블록 로깅 및 PowerShell 로깅 살펴보기 – 의심스러운 문자열 회피: https://www.mdsec.co.uk/2018/06/exploring-powershell-amsi-and-logging-evasion/
  6. AMSI WLDP Dotnet 비활성화: https://modexp.wordpress.com/2019/06/03/disable-amsi-wldp-dotnet/
  7. BlackHat 2022: AMSI 및 우회: 알려진 AMSI 우회 기법 검토 및 새로운 기법 소개: https://www.youtube.com/watch?v=8y8saWvzeLw
  8. 로컬 프로세스에서 NtCreateSection 후킹을 통한 AMSI 우회: https://waawaa.github.io/es/amsi_bypass-hooking-NtCreateSection/
  9. 수명 주기 AMSI 우회: _첫 번째 바이트_를 패치하고 JE에서 JMP로 변경하여 바로 반환되도록 하기... : https://github.com/ZeroMemoryEx/Amsi-Killer
  10. 관리자 권한으로 시스템 전체 AMSI 무력화: https://www.pavel.gr/blog/neutralising-amsi-system-wide-as-an-admin
  11. 보안 업체들의 Microsoft Antimalware Scan Interface 사용을 추적하기 위한 노력: https://github.com/subat0mik/whoamsi
  12. 런타임에 Amsi.dll 코드 패치를 찾는 스캐너로부터 탐지되지 않는 패치리스 AMSI 우회: https://github.com/CCob/SharpBlock
  13. AMS1 우회 Powershell: https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell
  14. 난독화된 DLL을 통한 AMSI 및 ETW 비활성화: https://github.com/icyguider/LightsOut
도구 다운로드