작은 메모장

쉘코드 개요 및 구성요소 본문

KISA 사이버 보안 훈련/스피어피싱 대응 기본

쉘코드 개요 및 구성요소

으앙내눈 2023. 5. 22. 22:47

쉘 코드의 기본 개념

소프트웨어 취약점을 공격하는 익스플로잇의 페이로드

아주아주 작은 크기의 코드 => 기계어 코드

다양한 방법으로 메모리에 주입 후 실행이 목적

 

익스플로잇, 문서형 악성코드, 코드 익젝션 기능을 활용하는 악성코드 분석에 필수

대부분 API나 라이브러리 함수를 이용하여 구현 ->

1) 호출하는 라이브러리 함수나 API를 식별

2) 호출한 라이브러리 함수 및 API에 전달하는 파라미터를 확인

 

쉘 코드의 동작 방식

일반적인 실행파일과 다르게,

- 별도의 포맷이 존재하지 않음

- 대부분의 경우 코드 및 데이터로만 구성

- 익스플로잇, 악성코드 등에 의해 메모리에 주입된 후 실행

- 대체로 시스템에 존재할 가능성이 높은 DLL/SO만을 사용

- 쉘코드가 직접 바인딩을 수행(셀프 바인딩)

- API 문자열 및 API Hash값을 바인딩함