Malicious Code Analysis DAY_015 LAB06-01.exe, IDA Pro IDA, 고급 정적분석, 고급 정적분석 도구, 디스어셈블 도구, 실행프로그램 분석, 악성코드 분석, 실습정적 파일 분석도구, 동적 파일 분석도구, automatic ..

2024. 4. 8. 21:42Information Security 정보보안/Malicious Code Analysis 악성 코드 분석

728x90

배울내용: 

LAB06-01.exe

IDA Pro  

IDA 고급 정적분석

고급 정적분석 도구

디스어셈블 도구 

실행프로그램 분석

악성코드 분석실습

정적 파일 분석도구

동적 파일 분석도구    

automatic analysis 

Malicious Code Analysis

 

 

 

 

고급정적분석 정리 

분석파일 : Lab06-01.exe

 

 

이제는 기본 정적 분석은 고급 정적 분석의 일부분으로 넣어서 같이 분석하겠다 

 

 

 

01.자동화 분석
72/2  MaxSecure -> Trojan

 

 

 

 

 

02.패킹 여부 확인
.text , C++ 6.0

 

 

 

03. PE구조 확인/컴파일 시간    
5A4D PE 2011/01/31 22:15:14 UTC

 

 

 


04. 임포트 종류

05. 호스트/ 네트워크 기반 증거

 

호스트 
GetCommandLineA , GetVersion , GetLastActivePopup , GetActiveWindow ,MessageBoxA  ,ExitProcess ,TerminateProcess ,GetCurrentProcess  ,WideCharToMultiByte  ,HeapDestroy ,HeapCreate ,VirtualFree , HeapFree, RtlUnwind , WriteFile, HeapAlloc, GetCPInfo, GetACP ,GetOEMCP , VirtualAlloc ,HeapReAlloc, GetProcAddress , FlushFileBuffers ,SetFilePointer, MultiByteToWideChar  ,KERNEL32.dll 

네트워크 
WININET.dll , InternetGetConnectedState  ,Error 1.1: No Internet, Success: Internet Connection

 

 

 

이제 이 함수들을 보고 어떤 목적을 가진지 유추 해본다 

 

 


06. 이 파일 목적 
getProcess 함수를 봤을때 인터넷 연결후 다른 DLL 파일에서 함수 주소로 가져와 동적으로 함수를 호출
하려는 걸로 봤을때 백도어로 추측. 

메모리 조정, 문자열처리 , 파일 입출력, 예외처리 하는 부분도 있었음. 

 

------------------------------------------------------------------------------------------------------------

[IDA Pro]

 

 

 

 

 

서브루트는 401000 부터 시작이다 안그래도 00401044 를 봐도 401000를 호출하는것 같다

더블클릭 해서 확인하면

 

 

 

InternetGetConnectedState 라는 함수를 실행하는 곳으로 간다

그러나 그 함수값이 실행된 바로 직후 EAX 에 들어갔을것인데 아직까지는 모른다 

그런데 지금 인터넷이 연결되어있으니 1(연결됨) 이 들어갔을 것이다 

그리고 그 밑에 0 과 비교를 하고 아니면 흘려버리는데 그러면 바로 Success 가 된다 

 

그러나 만약 0 이게 되면 (인터넷 연결 안되어있으면)

 

40102B 로 점프를하는데 여기로 가서 Error 메세지가 출력되게된다. 

 

 

 

스페이스를 눌러서 그래프를 보면 훨씬 쉽게 알수있다

 

 

01. Main이 호출하는 서브루틴만으로 발견한 주요 코드구조는? 

0이면 Error 로 가고 1 이면 Success로 가는걸로봐서 코드구조는

IF 문  이다 

 

 

 02. "0x40105F" 에 위치한 서브 루틴은 무엇인가?

 

 


printf() 함수임 (Success 나 Error 를 출력함) 

 

 

03.  이프로그램 목적은?

 인터넷 연결 상태를 확인 하느 것 

 

==============================================================

고급정적분석 정리 

분석파일 : Lab06-01.exe

 

01.자동화 분석
72/2  MaxSecure -> Trojan
02.패킹 여부 확인
.text , C++ 6.0
03. PE구조 확인/컴파일 시간    
5A4D PE 2011/01/31 22:15:14 UTC
04. 임포트 종류 
05. 호스트/ 네트워크 기반 증거
인터넷 관련 함수들 

 

[ IDA ]

01. Main이 호출하는 서브루틴만으로 발견한 주요 코드구조는?  

IF 문   

 

02. "0x40105F" 에 위치한 서브 루틴은 무엇인가?
printf() 함수임 (Success 나 Error 를 출력함) 

03 이프로그램 목적은?
> 인터넷 연결 상태를 확인 하느 것 

==============================================================

 

 

728x90