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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
WhacAMole — 라이브 메모리 분석으로 프로세스, 모듈, 핸들, 토큰, 스레드, .NET 어셈블리, 메모리 주소 공간 및 환경 변수에서 악성 코드 IOC를 탐지합니다. 후크, 셸코드, 메모리 영역, 모듈 및 프로세스를 덤프하고, 탐지하며, 디스어셈블합니다. | Kitploit
도구/GitHubGitHub/ignacioj/whacamole
Indicator of Compromise (IOC) ManagementDynamic Analysis (Sandboxing)Memory ForensicsReverse EngineeringShellcodeDebuggersForensicsMalware AnalysisDigital ForensicsBinary AnalysisThreat IntelligenceIncident Response
4541년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubignacioj/whacamole

WhacAMole

라이브 메모리 분석으로 프로세스, 모듈, 핸들, 토큰, 스레드, .NET 어셈블리, 메모리 주소 공간 및 환경 변수에서 악성 코드 IOC를 탐지합니다. 후크, 셸코드, 메모리 영역, 모듈 및 프로세스를 덤프하고, 탐지하며, 디스어셈블합니다.

저장소 보기

WhacAMole

WAM_logo

WhacAMole는 메모리 내 프로세스를 통합적으로 분석하고, 악성코드와 관련된 이상 징후를 탐지 및 경고하며, 확인, 상관 분석 또는 분석을 위한 모든 관련 정보를 파일에 저장하고, 의심스러운 메모리 영역, 프로세스 및 모듈을 덤프하는 프로그램입니다. 이를 위해 프로세스의 메모리 영역 및 로드된 모듈의 이상 징후뿐만 아니라 프로세스가 사용하는 모든 메모리 공간을 심층적으로 분석합니다. 현재 WhacAMole는 악의적인 행동 또는 악성코드에 의해서만 발생할 수 있는 67개의 경고를 식별할 수 있습니다. 프로세스, 메모리 및 모듈의 70개 이상의 속성을 표시하며, 메모리에서 읽은 많은 속성과 디스크의 해당 파일에 나타나는 속성을 비교하고, 의심스러운 메모리 영역을 부분적으로 디스어셈블하며, 분석가가 직접 조사할 수 있도록 메모리에서 수정된 내보내기 함수를 부분적으로 디스어셈블합니다.

Modificación de función por malware

다른 유사한 프로그램과 달리, 프로세스에 대한 모든 관련 정보를 분석가에게 제공하며, 악성코드와 관련된 특성을 다양한 경고로 레이블링하여 자체 분석을 수행하거나 악성 프로세스 존재의 다른 징후를 찾을 수 있도록 합니다. 경고는 위험도와 동일한 행동이 나타나는 프로세스 수에 따라 6가지 값의 척도로 분류되며, html 문서에 색상 척도로 반영됩니다. 6(검은색)은 감지된 특성이 악성코드로 인한 것일 확률이 가장 높음을 나타내고, 1(회색)은 비정상적인 동작이지만 동일한 동작이 많은 시스템 프로세스에서 관찰되었음을 나타냅니다.

Color codes

분석가의 작업을 용이하게 하기 위해 정보는 화면, 분석된 프로세스의 탐색 패널이 있는 HTML 파일 및 csv 텍스트 파일로 표시됩니다. html 문서의 사이드 패널에는 프로세스 트리가 표시되며, 프로세스에서 감지된 가장 높은 경고에 해당하는 색상, 문서 내 위치에 대한 하이퍼링크, 32비트 프로세스인 경우 PID가 파란색, .NET 프로세스인 경우 녹색으로 표시됩니다. CFG(Control Flow Guard)가 활성화된 프로세스는 기울임꼴로 표시됩니다.

Tree1

원격 RDP 세션에 대한 정보는 프로세스 정보 시작 부분에 표시됩니다.

RDP

네트워킹 기능은 두 가지 방식으로 표시됩니다. TCP 연결이 감지되면 지구본 기호로 표시되고, 연결된 소켓이 감지되면 빈 지구본 기호로 표시됩니다. 메모리에 http 탐색 라이브러리(wininet.dll 및 winhttp.dll)가 있는 프로세스에 대해 추가 기호(흰색 원)가 추가되었습니다.

TreeTCPSocket

네트워크 상세:

TCPDetail

연결된 소켓:

socketDetail

Mimikatz 유사 활동이 감지되면 특수 기호(키)가 있습니다.

socketDetail

html 문서의 탐색 패널 하단에는 모든 경고가 색상과 함께 표시되며, 경고가 감지된 프로세스의 PID는 프로세스가 표시된 문서 위치로의 하이퍼링크 형태로 제공됩니다.

Detections

경고가 감지된 프로세스가 없으면 해당 이름이 흰색 배경에 표시됩니다.

기본 패널에는 모든 프로세스가 축소 가능한 섹션에 정보와 함께 표시되며 기본적으로 숨겨져 있습니다. 모든 경고는 항상 표시됩니다.

socketDetail

저장된 메모리 영역은 안티바이러스가 삭제하는 것을 방지하기 위해 키 0x0E로 XOR 처리됩니다.

다음 항목을 분석, 비교 및 표시합니다.

1. 프로세스:

  • 프로세스 이름.
  • 파일 크기.
  • 프로세스 PID.
  • 프로세스의 PPID.
  • TCP 및 UDP 네트워크 연결.
  • 프로세스가 4개의 PEB 목록(InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList 및 LdrpHashTable)에 나타나는지 알려줍니다.
  • 프로세스가 메모리(VAD)에 표시되는지 알려줍니다.
  • Rich Header 정보.
  • 메모리에서 읽은 내보내기 함수 및 파일에서 읽은 내보내기 함수.
  • 가져온 함수.
  • 지연 로드 모듈
  • 프로세스 모듈에 할당된 메모리 보호.
  • 메모리 유형.
  • 메모리에 로드된 프로세스 진입점.
  • 파일에서 읽은 프로세스 진입점.
  • 프로세스의 메모리 주소.
  • 메모리 및 파일에서 읽은 PE 섹션. 차이가 있는 경우에만 표시됩니다.
  • PE 데이터 섹션 크기.
  • 실행 파일 특성(DLLCharacteristics).
  • 이미지의 주 버전 번호(MajorImageVersion).
  • 원본 및 계산된 체크섬.
  • VERSIONINFO 리소스에서 메모리 및 파일에서 읽은 값: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • LSA(로컬 보안 기관)에서 가져온 프로세스의 세션 ID.
  • 프로세스에서 볼 수 있는 세션 ID.
  • 로그인 세션 LUID(로컬 고유 식별자).
  • 프로세스가 시작된 로그인 세션의 LUID(로컬 고유 식별자).
  • 토큰 무결성.
  • 토큰 유형.
  • 로그온 유형.
  • 사용된 인증 패키지.
  • 사용자 및 도메인.
  • 사용자의 SID(보안 식별자).
  • 로컬 관리자 그룹의 구성원 여부.
  • 프로세스 명령줄.
  • 프로세스 파일 경로. VAD의 FullName과 PEB가 다를 경우 표시합니다.
  • 프로세스의 현재 작업 디렉터리(CWD).
  • PE 형식: x86/x64.
  • 대상 머신 유형(Target Machine).
  • 프로세스 생성 날짜-시간.
  • 시스템 시작부터 프로세스 생성까지 경과된 시간.
  • PE의 서명.
  • 메모리 및 파일에서 읽은 프로그램 데이터베이스 파일(.pdb)의 주소.
  • 메모리 및 파일에서 읽은 IMAGE_FILE_HEADER에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_DEBUG_DIRECTORY에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_EXPORT_DIRECTORY에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_RESOURCE_DIRECTORY에서 가져온 날짜-시간.
  • 파일의 SHA1 해시.
  • .NET 실행 파일 여부 및 CLR 버전 정보.
  • 프로세스에서 NTFS 또는 트랜잭션 기록(TxF/TxR)이 감지되었는지 여부 정보.
  • 의심스러운 환경 변수를 찾습니다.
  • 스레드 상태를 확인합니다.
  • 각 프로세스와 연결된 시스템에서 실행 중인 작업을 가져옵니다.

• 경고:

root@kitploit:~
[Admin Privs]
[Alternate credentials]
[Alternate network credentials]
[Delphi 4 – Delphi 2006]
[Entry Point]
[LogonType]
[Managed code but no Assemblies detected - .NET ETW disabled]
[Mismatching Path]
[Name of the module hidden in memory]
[NTLM Authentication]
[PE anomalies]
[PEB ImageBaseAddress forgery]
[Possible .NET in memory loaded as Assembly.Load(byte[])]
[Process checkSum is 0]
[Process checkSum mismatch]
[Process Ghosting]
[Process Hollowing]
[Process Memory region hash mismatch]
[Process Memory region Protection value modified]
[Process Memory region WX]
[Process Name != Internal Name]
[PROCESS NOT SIGNED]
[Process Private memory region]
[Process Unknown executable memory region]
[Section Table]
[Shared memory subversion]
[SizeOfInitializedData is 0]
[SUSPENDED PROCESS]
[Suspicious Commandline]
[Suspicious Environment Variable]
[TimeDateStamp Inequality]
[Transaction detected: TxF/TxR]
[Unmanaged process/managed code execution detected]
[Unusual CWD]

Processes

2. 모듈:

  • 모듈 이름.
  • 파일 크기.
  • 파일 경로. VAD의 FullName과 PEB가 다를 경우 표시합니다.
  • 프로세스가 4개의 PEB 목록(InLoadOrderModuleList, InMemoryOrderModuleList, InInitializationOrderModuleList 및 LdrpHashTable)에 나타나는지 알려줍니다.
  • 프로세스가 메모리(VAD)에 표시되는지 알려줍니다.
root@kitploit:~
정상 모듈에서 예상되는 것은 LMIVH입니다.
L = InLoadOrderModuleList(PEB).
M = InMemoryOrderModuleList (PEB).
I = InInitializationOrderModuleList (PEB).
V = 프로세스 가상 메모리에서 감지됨.
H = PEB 해시 목록에서 감지됨.

세 개의 PEB 연결 목록에서 연결이 해제된 경우 다음과 같이 표시됩니다.
    ---VH

모듈이 맬웨어에 의해 수동으로 로드된 경우 PEB 목록에 표시되지 않지만 메모리 스캔으로 감지될 수 있으므로
다음과 같이 표시됩니다.
    −−−V−

Moat 기법을 사용한 DLL Hollowing의 경우(참조: https://github.com/forrest-orr/artifacts-kit POC) 결과는 다음과 같습니다.
    -----
  • Rich Header 정보.
  • 메모리에서 읽은 내보내기 함수 및 파일에서 읽은 내보내기 함수.
  • 모듈에 할당된 메모리 보호.
  • 메모리 유형.
  • 메모리에 로드된 프로세스 진입점.
  • 파일에서 읽은 프로세스 진입점.
  • 프로세스의 메모리 주소.
  • 메모리 및 파일에서 읽은 PE 섹션. 차이가 있는 경우에만 표시됩니다.
  • PE 데이터 섹션 크기.
  • 실행 파일 특성(DLLCharacteristics).
  • 이미지의 주 버전 번호(MajorImageVersion).
  • 원본 및 계산된 체크섬.
  • PE 형식: x86/x64.
  • 대상 머신 유형(Target Machine).
  • 메모리에서 모듈이 로드된 날짜-시간.
  • VERSIONINFO 리소스에서 메모리 및 파일에서 읽은 값: Comments, CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFilename, PrivateBuild, ProductName, ProductVersion, SpecialBuild.
  • EP의 서명.
  • 메모리 및 파일에서 읽은 프로그램 데이터베이스 파일(.pdb)의 주소.
  • 메모리 및 파일에서 읽은 IMAGE_FILE_HEADER에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_DEBUG_DIRECTORY에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_EXPORT_DIRECTORY에서 가져온 날짜-시간.
  • 메모리 및 파일에서 읽은 IMAGE_RESOURCE_DIRECTORY에서 가져온 날짜-시간.
  • 파일의 SHA1 해시.
  • .NET 실행 파일 여부 및 CLR 버전 정보.

• 경고:

root@kitploit:~
[Abnormal PE Header]
[Delphi 4 – Delphi 2006]
[DLL Hiding]
[DLL Hollowing]
[Mismatching Path]
[Module checkSum is 0]
[Module checkSum mismatch]
[Module Name != OriginalFileName]
[MODULE NOT SIGNED]
[Module PE anomalies]
[Module SizeOfInitializedData is 0]
[Module TimeDateStamp Inequality]
[Name of the module hidden in memory]
[Phantom DLL Hollowing TxF]
[Private memory region]
[Section Table]
[Signed PE NOT MEM_IMAGE]
[Unsigned PE NOT MEM_IMAGE]
[Unusual module]

Modules

3. 핸들: File, Key, Mutant, Process, Thread, Token 및 Section 유형의 모든 프로세스 핸들이 표시됩니다. 핸들 유형에 따라 다음 정보가 표시됩니다:

File: 파일의 전체 주소.

Handle File

NamedPipe: 클라이언트 프로세스, 서버 프로세스, 부여된 액세스, 커널의 개체 주소.

Named pipe

Key: 액세스된 키의 전체 주소.

Handle Key

Mutant: 뮤턴트 이름.

Mutant

Process: 프로세스 ID, 프로세스 이름, 부여된 액세스, 커널 개체 주소.

Handle Process

Thread: 프로세스 이름, 프로세스 ID, 스레드 ID, 부여된 액세스, 커널 개체 주소.

Handle Thread

Token: 사용자의 SID(보안 식별자), 사용자 및 도메인, 로그인 세션의 LUID(로컬 고유 식별자), 토큰 유형.

Handle Token

Section: 개체 이름, 핸들 ID, 메모리 주소, 크기, 메모리 할당 속성, 해당하는 경우 모듈 진입점, 허용된 액세스, 커널의 개체 주소.

Handle Section

• 경고:

root@kitploit:~
[Handle-Section Phantom DLL Hollowing TxF]
[Handle-Section Suspicious: Injection]
[Pipe Handle to another process]
[Process Handle to another process]
[ShadowMove Lateral Movement]

4. 토큰: 토큰이 감지된 스레드에서는 다음이 표시됩니다:

  • 스레드 ID.
  • 스레드 상태.
  • 사용자 및 도메인.
  • 로그인 세션의 LUID(로컬 고유 식별자).
  • 시작된 로그인 세션의 LUID(로컬 고유 식별자).
  • 토큰 유형.
  • 토큰 무결성.

• 경고:

root@kitploit:~
[Thread with TOKEN]

Tokens

5. 스레드:

  • 스레드 ID.
  • 스레드 시작 주소.
  • 모듈의 전체 주소.
  • 상태.
  • 호출 스택.

• 경고:

root@kitploit:~
[Thread-Memory NOT MEM_IMAGE]
[Thread-Possible Ekko technique]
[Thread-Possible Foliage technique]
[Thread-Unknown module in Stack]

Threads

6. .NET 어셈블리

  • 애플리케이션 도메인.
  • 파일의 전체 주소.

• 경고:

root@kitploit:~
[.NET Assembly w/o ILPath]

NET

7. 메모리 주소 공간. 프로세스의 모든 메모리 영역에서 다음 값을 표시합니다:

  • 메모리 주소.
  • 보호.
  • 상태.
  • 유형.
  • VAD에서 읽은 파일 이름.
  • 영역 크기.
  • 해당 할당이 속한 기본 주소.
  • 초기 메모리 할당 보호.

• 경고:

root@kitploit:~
[Executable memory region not MEM_IMAGE]
[Hidden PE]
[Lagos Island Method]
[Mapped Image]
[Memory region hash]
[Memory region Protection value modified]
[Memory region WX]
[Memory/File values mismatch]
[Moat detected]
[MZ/PE Not Present]
[Shellcode]
[Unknown executable memory region]

Memory

Memory

도구 다운로드