KISA 사이버 보안 훈련/스피어피싱 대응 기본
쉘코드 개요 및 구성요소
으앙내눈
2023. 5. 22. 22:47
쉘 코드의 기본 개념
소프트웨어 취약점을 공격하는 익스플로잇의 페이로드
아주아주 작은 크기의 코드 => 기계어 코드
다양한 방법으로 메모리에 주입 후 실행이 목적
익스플로잇, 문서형 악성코드, 코드 익젝션 기능을 활용하는 악성코드 분석에 필수
대부분 API나 라이브러리 함수를 이용하여 구현 ->
1) 호출하는 라이브러리 함수나 API를 식별
2) 호출한 라이브러리 함수 및 API에 전달하는 파라미터를 확인
쉘 코드의 동작 방식
일반적인 실행파일과 다르게,
- 별도의 포맷이 존재하지 않음
- 대부분의 경우 코드 및 데이터로만 구성
- 익스플로잇, 악성코드 등에 의해 메모리에 주입된 후 실행
- 대체로 시스템에 존재할 가능성이 높은 DLL/SO만을 사용
- 쉘코드가 직접 바인딩을 수행(셀프 바인딩)
- API 문자열 및 API Hash값을 바인딩함