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

2024. 3. 28. 10:57Information Security 정보보안/Malicious Code Analysis 악성 코드 분석

728x90

배울내용: 

LAB05-01.dll

IDA Pro

고급 정적분석

고급 정적분석 도구

디스어셈블 도구 

실행프로그램 분석

악성코드 분석실습

정적 파일 분석도구

동적 파일 분석도구    

automatic analysis 

Malicious Code Analysis

 

 

 

 

오늘은 고급정적분석도 시도해볼것이다 

 

[정적 분석]
> 분석 파일 : Lab05-01.dll

 

기본적인 정적분석 부분은 여러번 시도해서 어떻게 하는지 이제 너무나도 익숙하다

 

 


01. 자동화 분석
59/70 , 알약은 백도어로 간주 

02. 패킹여부 
패킹 X ,  C++ 6.0 DLL

03. PE 구조

 

PE Header : 50 45 (MZ)

생성날짜 : 2008/06/09 12:49:29 UTC 

추가적인정보 : xdoor rsrc reloc , Section 가 추가적으로 존재한다 

 

 

 

 

 

04. 임포트 함수


임포트함수들을 호스트 기반과 네트워크로 나누면 아래와 같다 

 


05. 호스트 기반 증거
SHELL32.dll
GDI32.dll
rundll64.exe
rundll32.exe
Plug_KeyLog_Main

 

 


06. 네트워크 기반 증거
WS2_32.dll
[This is RDO]pics.praticalmalwareanalysis.com
FTP://
Host: 
 HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.00; Windows NT 5.1)
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
HTTP:// 
[BackDoor Server Update Setup]
EXPLORER.EXE
svchost.exe 
Copy '%s' To '%s' Successfully
Inject '%s' to  PID '%d' Successfully!
Service '%s' Infect Successfully
Move '%s' To '%s' Successfully

 

 

07. 이파일의 목적은? 


백도어 후 파일 파일 감염으로 추정

 

 

 

 

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

분석 정리  : 

>> 분석 파일 
>> Lab05-01.dll

 

01. 자동화 분석
59/70 , 알약은 백도어로 간주 

02. 패킹여부 
패킹 X ,  C++ 6.0 DLL

03. PE 구조
50 45 , 2008/06/09 12:49:29 UTC , xdoor rsrc reloc , Section 이더있음 
04. 임포트 함수

05. 호스트 기반 증거
SHELL32.dll
GDI32.dll
rundll64.exe
rundll32.exe
Plug_KeyLog_Main

06. 네트워크 기반 증거
WS2_32.dll
[This is RDO]pics.praticalmalwareanalysis.com
FTP://  
[BackDoor Server Update Setup]
EXPLORER.EXE
svchost.exe 
Copy '%s' To '%s' Successfully
Inject '%s' to  PID '%d' Successfully!
Service '%s' Infect Successfully
Move '%s' To '%s' Successfully

07. 이파일의 목적은? 
백도어 후 파일 파일 감염
=============================================================== 

 

 

여기까지가 기본적인 정적분석 이다 

 

 

 

 

 IDA Pro

 

그럼 이번에는 고급 정적 분석을 해보자 

그전에 고급정적분석에 쓰이는 프로그램 [IDA Pro] 를 알아보자 

 

 

 

먼저 프로그램의 아이콘에 서양여성의 그림이 있는데 이게 누군지 궁금할것이다

IDA Pro의 로고에 사용된 여성은 프랑수아즈 다빈예(Françoise d'Aubigné)이다. 그녀는 루이 14세 왕의 두 번째 아내이며, IDA Pro의 로고로 사용되었다. IDA Pro는 디스어셈블러 및 디버거로서, Ilfak Guilfanov에 의해 개발되었다

그러나 왜 저 여성을 아이콘으로 쓴건지는 이유는 딱히 없다 

 

 


01. IDA Pro 란?


 > 헥스레이 (Hex-Ray)사에서 배포하는 강력한 디스어셈블 도구 
 > 단순한 디스어셈블러가 아니라 악성코드 분석, 리버싱 , 취약점분석 등에 다양하게 활용가능

 


02.배포버전 


> 표준(standard) 버전, 고급(advanced)
> 두버전 모드 x86을 지원하지만, 고급버전은 표준버전보다 더 많은 프로세서와 특히 x64를 지원

 

03. 지원파일 포멧


> 윈도용 실행파일 : PE (Portable Executable)파일
> 리눅스용 실행 파일 : ELF(Executable and Linking File) 파일
> 유닉스용 실행 파일 : COFF( Common Object File Format) 파일

 

 

 


04. 기능 


> 프로그램 전체 디스어셈블 
> 함수 검색 , 스택 분석 , 지역변수 확인 등..
> FLIRT(Fast Library Identification and Recognition Technology)
  라고하는 고속 라이브러리 식별과 내부의 확장된 코드 시그니처를 포함하고 있어서 
    디스어셈블 함수와 특히 컴파일러가 추가한 라이브러리 코드를 식별하여 명령할수있다.
(Labelling  할수있다(이름붙일수있다))
> 상호작용 가능한 대화형으로 작성되고 디스어셈블 과정의 모든 부분을 수정, 조작, 재배치 , 재정의할 수 있음
>가장 큰 장점은 분석 상황을 저장할수있다.
  주석 작서으 데이터표시(Labelling), 함수에 이름붙이기.
>막강한 플러그인 기능 지원 

 

 

05 . IDA Pro 다운로드 및 설치 

 

내가 올릴수는없다 그러나 여기저기 잘 찾아보면 다운받을수있는데가 있다

공식 홈페이지는 아래와 같다

https://hex-rays.com/ida-pro/

 

Hex Rays - State-of-the-art binary code analysis solutions

Substantial changes Is to be expected in every release: new features, supported processors, etc which are all added after deliberation and discussion.

hex-rays.com

 

 

 

 

 


==============================================================
 Lab05-01.dll  정적 고급 분석 

 

 

IDA 를 키면 이런창이뜨는데 NEW 를 클릭

 

 

그리고 다양한 운영체제에 어떤 파일형식인지를 선택하는데 우리는 PE Executable 을 클릭하면된다

 

 

 

 

Lab05-01.dll 파일을열어주면 아래처럼 보이게 된다

 

 

 

 

이런파일이 보이게 되는데 조금 스페이스를 누르면 텍스트 나 그래프모드로 볼수있다

 

 

 

 

 

 

JNZ (JUMP IF NOT ZERO) 를 보면 만약 loc100...107 이게 비교했을때 True 이면 녹색 False 이면 빨간값으로 가게된다

이렇게 OllyDBG 와  마찬가지로 

 

 

텍스트로도 볼수잇고 HEX  Imports Exports 도 다 볼수있다 

 

 

 

 

그리고 

 

Functions (함수들)도 쉽게 볼수가 있다 

 

뿐만아니라 텍스트 찾기 기능, 구조, Enum, 이름 등 OllyDBG보다도 더 많은 기능을 가지고 있다고 볼수있다

 

 

 

 

 

그러면 아래와 같은 질문에 대해서 답을 할수있다 

 

 

01. DllMain의 주소는 무엇인가? 

 

.text 영역 :1000D02E
-> IDA로 DLL 파일을 열면 DllMain 부터 시작한다

 

 


02. Imports 윈도우를 이용해 gethostbyname을 검색하도록한다

임포트 위치는 어디인가? (alt + T 해서찾음)


idata 영역 :100163CC 

 


03. gethostbyname 에는 함수가 몇개인가 ? 
>gethostbyname 클릭후 Ctrl+X 로 확인   (type에 p 가 함수임) 

 


함수는 5개 , 호출은 9 번 
p: 함수 포인터를 나타냅니다. 이것은 주로 함수 포인터 변수를 가리킬 때 사용됩니다.
F: 정적 함수를 나타냅니다. 이 함수는 일반적으로 현재 바이너리 내에서 정의된 함수입니다.
L: 라이브러리 함수를 나타냅니다. 이것은 외부 라이브러리에서 가져온 함수를 나타냅니다.
r: 이것은 함수가 리커전(재귀) 함수임을 나타냅니다. 즉, 함수가 자신을 호출할 수 있습니다.

 

 

이렇게 고급 정적 분석을 할수있다 


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

 

 

IDA PRO 단축키 중 많이쓰는 단축키들은 아래와 같다 

 

 

 


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

 

 

고급정적분석 정리 

분석파일 : Lab05-01.dll

 


01. DllMain의 주소는 무엇인가? 
.text 영역 :1000D02E
-> IDA로 DLL 파일을 열면 DllMain 부터 시작한다

02. Imports 윈도우를 이용해 gethostbyname을 검색하도록한다
임포트 위치는 어디인가? (alt + T 해서찾음)
idata 영역 :100163CC 

03. gethostbyname 에는 함수가 몇개인가 ? 
>gethostbyname 클릭후 Ctrl+X 로 확인   (type에 p 가 함수임) 
함수는 5개 , 호출은 9 번 

 

 


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

 

 

728x90