2024. 3. 23. 13:23ㆍInformation Security 정보보안/Malicious Code Analysis 악성 코드 분석
배울내용:
LAB01-04.exe
Resource Hacker
리소스 추출
악성 코드에 자주 사용되는 API
DLL Injection 에서 사용되는 API
File 관련 API Thread 관련 API
Thread 관련 API
악성코드 분석
악성코드 분석실습
정적 파일 분석도구
automatic analysis
Malicious Code Analysis
지난번에 여기까지 아래의 부분까지 Lab01-04.exe 를 분석했다
===============================================================
분석 정리 :
>> 분석 파일
>> Lab01-04.exe
01 자동화분석
1)분석 도구 : VIRUSTOTAL
2)분석 내용 : 73/62 악성코드로 탐지
02 이 파일은 패킹 되거나 난독화가 되어있는가? 만약, 되어있다면 종류는?
1)분석 도구 : PEiD
2)분석 내용 : 난독화 X , Visual C++ 5-6.0
03 이파일은 언제 컴파일 되었는가?
1)분석도구 : PEview
2)분석내용 : 2019/08/30 22:26:59 UTC .
04 임포트를 보고 악성행위를 알아낼수 있는가? 그렇다면 어떤 임포트를 보고알수있는가?
1)분석도구 : Dependency Walker, Strings
2)분석내용 :
<Kernel33.dll>
> CreateFileA
> MoveFileA
> WinExec
> WriteFile
> GetTempPathA
> FindResourceA
> LoadResource
> SizeofResource
> ADVAPI32.DLL
-AdjustTokenPrivileges : 인증토큰관련 정보를 적용 (수정/변경)
-LookupPrivilegeValueA : 현재 권한을 확인
-OpenProcessToken : 인증토큰오픈 /권한 획득
=> 권한관련 API 로 보임 (추측)
===============================================================
위에 관련된것은 아래의 링크를 가면 다시볼수있다
https://sarimus.tistory.com/110
여기 포스팅에선 추가적으로 아래의 질문을 찾아볼것이다
05 감염된 시스템에서 악성코드를 인식했는데, 어떤 호스트, 네트워크 기반증거를
발견했는가?
06 이파일은 리소스 섹션에 하나의 리소스가 있다. Resource Hacker 를 활용해 리소스를
점검하고 , 리소스를 추출해보자. 또한 리소스로부터 무엇을 알수있는가?
07. 파일의 시나리오는?
05 감염된 시스템에서 악성코드를 인식했는데, 어떤 호스트, 네트워크 기반증거를
발견했는가?
이부분에서는 당연히 String 으로 모든 string을 뽑아서 의심되는게 있나 확인해본다
분석도구 : Strings
분석내용 :
>PE 구조가 2개 보임
- 실행 파일이 2개 존재함.
c>\windows\system32\wupdmgr.exe : 파일 다운로드/설치 관련실행파일
Winup.exe
c>\windows\system32\wupdmgrd.exe : 파일 다운로드/설치 관련실행파일
-http://www.practicalmalwareanalysis.com/updater.exe
그리고 그외에도 함수에서도 힌트를 얻을수있다
WinExec 윈도우실행
GetTempPathA : 절대 경로를 가져온다
URLDownloadToFileA : 다운로드
06 이파일은 리소스 섹션에 하나의 리소스가 있다. Resource Hacker 를 활용해 리소스를
점검하고 , 리소스를 추출해보자. 또한 리소스로부터 무엇을 알수있는가?
1)분석도구 : Resource Hacker
2)분석내용 :
Resource Hacker 는 리소스 섹션에 있는 리소스를 확인하고 추출하기 위해서 사용한다.
파일을 올리게 되면 Peview 처럼 MZ 라는 PE 파일이 보이는것도 볼수있다
>리소스 파일추출 : Action -> resource to BIN -> 확장자.res
리소스추출하는 이유는 리소스로부터 추출된 정보를 기반으로 프로그램의 동작 및 기능을 이해할 수 있다. 예를 들어, 아이콘 리소스는 프로그램의 아이콘을 나타내며, 문자열 리소스는 프로그램의 메시지나 라벨을 포함할 수 있다.
>PEiD활용 : 패킹여부확인 : 패킹 안됨
패킹이 되어있으면 분석할수있는 자료가 한정적이라 패킹이 안되있어야 분석하기 훨씬 수월하다
>PEview 활용 : PE 구조확인, 리소스데이터 확인
Peview 로도 확인했을때 MZ 라는 PE 구조랑 Section.data 로 경로가 다 나오는걸 볼수있다
그럼 전체적으로 정리하면 아래와 같다
===============================================================
분석 정리 :
>> 분석 파일
>> Lab01-04.exe
01 자동화분석
1)분석 도구 : VIRUSTOTAL
2)분석 내용 : 73/62 악성코드로 탐지
02 이 파일은 패킹 되거나 난독화가 되어있는가? 만약, 되어있다면 종류는?
1)분석 도구 : PEiD
2)분석 내용 : 난독화 X , Visual C++ 5-6.0
03 이파일은 언제 컴파일 되었는가?
1)분석도구 : PEview
2)분석내용 : 2019/08/30 22:26:59 UTC .
04 임포트를 보고 악성행위를 알아낼수 있는가? 그렇다면 어떤 임포트를 보고알수있는가?
1)분석도구 : Dependency Walker, Strings
2)분석내용 :
<Kernel33.dll>
> CreateFileA
> MoveFileA
> WinExec
> WriteFile
> GetTempPathA
> FindResourceA
> LoadResource
> SizeofResource
> ADVAPI32.DLL
-AdjustTokenPrivileges : 인증토큰관련 정보를 적용 (수정/변경)
-LookupPrivilegeValueA : 현재 권한을 확인
-OpenProcessToken : 인증토큰오픈 /권한 획득
=> 권한관련 API 로 보임 (추측)
05 감염된 시스템에서 악성코드를 인식했는데, 어떤 호스트, 네트워크 기반증거를
발견했는가?
분석도구 : Strings
분석내용 :
> PE 구조가 2개 보임
> 실행 파일이 2개 존재함.
c>\windows\system32\wupdmgr.exe : 파일 다운로드/설치 관련실행파일
Winup.exe
c>\windows\system32\wupdmgrd.exe : 파일 다운로드/설치 관련실행파일
-http://www.practicalmalwareanalysis.com/updater.exe
WinExec 윈도우실행
GetTempPathA : 절대 경로를 가져옴
URLDownloadToFileA : 다운로드
06 이파일은 리소스 섹션에 하나의 리소스가 있다. Resource Hacker 를 활용해 리소스를
점검하고 , 리소스를 추출해보자. 또한 리소스로부터 무엇을 알수있는가?
1)분석도구 : Resource Hacker
2)분석내용 :
>리소스 파일추출 : Action -> resource to BIN -> 확장자.res
>PEiD활용 : 패킹여부확인 : 패킹 안됨
>PEview 활용 : PE 구조확인, 리소스데이터 확인
06-1 파일의 시나리오는?
1)원격지에 있는 -http://www.practicalmalwareanalysis.com/updater.exe
2) c:\wondows\system32\wupdmgrd.exe 로 파일명 이걸로 변경
3) Winexec Api로 파일을 실행함
(정적분석으론 모름. -> 동적분석으로 확인해야함. )
=> 백도어 (Backdoor) 로 판단됨
===============================================================
이렇게 Lab01-01~ Lab01-04 분석이 끝났다
분석하면서 다양한 API 및 함수를 봐왔는데 아래의 함수들을 잘 알아두면 좋다
[악성 코드에 자주 사용되는 API]
>DLL Injection 에서 사용되는 API
-OpenProces
-VirtualAllocEx
-WriteProcessMemory
-LoadLibrary
-GetProcAddress
-CreateRemoteThread
>Resource 섹션에 있는 리소스 사용 API
-LoadResource
-SizeofResource
-LockResource
-FreeResource
-FindResourceA
>특정 파일 이름 확인// 특정 파일을 읽고, 생성, 기록, 복사 ,이동
-WriteFile
-ReadFile
-DeleteFileA
-CreateFileA
-CopyFileA
-CreateProcessA
-FindFirstFileA
-FindNextFileA
>File 관련 API
-WriteFile
-ReadFile
-CreateFile
-CopyFile
-MoveFile
>Thread 관련 API
-LoadLibrary
-CreateThread
-ResumeThread
-CreateRemoteThread
>기타 API
-CreateMutex
-CreateCaptureWindows
-ClientScreen
>메모리 관련 API
-VirtualAlloc
-VirtualFree
-VirtualProtect
주로나오는거니 알아두면 좋다
외울필요는 없이 영어 단어를 해석만해도 어떤 기능의 API 인지 알수가 있다 .