일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT
- 사이버포렌식 #포렌식 #FAT
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #CSRF #
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c2차원배열동적할당 #c언어동적할당 #c동적할당 #c언어동적할당2차원배열
- C언어 #C #C프로그래밍 #프로그래밍 #언어
- 파일시스템과파티션 #포렌식 #사이버포렌식 #Encase #Forensic #파티션 #파일시스템 #정보보안
- #FAT파일시스템 #파일시스템구조 #파일시스템 #Forensic #정보보안 #IT
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #SQLi #TimeBaseSQLi #sqlinjection
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #C동적메모리할당 #malloc #메모리
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #선택정렬 #선택정렬알고리즘
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #PUT메소드 #PUT #HTTP메소드 #취약점
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터배열 #c언어포인터 #포인터 #c포인터
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #Call by value #Call by reference
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #로또번호생성 #로또번호만들기 #중복제거 #중복제거알고리즘
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터 #c언어포인터연산
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터와문자열 #c언어문자열
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #phpcodeinjection #injection
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #IT #robots.txt #검색엔진노출
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c배열포인터 #c언어포인터 #c언어배열포인터 #배열포인터
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #bruteFource #무차별공격
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #xss #storedxss #CrossSiteScripting
- 포렌식 #사이버포렌식 #Forensic #정보보안 #IT
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #c언어포인터의포인터 #c언어2중포인터
- c언어malloc #동적할당 #c언어동적할당 #c언어malloc사용하기
- XSS #ReflectedXSS
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #commandinjection
- C언어 #C #C프로그래밍 #프로그래밍 #언어 #포인터 #포인터변수 #c언어주소 #주소
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #SQLi #sqlinjectioon
- c언어문자열처리방법 #c언어문자열
- beebox #bWAPP #webhacking #web #웹해킹 #정보보안 #BrokenAuthentication
- Today
- Total
Hello Security World
Digital Forensic [메모리 수집 분석] 본문
Windows Memory 이해
Virtual Address Space (VAS)
VAS 는 실제 Physical Memory를 mapping한 가상 주소를 사용하는 것으로 Phsical Memory 한계를 극복할 수 있고 OS가 메모리 접근을
관리하여 Memory Protection을 가능하게 한다.
Windows 는 VAS를 Physical Memory에 저장할 수 없는 Memory 정보는 page file로 저장하게 된다. [이를 paging이라고 한다.]
Process의 메모리 공간은 공유되지 않는 한 다른 Process가 접근하지 못한다.
32bit환경에서는 최대 VAS는 4GB이고 64bit 환경에서는 2의 64bit만큼 VAS를 가질수 있다.
일반적인 메모리 공간
4GT(4GB Tuning)이 활성화 된 경우
하나의 Page Table을 사용하는 가상 주소
하나의 Task에 할당된 Virtual Memory를 Page[4KB]로 분리했을때 n개 (0 ~ n-1) 의 Page가 존재하고, 일반적인 Virtual Memory Size
가 4GB(32bit 기준) 라고 할 때 n은 1,048,756(2의 20승) 이 됨
> 2의 32승 = 2의 12승(1page = 4096byte) * 2의 20승
결국 하나의 Task에 대하여 Page Table Entry가 4byte(page)가 존재하는 주소 저장 공간) 인 4MB(1MB * 4Byte) 의 Page Table이 필요
현재 분할된 페이지 가운데 페이지 번호 0, 2, 3의 페이지가 실제 물 리 메모리에 적재되어 있음
가상주소 0x100에 대한 실제 물리 주소
가상주소 0x100은 Page Number가 0이고 Offset이 0x100이 됨
Page Number 0에는 PFN 0에 해당되고 PFN 0에는 4K(0x1000)라고 하 는 물리 주소가 존재
따라서 가상주소 0x100의 실제 물리 주소는 0x1100으로 계산됨
가상주소 0x1001은 Page Number가 1이고 Offset이 0x001이 됨
Page Number 1에는 P가 0으로 Page가 할당되어 있지 않음
Page가 물리 주소에 할당되어 있지 않아 페이지 폴트(page Fault) 발 생
이 때 커널은 물리 메모리의 빈 페이지 프레임 중 하나를 요구하여 할 당받고, 해당 페이지를 적재한 후 페이지 테이블에 적재된 페이지 프레 임의 위치를 기록하고, 다시 변환 과정을 거쳐 접근 -> Demand paging 기법이라 함
EProcess
프로세스가 생성되면 해당 프로세스의 정보를 가지고 있는 EPROCESS 라는 구조체가 커널 메모리에 생성
모든 프로세스는 각자의 EPROCESS 구조체를 하나씩 가지고 자신이 사용하는 쓰레드의 개수만큼 ETHREAD 구조체를 가짐
EPROCESS 와 ETHREAD 내부에는 각각 PCB, TCB란 이름의 KPROCESS 와 KTHREAD 라는 구조체가 존재
KPROCESS 는 NULL 동기화 객체와 관련된 디스패처 객체 헤더, 가상 메모리의 CR3 레지스터 값, 프로세스에 속해 있는 스레드 리스트 헤더, CPU에 대한 종속성(Affinity), 프로세스 우선순위, 프로세스에 서 생성되는 스레드의 기본 실행 시간 값 등과 같은 정보 저장
KTHREAD 는 스레드 종료 동기화 객체, TEB(Thread Environment Block) 포인터, 스레드 우선순위, 스케줄러에 의해 실행을 준비하고 있는 스레드 리스트, 퀀텀 값등의 정보 저장
Eprosses 구조
Process Memory Dump
특정 프로세스가 사용하고 있는 메모리에 대한 Dump
Userdump.exe
Microsoft User Mode Process Dumper
디버깅 목적으로 프로세스 메모리를 dump하여 분석할 수 있도록 설계되 어 있는 전형적인 디버깅 도구이다.
Microsoft사의 디버깅 도구인 WinDbg를 이용하여 분석 가능
사용법: userdump –w pid (-w 옵션: system 정보 포함)
http://support.microsoft.com/kb/241215/ko
Windows 2000/XP/Server 2003 ProcDump
Windows Sysinternals - Windows Sysinternals
Library, learning resources, downloads, support, and community. Evaluate and find out how to install, deploy, and maintain Windows with Sysinternals utilities.
www.sysinternals.com
Task Manager에서의 Dump
DD
Unix에서 이미지 복사하는데 가장 많이 알려진 도구
오랫동안 Forensic 이미지 생성 표준으로 고려되어 졌고 일부 Forensic 도구에서 DD로 생성된 이미지 format 지원 GMG Systems Inc. 는 Windows 버전 DD를 제작하였고 Windows 2K/XP에서 사용할 수 있다.
Windows용으로 더 이상 지원이 없다고 함
MoonSols Windows Memory Toolkit (상용)
http://www.moonsols.com/products/
Hibernation file, crashdump, raw dump 지원
Windows XP부터 Windows 7까지 지원
Win32dd, Win64dd의 향상된 DumpIt (2.0) 제공
각종 스크립트 제공
Free Dumpit 1.3 제공 ( http://www.moonsols.com/resources/ ) (WinXP 이하 버전에서 동작함, Win7 dump의 경우 volitility가 해석하지 못 함)
Belkasoft RAM Capture
https://belkasoft.com/ram-capturer
Windows XP/Vista/7/8/10/2003/2008 지원
Volitility에서 분석 가능
Anti-Debugging/Anti-Dumping 보호기능 bypass nProtect GameGuard 테스트
Memory 수집 방법 –Memory Dump (Full)
ProDiscover IR (상용)
System BIOS/CMOS 이미지 생성 지원
KnTDD
http://gmgsystemsinc.com/knttools/
Windows XP/2003/Vista/2008/7/8
미군 또는 법 집행기관만 사용가능
Memorize
http://www.mandiant.com/resources/download/memoryze
수집 및 분석
Windows 2000/XP/Vista/2003/7/2008
최근 버전 : 3.0, July 23, 2013
Volitility 사용법(기초)
이미지 식별 : Imageinfo
분석 대상 메모리 Dump가 어떤 시스템의 메모리 Dump인지를 파악하기 위하여 사용
OS, 서비스팩, 하드웨어 구조 등 정보 제공
사용법: vol.exe –f %Dump파일Path% imageinfo
이미지 식별 확인 : kdbgscan
주어진 프로파일을 기반으로 KDBG 주소를 식별하여 프로파일 검증
사용법: vol.exe –f %Dump파일Path% --profile=%프로파일% kdbgscan
프로세스 목록 확인 : pslist
주어진 프로파일을 기반으로 프로세스 목록 확인
DKOM (Direct Kernel Object Manipulation)
프로세스를 숨기는 기법으로서 rootkit에 의해서 자주 사용하는 기법
작업 관리자에서 프로세스가 보이지 않는다.
탐지 방법: Crossview Detection 관련도구: Memoryze
'정보보안 > Forensic' 카테고리의 다른 글
Digital Forensic [Windows Artifact 분석] (0) | 2020.05.03 |
---|---|
Digital Forensic [Windows 레지스트리 증거 수집] (0) | 2020.05.03 |
Digital Forensic [실시간 대응 프로세스 정보 수집] (0) | 2020.05.03 |
Digital Forensic [실시간 대응 시스템 정보 수집] (0) | 2020.05.03 |
Digital Forensic [실시간 대응] (0) | 2020.05.03 |