2024. 3. 28. 10:57ㆍInformation Security 정보보안/Malicious Code Analysis 악성 코드 분석
배울내용:
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 다운로드 및 설치
내가 올릴수는없다 그러나 여기저기 잘 찾아보면 다운받을수있는데가 있다
공식 홈페이지는 아래와 같다
==============================================================
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 번
==============================================================