2020/05/24 - [study/Reversing] - 기초 동적 분석, Lab03-03.exe
Lab03-04.exe파일을 분석해보도록 하겠습니다.
1) 이 파일을 실행했을 때 어떤 일이 발생했는가?
먼저 CFF exp, import directory를 보도록 하겠습니다.
kernel32.dll: 대부분의 함수들이 file과 관련된 것임을 알 수 있습니다.
advapi32.dll: 서비스를 생성하기위한 함수들과 레지스트리를 생성하기위한 함수들이 있음을 확인하였습니다.
shell32.dll: 특정 pe파일, 실행가능한 파일을 실행시키기위한 함수인 shellexecute
ws2_32.dll: 소켓관련 함수들, 즉 네트워크 행위를 하기위한 함수. 특정 도메인에 붙어서 네트워크 행위를 할 때 사용되는 라이브러리입니다.
이번엔 strings를 통해 문자열을 보겠습니다.
strings.exe가 있는 폴더 아래에 실습파일을 복사해놓고 cmd를 통해 실행시킵니다.
ws2_32.dll이 네트워크 관련된 dll이였는데, 보이는 www.practicalmalwareanalysis.com과 통신하는 것임을 추측할 수 있습니다.
또한 CMD, DOWNLOAD, UPLOAD, SLEEP을 보고 해커의 서버(www.practicalmalware~~)에 접속해서 받는 명령어들이라고 생각할 수 있을 것 같습니다.
cmd.exe, null, /c del 과 같은 문자열자체는 무언가 삭제하는 것이기 때문에 나중에 무언가 삭제가 되는건가? 할 수 있습니다.
-cc, --re, --in 는 무언가 인자값을 주어서 실행시키는 것인것 같습니다.
이제 lab03-04.exe를 실행시켜볼텐데, process monitor를 켜놓고 보도록 하겠습니다.
필터설정은 Lab03-04.exe파일이 행하는 모든 행위들을 보기위해 이렇게 설정합니다.
그리고 파일을 실행하기전에 스냅샷을 한번 찍어둡니다.
cmd를 통해 실행시키고 난 뒤, 원래 있던 Lab03-04.exe가 사라진 것을 확인할 수 있었습니다.
아까 strings에서 /c del 명령어가 자기자신을 지우게하기 때문에 Lab03-04.exe가 지워진 것 같습니다.
procmon을 통해 이 과정을 보면, 쿼리 오픈을 한 뒤 process create를 합니다.
그 뒤에 Lab03-04.exe파일이 cmd.exe를 실행시키고 명령어를 통해 자기 자신을 삭제합니다.
2) 동적 분석 시 장애물이 무엇인가?
이에 대한 것은 리버싱을 통해 알아보아야하지만, 우리는 strings로 보았던 의심이 되었던 문자열들을 통해 먼저 보겠습니다.
우선 방금 찍어둔 스냅샷을 통해 악성코드 실행 전으로 돌아갑니다.
--cc를 통해 악성코드를 다시 실행시켜보았는데, 여전히 자기자신을 삭제하였습니다.
나머지 --re 와 --in을 통한 실행도 삭제가 됩니다.
이 파일을 동적분석함에 있어 장애물은 어떤 옵션을 주어도 이 파일이 자기자신을 삭제해버린다는 것입니다. 따라서 프로그램 분석을 더 해서 필요한 환경설정을 추가로 해주어야만 이 악성코드에 대한 자세한 분석이 가능할 것입니다.
3) 이 파일을 실행시키는 다른 방법이 있는가?
문자열에서 보였던 커맨드 라인을 이용하려고 했지만 잘 동작하지 않았습니다. 이것이 악성코드를 정적/동적 분석하는 것의 한계입니다. 때문에 심도있는 분석을 위해서는 리버싱이 필요합니다.
'study > 악성코드분석&리버싱' 카테고리의 다른 글
IDA Pro 프로그램 (0) | 2020.06.10 |
---|---|
x86 디스어셈블리 (0) | 2020.05.31 |
기초 동적 분석, Lab03-03.exe (0) | 2020.05.24 |
기초 동적 분석, Lab03-02.dll (0) | 2020.05.23 |
기초 동적 분석, Lab03-01.exe (0) | 2020.05.21 |