2024. 4. 8. 21:42ㆍInformation Security 정보보안/Malicious Code Analysis 악성 코드 분석
배울내용:
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 이프로그램 목적은?
> 인터넷 연결 상태를 확인 하느 것
==============================================================