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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
process-injection-playground — 프로세스 인젝션과 관련된 샘플 및 자료 모음 | Kitploit
도구/GitHubGitHub/oscerd/process-injection-playground
CTFPenetration TestingLearning & EducationRed TeamingPayload DevelopmentBinary Exploitation
GitHuboscerd/process-injection-playground

process-injection-playground

프로세스 인젝션과 관련된 샘플 및 자료 모음

저장소 보기
11310개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Linux 프로세스 인젝션 플레이그라운드

Linux용 프로세스 인젝션 기법의 종합적인 모음으로, 실행 중인 프로세스에 코드를 주입하는 다양한 방법을 시연합니다. 이 예제들은 교육 목적, 보안 연구, 그리고 저수준 Linux 프로세스 조작 이해를 위해 제공됩니다.

개요

프로세스 인젝션은 다른 프로세스의 컨텍스트에서 코드를 실행하는 데 사용되는 기술입니다. 종종 악성 코드와 연관되지만, 이러한 기법들은 다음 측면에서도 유용합니다:

  • 보안 연구: 공격 벡터 이해 및 방어 기법 개발
  • 디버깅: 실행 중인 애플리케이션 분석 및 수정
  • 계측: 성능 프로파일링 및 모니터링
  • 침투 테스트: 공인된 보안 평가
  • CTF 대회: Capture The Flag 챌린지

사용 가능한 기법

1. Ptrace 기반 코드 인젝션

디렉터리: ptrace/

ptrace() 시스템 호출을 사용하여 셸코드를 프로세스 메모리에 직접 작성하고 실행 흐름을 리디렉션하는 고전적인 프로세스 인젝션 방법입니다.

주요 특징:

  • PTRACE_POKETEXT를 통한 직접 메모리 조작
  • 명령 포인터(RIP) 하이재킹
  • 원시 셸코드 인젝션

사용 사례: 저수준 프로세스 제어 및 직접 코드 인젝션 이해

더 보기 →


2. LD_PRELOAD 인젝션

디렉터리: ld_preload/

다른 라이브러리보다 먼저 악성 라이브러리를 로드하기 위해 LD_PRELOAD 환경 변수를 사용하는 함수 인터포지션 기법입니다.

주요 특징:

  • 환경 변수 기반 인젝션
  • 심볼 인터포지션을 통한 함수 후킹
  • 생성자/소멸자 함수
  • 구현은 쉽지만 탐지도 쉬움

사용 사례: 함수 후킹, API 모니터링, 동작 수정

더 보기 →


3. /proc/mem 쓰기 인젝션

디렉터리: proc_mem/

프로세스 제어를 위해 ptrace와 결합하여 /proc/<pid>/mem 파일시스템 인터페이스를 통해 직접 메모리에 쓰는 기법입니다.

주요 특징:

  • 파일시스템을 통한 직접 메모리 접근
  • 대용량 페이로드에 대해 PTRACE_POKETEXT보다 효율적
  • 전체 셸코드에 대한 단일 쓰기 작업
  • 워드 정렬 요구 사항 없음

사용 사례: 빠른 대량 메모리 인젝션, 기존 ptrace 한계 우회

더 보기 →


4. dlopen() 라이브러리 인젝션

디렉터리: dlopen_inject/

실행 흐름을 하이재킹하여 dlopen()을 호출하도록 강제함으로써 실행 중인 프로세스가 공유 라이브러리를 로드하게 하는 정교한 기법입니다.

주요 특징:

  • 이미 실행 중인 프로세스에서도 동작(LD_PRELOAD와 달리)
  • 지속성(라이브러리가 계속 로드된 상태 유지)
  • 전체 라이브러리 기능을 갖춘 복잡한 페이로드 구현 가능
  • LD_PRELOAD처럼 함수를 후킹할 수 있지만 시작 이후에도 가능

사용 사례: 고급 지속성 인젝션, 런타임 라이브러리 조작

더 보기 →


빠른 시작

사전 요구 사항

  • Linux 시스템(x86_64에서 테스트됨)
  • GCC 컴파일러
  • 루트 접근 권한 또는 CAP_SYS_PTRACE 권한
  • Make 빌드 도구

모든 예제 빌드하기

# Build ptrace injection
cd ptrace && make all

# Build LD_PRELOAD injection
cd ../ld_preload && make all

# Build /proc/mem injection
cd ../proc_mem && make all

# Build dlopen injection
cd ../dlopen_inject && make all

기본 사용 패턴

각 기법은 유사한 패턴을 따릅니다:

  1. 피해자 프로세스 시작:

    cd <technique>/victim-process
    ./sample
    

    표시된 PID를 확인하세요

  2. 인젝션 수행:

    cd <technique>
    sudo ./<injector> <PID> [additional args]
    
  3. 결과 확인: 피해자 프로세스 출력에서 주입된 코드 실행을 확인하세요

기법별 지침은 각각의 README 파일을 참조하세요.

비교 매트릭스

기법복잡성은닉성지속성속도실행 중인 프로세스에 동작
ptrace중간낮음아니요중간예
LD_PRELOAD낮음매우 낮음아니요빠름아니요
/proc/mem중간낮음아니요빠름예
dlopen높음중간예중간예

어떤 것을 언제 사용할까?

  • ptrace: 기본 원리 학습, 간단한 셸코드 인젝션
  • LD_PRELOAD: 빠른 함수 후킹, 디버깅, 프로세스 시작을 제어할 수 있을 때
  • /proc/mem: 대용량 페이로드의 빠른 인젝션, PTRACE_POKETEXT가 너무 느릴 때
  • dlopen: 지속성 인젝션, 복잡한 페이로드, 전체 라이브러리 기능이 필요할 때

보안 고려 사항

방어 조치

  1. Yama ptrace_scope: ptrace를 권한 있는 사용자로 제한

    echo 1 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  2. SELinux/AppArmor: 강제 접근 제어

  3. 모니터링: auditd를 사용하여 ptrace 및 프로세스 인젝션 시도를 기록

    auditctl -a exit,always -F arch=b64 -S ptrace
    
  4. 런타임 무결성 검사: 프로세스 메모리를 주기적으로 검증

  5. 코드 서명: 라이브러리 서명 검증

탐지 방법

  • /proc/<pid>/maps에서 예상치 못한 메모리 영역이나 라이브러리를 모니터링
  • 시스템 로그를 통해 ptrace attach 시도 감시
  • 환경 변수(LD_PRELOAD) 확인
  • lsof, pmap 및 프로세스 모니터링 유틸리티 같은 도구 사용
  • 커널 보안 모듈 활성화

법적 및 윤리적 고지

중요: 이러한 기법은 승인된 환경에서만 사용해야 합니다:

이 저장소는 교육 및 연구 목적으로만 제공됩니다. 저자는 이러한 기법의 오용에 대해 책임을 지지 않습니다. 어떤 시스템에서든 테스트 전에 반드시 적절한 승인을 받으십시오.

문제 해결

일반적인 문제

권한 거부 오류:

  • sudo로 실행
  • /proc/sys/kernel/yama/ptrace_scope 확인
  • SELinux/AppArmor 정책 확인

인젝션이 조용히 실패함:

  • 대상 프로세스가 정적으로 링크되지 않았는지 확인
  • 대상 프로세스에 필요한 라이브러리가 로드되어 있는지 확인
  • 셸코드가 아키텍처에 맞는지 확인

세그멘테이션 오류:

  • x86_64 아키텍처인지 확인
  • 대상 프로세스가 보호되지 않는지 확인
  • 적절한 메모리 정렬 확인

구체적인 문제 해결 지침은 각 기법의 README를 참조하세요.

기여

기여를 환영합니다! 추가할 수 있는 항목:

  • 추가 인젝션 기법(GOT/PLT 후킹, VDSO 조작 등)
  • 비교를 위한 Windows 대응 기법
  • 탐지/방지 도구
  • ARM 아키텍처 지원
  • 추가 셸코드 예제
  • 방어적 프로그래밍 예제

참고 자료

문서

  • man 2 ptrace - 프로세스 추적 시스템 호출
  • man 5 proc - /proc 파일시스템 문서
  • man 3 dlopen - 동적 라이브러리 로딩
  • Linux 커널 소스: 프로세스 메모리 관리

관련 연구

  • "Linux 프로세스 인젝션" 기법과 발전
  • "Ptrace 인젝션" 방법론
  • "공유 라이브러리 인젝션" 모범 사례
  • MITRE ATT&CK: T1055 (프로세스 인젝션)

라이선스

자세한 내용은 LICENSE.txt를 참조하세요.

면책 조항

이 소프트웨어는 교육 목적으로 "있는 그대로" 제공됩니다. 책임감 있고 윤리적으로 사용하십시오. 소유하지 않은 시스템에서 보안 기법을 테스트하기 전에 항상 적절한 승인을 받으십시오.

도구 다운로드