캡스톤 디자인 #7 PEview

llip·2022년 5월 18일
0

캡스톤 디자인

목록 보기
7/9

악성코드 기초 정적분석 실습을 진행하기 위하여 PEview를 통해 악성코드를 살펴보기로 했다.

정적분석이란 파일의 외부적인 것만 보고 판단하므로 어떤 함수가 사용되는지를 주로 분석한다.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=stop2y&logNo=221067942841

해당 블로그의 글을 참고하며 실습을 진행했다.


https://bazaar.abuse.ch/sample/eb0db3cef92b2c3e69831542b3f7fff1f14c74e580a720a80db5ec5119bff530/

오늘의 악성코드.

MS-DOS Stub Program을 살펴보면 Value에서 This program cannot be run in DOS mode라는 글이 있다. 이 프로그램은 DOS 모드에서 실행할 수 없다고 하는듯 하다. 이걸 보면 윈도우에서 실행하라는 의미라는 듯.


파일의 컴파일 시기는 언제인가?

PEView에서 IMAGE_NT_HEARDERS - IMAGE_FILE_HEADER 구조체로 들어가 본 상황이다.
Time Date Stamp를 확인해보니 이 파일이 컴파일 된 시간은 2021/03/23 19:27:08 UTC이다.


파일의 패킹 혹은 난독화 징후가 있는가?

IMAGE_SECTION_HEADER.text 를 확인해보면, Virtual sizeSize of Raw Data가 있다.

둘 사이의 데이터 양 차이가 매우 크게 난다면 패킹을 의심할 수 있다. 그러나 차이가 그다지 나지 않으므로 패킹은 의심하지 않아도 될 것 같다.


임포트를 통해 악성코드 행위를 알 수 있는가?

SECTION.text - IMPORT Name Table구조체로 들어갔다. 위에서부터 천천히 Value의 값을 읽어보면 어떻게 동작하는지 알 수 있는 것 같다.

참고하고 있는 블로그와는 다른 악성코드 예제이므로 함수가 다르게 설정되어있다. 따라서 차이가 있을 수 밖에 없다.

CreateRestrictedToken은 아마도 파일을 실행하기 위해 제한된 토큰을 만들어내는 것 같다.

GetCurrentProcess를 통해 현재 프로세스를 얻는다.
CreateEventA는 아마 이 악성코드를 실행ㅎ시키면서 발생하는 이벤트를 만들어내는 듯하다.
이외에도 바이너리 타입을 갖고 오거나, 시스템 디렉터리를 가져오고, 라이브러리를 불러오는 등의 행동을 한다. 파일을 수행하기 위하여 전반적인 환경을 구성하는 것 같다.

중간에 보면 IsDebuggerPresent함수가 있다. 지난 게시글에서 해당 함수가 디버그를 탐지하는 함수임을 알았다.
Sleep으로 프로세스를 잠깐 멈추기도 한다.

스크롤을 하단으로 내리면 CloseHandle 함수가 있다. 파일을 다룬 뒤 핸들러를 종료하기 위해 사용된다.
입포트를 끝내며 KERNEL32.dll 함수가 불려온다. 이 함수는 윈도우에서 수행하기 위한 32비트 동적 링크 라이브러리라고 한다.

전체적인 흐름을 살펴보면 시스템에 있는 정보들을 불러오는 것 같은데...
KERNERL32.dllUSER32.dll, WINGHTTP.dll이 신경쓰인다.


시스템에서 검색할 수 있는 다른 파일이나 호스트 기반의 증거가 존재하는가?

감염된 장비에 해당 악성코드를 발견하기 위한 네트워크 기반의 증거는 무엇인가?

해당 실습을 따라가기 위하여 strings라는 분석 툴을 설치했다.

그런데 이 실습을 VM이 아닌 본컴에서 하고 있는 게 문제이다. 실제 악성파일 샘플이므로 컴퓨터에 해가 갈 것 같아서 Sandboxie를 통해 진행하려 했지만... 어째서인지 진행되지 않았다.

그래서 일단은 참고하는 글의 게시물을 보고 실행법을 익히는 것으로 실습을 종료한다.

profile
공부중

0개의 댓글