잡다

Digital Forensic For CTF

관용 2021. 1. 18. 23:14

Digital Forensic For CTF

O 개요

-      전자증거물 등을 사법기관에 제출하기 위해 수행되는 데이터의 수집/분석/보고서를 작성하는 일련의 작업

O 주요내용(CTF)

-      데이터의 수집

n  휘발성은 물리적 메모리 정보 획득/비휘발성은 상태정보 획득

l  Dd,memdu,dc3dd 활용난해로 vmware vmem 등 이미지 제공

순서

CTF Technque

시스템 정보 수집

Date, hostname, whoami, logname, id, sar, printenv, service, history

네트워크 정보 수집

Ifconfig, uptime, uname, /proc/*, netstat, ss, arp

사용자 정보 수집

who

프로세스 정보 수집

Ps, top, pidstat, whereis, pmap, pcat, lsof, fuser,

Pslist,pstree, iostat, procinfo, lsmod. Modinfi, modprobe

휘발성 정보 수집

/proc/pid/cmdline, cwd,environ,exe,fd,status

xclip

로그 정보 수집

Last, lastlog, syslog

 

 

-      데이터의 분석

n  메모리 분석 시 수집목록

디스크에 존재하지 않는 웹페이지, 문서, 파일 조각

리눅스 커맨드 라인 명령

사용자 정보

이메일 주소와 메시지

검색엔진 질의를 포함한 url

삭제된 파일 전체 항목

페이로드를 포함하는 IP 패킷

프로세스,쓰레드 그 외 정보

-      데이터의 분석도구

n  CPU 연산 처리를 위해 필연적 메모리에 Data 적재

n  Volatility (메모리 분석 도구)

l  OS->Process->Network->DLL, Thread->String->Etc 순차적 분석

l  Python ./vol –f file option

명령

설명

imageinfo

메모리 덤프의 정보출력

Procexedump

Win32 프로세스의 바이너리 형태 출력 등

yara

메모리내 string 검색

malfind

메모리내 악성코드 패턴 탐지

Linux_find_file

메모리내 특정 리눅스 파일 파일로 저장

l  ./vol –f test.raw imageinfo 정보수집

l  ./vol –f file procexedump –D /root/ -p 777:  Keyfile 추출

l  ~ yarascan –-yara-rules=”.cn” –p 777: 메모리 내 string 추출

l  ~ malfind –p 777: 메모리 내 string 추출

O Process

-      Linux_ps_list,linux_psaux,linux_pstree,linux_psxview, linux_lsof

-      Linux_memmap,linux_proc_maps,linux_dump,linux_bash

O Kernel, Object

-      Linux_lsmod, linux_tmpfs,linux_check_afinfo,linux_check_syscall

O Network

-      Linux_arp, linux_ifconfig, linux_netstat

O Information

-      Linux_cpuinfo,linux_iomem,linux_mount,linux_find_file

n  파일의 분석

l  Checksum(md5deep) 확인 후 정적/동적 분석 수행

l  File 시그너처 확인(Linux는 첫 4Byte 중요)

- od –xc file | head, file 명령어 사용

- http://file-extension.net/seeker/

l  파일 분석 자동화 서비스

- Win32: https://anubis.iseclab.org, Linux: cuckoosandbox

- 실행압축 없을 시 중요정보 수집

n  의미 있는 내용추출: 문자열, 심볼릭 정보, 파일메타 데이터

l  문자열 분석: strings –a file > strfile.txt

l  파일 의존성검사: 정적링크 또는 동적링크

- 정적은 해당 파일만 분석, 동적은 동적라이브러리 포함 분석

- ldd –v file

- nm –al file

n  난독화: 분석방해, 보안시스템 우회

l  패킹: 실행파일을 압축 -> 대다수 파일의 끝부분에 STUB 구성

- Entrypoint를 정상->패킹STUB: 정상 Entrypoint를 찾고 수정

- Linux Packer는 디버깅 및 심볼 정보 제거 목적

l  암호화: 실행파일에 암호화 알고리즘 적용->STUB 복호화 알고리즘

- Memory 에 로딩 후 복호화 알고리즘 재 구성

l  Wrapper: 실행파일에 다중 보호 계층 추가

- Unwrapper 활용, 없을 시 Fenris

* ELF파일의 Entrypoint 0x0804+4byte가 아닐 경우 이상파일 추정이 가능하며 readelf –h file로 확인 *

n  ELF 형식

l  ELF파일 포맷 구조: /usr/include/elf.h

l  섹션헤더테이블과 연계된 섹션: 링킹

l  실행파일메모리로딩: 프로그램 헤더와 세그먼트 포함

l  ELF 섹션(readelf –section-header file, --program-headers, --syms)

섹션

설명

.rodata

읽기 전용 데이터

.dynsym

동적 링킹 정보

.symtab

심볼테이블

.debug

심볼 디보깅 정보

.dynstr

동적 링킹 문자열 정보

.strtab

심볼 테이블 값과 이름

.text

프로그램의 실행 명령어

l  ELF 파일의 직접적인 분석(.rodata에 유의미한 정보)

- readelf –-hex-dump\=sectionnumber file

 

'잡다' 카테고리의 다른 글

PenetrationTest For CTF  (0) 2021.01.18
ltrace  (0) 2021.01.18
CTF 문제  (0) 2021.01.18
If it's not fun, why do it?  (0) 2021.01.04
돼 되 구분  (0) 2021.01.03