Without a Break

기초 정적 분석 - Lab01-04.exe 본문

Reversing/윈도우즈보안과악성코드기초

기초 정적 분석 - Lab01-04.exe

와븨 2024. 4. 12. 17:33

1) Virustotal에 업로드 하고 보고서를 확인하자. 기존 안티바이러스 정의된 것과 일치하는가?

악성코드로 판단된다.

 

2) 패킹이나 난독화의 흔적이 있는가? 이유는? 파일이 패킹되어 있다면 언패킹하라

패킹되지 않은 파일로, Microsoft Visual C++로 컴파일되었음을 알 수 있다.

 

3) 이 프로그램은 언제 컴파일됐는가?

2019 8 30 22 26 59초에 컴파일되었다. (UTC 기준)

 

4) 임포트를 보고 악성코드의 기능을 알아 낼 수 있는가? 그렇다면 어떤 임포트를 보고 알 수 있었는가?

이 중 의심되는 몇가지를 분석해보면 다음과 같다.

KERNEL32.dll

  • 파일을 생성하고(CreateFile), 이동하며(MoveFile), 파일에 데이터를 쓴다(WriteFile).
  • 디렉토리의 경로를 얻고(GetTempPath, GetWindowsDriectory), 리소스를 찾아(FindResource) 리소스의 크기를 얻는다(SizeofResource).

ADVAPI32.dll

  • CreateRemoteThread : 다른 프로세스의 가상 주소 공간에서 실행되는 스레드를 만든다.
  • GetProcAddress :  지정된 dll에서 내보낸 함수(또는 변수)의 주소를 검색한다.
  • WinExec : 외부 프로세스를 실행한다.

ADVAPI32.dll

  • AdjustTokenPrivileges : 지정된 액세스 토큰에서 권한을 사용하거나 사용하지 않도록 설정한다.
  • OpenProcessToken : 프로세스와 연결된 액세스 토큰을 연다.

 

이를 보아, 권한을 활성화시켜 데이터를 쓴 파일을 외부 프로세스로 보내거나 외부 프로세스에서 실행하도록 한다는 것을 추측할 수 있다.

 

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

임포트에서 보이지 않았던 URLDownloadToFile 함수를 볼 수 있다. 이 함수는 인터넷에서 bit를 다운로드하여 파일에 저장한다.

밑에 URL 주소가 있는 것을 보아 해당 URL에 있는 악성 코드를 파일에 써서 저장한 후, 악성 행위를 한다는 것을 추측할 수 있다.

 

6) 이 파일은 리소스 섹션에 하나의 리소스를 Resource Hacker를 이용해 리소스를 점검하고 추출해 보자. 리소스로부터 무엇을 알 수 있는가?

PEview lab01-04.exe를 확인해보니 lab01-04.exe 파일 안에 bin 파일이 하나 더 있는 걸 확인 할 수 있었다.

 

리소스를 bin 파일로 저장해준다.

 

패킹되어 있지 않은 Visual C++ 6.0으로 컴파일한 파일이다.

 

PEview를 통해 악성코드가 작성된 날짜는 2011 2 27 00 16 59초임을 알 수 있다. (UTC 기준)

3)에서 확인했던 날짜와 다른 날짜임을 알 수 있다.