Post

시스템 보안 이론 4

Shellter

  • Shellter는 Windows 페이로드를 난독화하여 안티바이러스(AV) 탐지를 우회하도록 설계된 동적 쉘코드 인젝터
  • Windows 운영체제에서 실해오디는 악성코드를 탐지하기 어렵게 만드는 난독화 도구
  • 악성 페이로드를 정상적인 프로그램에 삽입하고 실행하는 역할 수행

- Shellter 인젝터

  • 쉘코드 인젝션이란 악성코드를 실행 가능한 코드 조각(쉘코드) 형태로 변환하여 다른 프로세스의 메모리 공간에 삽입하는 기술
  • 쉘코드는 공격자가 원하는 악성 행위를 수행하는 명령어 집합
  • 쉘코드 인젝션을 통해 정상 프로세스를 약용하여 악성 행위를 실행

- 주요기능

  1. 다양한 난독화 기법 제공
    • 쉘코드 암호화, 코드 재배치, API주소 동적 해석 등
  2. 다양한 인젝션 옵션
    • 기존 프로세스, 새 프로세스, 스레드 인젝션 등
  3. 사용자 지정 옵션
    • 난독화 수준, 인젝션 방법, 대상 프로세스 등 세부 설정 가능
  4. AV 탐지 우회 효과적
    • 페이로드의 고유한 특징을 변경하여 AV 시그니처 기반 탐지 우회

- 동작방식

  1. 페이로드 로드
    • 사용자가 Shellter에 페이로드(exe, dll 등)를 입력
  2. 대상 프로세스 선택
    • 사용자가 페이로드를 삽입할 대상 프로세스를 선택
  3. 쉘코드 생성
    • 입력된 페이로드를 쉘코드 형태로 변환
  4. 난독화 적용
    • 쉘코드에 다양한 난독화 기법 적용
  5. 인젝션
    • 난독화된 쉘코드를 대상 프로세스 메모리 공간에 삽입
  6. 실행
    • 삽입된 쉘코드를 실행하여 악성행위 수행

- 장점

  1. 높은 탐지 우회율
  2. 사용자 친화적 인터페이스
  3. 유연한 설정 옵션
    • 난독화 수준, 인젝션 방법, 대상 프로세스 등
  4. 지속적인 업데이트

* Shellter는 32비트 Windows 실행파일을 사용하므로 wine32 패키지가 필요함


쉘코드

- 개념

  • 컴퓨터에 명령을 내릴 수 있는 쉘을 실행시키는 작은 코드
  • 운영체제에서 명령 쉘을 실행하기 위한 작은 코드 조각
  • 명령 쉘은 사용자가 컴퓨터에게 명령을 내릴 수 있는 인터페이스를 제공하는 프로그램
    • ex) 윈도우의 cmd.exe / macOS의 bash
  • 쉘코드는 이러한 명령 쉘을 실행시켜 공격자가 시스템을 제어할 수 있도록 함

- 사용 목적

  • 공격자는 쉘코드를 사용하여 대상 시스템에서 임의의 코드를 실행
  • 궁극적으로 시스템 제어 권한을 획득하는 것을 목표로 함
  • 쉘코드는 공격자가 시스템에 침투하여 원하는 작업을 수행할수 있도록 하는 발판 역할

- 역할

  • 악성코드
    • 쉘코드는 악성코드에 포함되어 시스템 감염, 데이터 유출, 시스템 파괴 등 악의적인 행위를 수행
  • 익스플로잇 페이로드
    • 쉘코드는 익스플로잇의 페이로드로 사용되어 취약점 공격 성공 후 공격자가 원하는 명령을 실행
  • 시스템 해킹
    • 쉘코드는 시스템 해킹 과정에서 공격자가 시스템에 침투하고 제어 권한을 획득하는데 사용

- 특징

  • 작은 크기
    • 시스템의 제한된 메모리 공간에 삽입되어 실행
  • 운영체제 의존성
    • 특정 운영체제 및 CPU 아키텍처에 맞게 설정해야 함
  • 낮은 수준의 코드
    • 어셈블리 언어와 같은 낮은 수준의 언어로 작성
    • 운영체제의 커널과 직접 상호 작용

- 동작방식

  • 메모리 실행
    • 쉘코드가 삽입된 메모리 영역 실행
  • 실행 흐름 변경
    • 공격자는 프로그램의 실행 흐름을 변경하여 쉘코드가 삽입된 메모리 영역을 실행
  • 실행 권한
    • 쉘코드가 삽입된 메모리 영역은 실행 권한을 가져야 함
    • 일반적으로 코드 영역은 실행권한을 가지지만 데이터 영역은 실행 권한이 없음
    • 공격자는 시스템 설정을 변경하거나 코드 인젝션 기법을 사용하여 데이터 영역에 쉘코드를 삽입하고 실행 권한을 획득함
  • 명령 실행
    • 쉘코드 실행을 통해 명령 쉡을 실행