
x64 어셈블리 인젝션 엔진은 SROP 및 제로 카피 인젝션을 사용하여 EDR/XDR 및 커널 모니터를 우회합니다. 탐지 표면이 최소화된 XOR 암호화 페이로드를 전달합니다.
Phantom-Evasion-Loader는 현대 EDR/XDR 솔루션 및 Falco(eBPF)와 같은 커널 수준 모니터의 탐지 표면을 최소화하기 위해 설계된 독립형 순수 x64 어셈블리 인젝션 엔진입니다. SROP 및 Zero-Copy Injection과 같은 고급 기술을 활용하여 페이로드를 머신 속의 유령처럼 전달합니다.
기존의 시끄러운 인젝터와 달리 이 엔진은 은밀함을 위해 제작되었습니다. 커널에 "나는 악성코드다"라고 외치지 않습니다. 대신 합법적인 시스템 디버깅 동작을 모방하여 행동 분석의 레이더에 걸리지 않는 정밀한 메모리 작업을 수행합니다.
SROP (Sigreturn Oriented Programming) 하이재킹: 시끄러운 ptrace 호출을 통해 레지스터를 하나씩 수동으로 설정하는 대신, rt_sigreturn (시스템 콜 15)을 사용하여 단일의 합법적으로 보이는 트랜잭션으로 CPU 컨텍스트 전체를 조작합니다.
Zero-Copy Injection (process_vm_writev): 구식이고 느리며 철저히 모니터링되는 PTRACE_POKEDATA 루프를 버립니다. process_vm_writev (시스템 콜 311)를 활용하여 로더의 메모리에서 대상 프로세스로 페이로드를 한 번에 직접 전송함으로써 표준 "코드 인젝션" 시그니처를 우회합니다.
탐지 표면 감소 (Falco/EDR): 실제 스트레스 테스트에서 이 아키텍처는 Falco의 기본 경고 노이즈를 "Critical/Warning" 로그 200줄 이상에서 "Low-Priority Debug" 노이즈 8줄로 줄였습니다.
인메모리 런타임 복호화 (XOR): 페이로드는 메모리에서 암호화된 상태로 유지되며 인젝션 시점에만 복호화됩니다. 이는 정적 셸코드 스캐너와 기본 메모리 문자열 분석을 무력화합니다.
동적 대상 열거: /proc 파일 시스템을 자동으로 파싱하여 cron, systemd, sshd와 같은 높은 권한의 루트 서비스를 찾아 대상으로 삼습니다.
이 로더는 "시스템 결함 디버거"로 위장합니다. strace 또는 gdb로 이름을 바꾸면 대부분의 EDR 규칙은 초기 ptrace_attach를 관리 작업으로 표시합니다. 이후의 "무거운 작업"—8MB 메모리 할당 및 에이전트 인젝션—은 SROP 및 process_vm_writev 구현 덕분에 완전히 보이지 않게 유지됩니다.
아래에서 볼 수 있듯이, 다형성 CMOV 아키텍처와 제로카피 인젝션은 정적 ML 및 차세대 EDR을 완전히 눈멀게 합니다.
🔥 무장 테스트 업데이트: 로더는 완전히 무장된 XOR 암호화 Ghost-C2 에이전트 셸코드를 포함하여 추가 테스트되었습니다. 분기 없는 아키텍처로 마스킹된 인메모리 복호화 루틴 덕분에 탐지율은 완벽한 0/65를 유지했습니다.



🎯 고급 샌드박스 검증: 정적 분석 성공 후, 로더는 Hatching Triage의 엔터프라이즈 샌드박스 플랫폼에서 행동 테스트를 거쳤습니다. 전체 SROP 기반 인젝션을 실행하고 실시간 C2 셸코드를 배포했음에도 불구하고, 로더는 현대 행동 휴리스틱에 대해 놀라운 회피를 달성했습니다.
Triage 샌드박스 결과:
/proc/*/comm 읽기 플래그 지정됨)중요 발견: 샌드박스가 표면 수준 정찰(프로세스 발견)을 식별했지만, 핵심 인젝션 메커니즘 및 침해 후 활동을 탐지하지 못했습니다. 이는 정교한 사용자랜드 기술이 행동 분석 엔진에 대해 상당한 회피를 달성할 수 있음을 보여줍니다.
로더는 가장 중요한 단계인 메모리 인젝션, SROP을 통한 시스템 콜 난독화, C2 비컨 설정 동안 운영상의 은밀성을 성공적으로 유지했습니다. 이는 분기 없는 + 직접 시스템 콜 아키텍처가 차세대 샌드박스 탐지에 효과적임을 검증합니다.
안전성과 모듈성을 위해 이 저장소에는 활성 악성 페이로드가 포함되어 있지 않습니다. c2_payload 섹션은 자리 표시자로 제공됩니다.
전체 규모 통합 테스트를 수행하려면:
https://github.com/JM00NJ/ICMP-Ghost-A-Fileless-x64-Assembly-C2-Agent 프로젝트로 이동합니다.
Phantom_Loader 디렉터리로 이동합니다.
loader.asm에서 사전 컴파일된 셸코드를 복사하여 이 엔진에 붙여넣습니다.
경고: 사용자 지정 셸코드를 사용할 때는 키 0xACDAABBBA2BC1337로 XOR 암호화하고, 페이로드 크기가 소스 코드의 3단계에서 올바르게 업데이트되었는지 확인하십시오.
로더는 롤링 XOR 복호화 메커니즘을 구현합니다. 셸코드를 준비하려면:
제공된 xor.py 스크립트를 사용합니다.
원시 16진수 문자열을 처리하고 8바이트 리틀 엔디언 키(0xACDAABBBA2BC1337)로 암호화합니다.
이렇게 하면 어셈블리 소스의 xor r10, r14 명령어가 런타임에 원래 명령어를 올바르게 복원할 수 있습니다.
블로그 / 기술 문서: https://netacoding.com/posts/phantom-evasion-loader-blog/
이 프로젝트는 GNU AGPLv3에 따라 라이선스가 부여됩니다. 연구가 커뮤니티에 공개되고 유익하게 유지되도록 하기 위해 이 라이선스를 선택했습니다.
AGPLv3의 카피레프트 성격이 상업적 요구 사항이나 독점 환경과 맞지 않는 경우, GitHub Issues 또는 이메일을 통해 사용자 지정 라이선스 또는 협업 기회에 대해 문의하시기 바랍니다.
이 프로젝트는 교육 목적 및 승인된 침투 테스트 전용으로 개발되었습니다. 저자는 오용에 대해 책임을 지지 않습니다. 소유하지 않거나 명시적인 서면 허가를 받지 않은 시스템에 대해 이 도구를 작동하는 것은 불법입니다.