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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PhantomFS — 허용된 프로세스에만 페이로드를 제공하기 위해 Windows 프로젝션 파일 시스템 기능 사용 | Kitploit
도구/GitHubGitHub/s1lkys/phantomfs
Encryption/Decryption ToolsPayload GenerationRed TeamingPayload Development
GitHubs1lkys/phantomfs

PhantomFS

허용된 프로세스에만 페이로드를 제공하기 위해 Windows 프로젝션 파일 시스템 기능 사용

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PhantomFS

ProjFS 공급자. 파일의 내용이 어떤 프로세스가 읽는지에 따라 달라지는 파일을 프로젝션합니다. 페이로드는 AES-256-CBC 암호화되어 디스크에 저장되며, 런타임 시에만 메모리에서 복호화됩니다. 허용된 프로세스가 읽으려고 할 때만 페이로드가 디스크에 기록되므로 이는 EDR을 우회하지 않아야 합니다. 그 외 모든 것은 액세스 거부됩니다. 분석가의 도구가 파일을 읽지 못하거나 단순히 디코이를 로드하기 때문에 일부 분석가를 화나게 할 수 있습니다. 하지만 리파스 포인트를 사용하는 ProjFS라는 것을 쉽게 알 수 있습니다.

워크플로우

root@kitploit:~
1) 키 생성:     PhantomFS.exe -keygen
2) 페이로드 암호화:  PhantomFS.exe -encrypt mimikatz.exe -key <key> -out mimikatz.enc
3) 서비스:            PhantomFS.exe C:\Staging -file mimikatz.enc -key <key> -decoy C:\Windows\System32\calc.exe

예시:
PhantomFS.exe C:\Staging -file mimikatz.enc -key 7ed5a44412447be587b2ca2e4eacb17d41c869360663ae0fea1d0caca159483c -decoy C:\Windows\System32\calc.exe

결과: C:\Staging\calc.exe가 파일 시스템에 나타납니다.

  • cmd.exe가 읽으면 복호화된 mimikatz 바이트를 얻습니다.
  • 그 외 모든 것은 실제 calc.exe 바이트에 Null 패딩을 더한 값을 얻습니다.
  • 허용되지 않은 프로세스의 삭제/이름 변경 시도는 차단됩니다.

빌드

VS2022, PhantomFS.sln을 열고 x64 Release로 빌드합니다. Windows SDK(ProjFS 헤더 + 라이브러리)가 필요합니다.

사전 요구 사항

root@kitploit:~
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart

공급자는 중간 무결성 수준에서 실행되며 관리자가 필요하지 않습니다(ProjFS 기능 활성화에는 관리자가 필요함).

CLI 참조

Keygen

root@kitploit:~
PhantomFS.exe -keygen

Encrypt

root@kitploit:~
PhantomFS.exe -encrypt <input> -key <64_hex_chars> -out <output.enc>

형식: [16바이트 임의 IV][AES-256-CBC 암호문 + PKCS7 패딩]

Serve

root@kitploit:~
PhantomFS.exe <root_dir> -file <payload.enc> -key <hex> -decoy <benign_file>
    [-name <virtual_filename>]
    [-allow <process_substring>]  (반복 가능, 기본값: powershell.exe, pwsh.exe, cmd.exe)
    [-deny-read <process_substring>]  (반복 가능)
    [-quiet]

작동 방식

ProjFS 콜백은 모든 파일 액세스 시 TriggeringProcessImageFileName을 수신합니다.

  • GetFileDataCallback: 규칙에 따라 프로세스를 확인하여 페이로드 또는 디코이 바이트를 제공합니다.
  • NotificationCallback PRE_DELETE: 허용되지 않은 프로세스의 삭제를 차단합니다.
  • FILE_HANDLE_CLOSED: 재수화를 강제하기 위해 PrjDeleteFile을 호출합니다.

재수화 트릭은 ProjFS가 첫 번째 읽기 후 파일 내용을 캐시하기 때문에 필요합니다. 이 트릭이 없으면 두 번째 읽기 프로세스는 첫 번째 프로세스가 받은 내용을 그대로 받게 됩니다.

탐지 표면

  • PrjStartVirtualizing API 호출
  • IO_REPARSE_TAG_PROJFS 리파스 포인트
  • ProjFS Windows 기능 활성화
  • 고도 189800의 PrjFlt 마이크로필터 (fltmc.exe)
  • Microsoft-Windows-ProjFS ETW 공급자
  • 빈번한 파일 상태 전환 (hydrated -> placeholder)

영감:

  • https://www.huntress.com/blog/windows-projected-file-system-mechanics
도구 다운로드