2016.09.04 ctf 준비 모임 발표

18
CTF 준비하기 첫 모임 오리엔테이션 2016.09.03 이승용

Upload: seungyong-lee

Post on 12-Apr-2017

121 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: 2016.09.04 ctf 준비 모임 발표

CTF�준비하기첫�모임�오리엔테이션�2016.09.03

이승용

Page 2: 2016.09.04 ctf 준비 모임 발표

서론

모임에�대해서�고민하다가�각자�실제로�발표를�준비해보기로�함.�

• 모임을�진행하며�수행할�문제�풀이�발표를�어떻게�할�것인가��

• 문제�풀이를�하려면�무엇이�필요할�것인가�

• 발표�시간은�개인�당�어느정도로�할�것인가�

• 책�공부�후�시험�혹은�자신의�연구�결과물의�공유를�어떻게�할�것인가

Page 3: 2016.09.04 ctf 준비 모임 발표

목차

1. CTF�문제�풀이를�위해서�

2. 준비하면서�

3. 결론

Page 4: 2016.09.04 ctf 준비 모임 발표

1.�CTF�문제�풀이를�위해서

Page 5: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 바이너리�분석을�위해서�설치가�필요한�것들

설치�방법

strace sudo�apt-get�install�strace

ltrace sudo�apt-get�install�ltrace

radare2git�clone�https://github.com/radare/radare2�sudo�radare2/sys/install.sh

ghex sudo�apt-get�install�ghee

gdb�objdump

sudo�apt-get�install�binutils

dex2jar

wget�http://sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip�unzip�dex2jar-2.0.zip�cd�dex2jar-2.0�chmod�u+x�./*.sh

jd-gui

sudo�apt-get�install�libgtk2.0-0:i386�sudo�apt-get�install�libxxf86vm1:i386�sudo�apt-get�install�libsm6:i386�sudo�apt-get�install�lib32stdc++6�wget�http://jd.benow.ca/jd-gui/downloads/jd-gui-0.3.5.linux.i686.tar.gz�tar�zxvf�jd-gui-0.3.5.linux.i686.tar.gz

Page 6: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• file�명령어��

• 파일�정보를�획득할�수�있는�명령어로�분석�전�사용한다.�

위�이미지에서�ELF,�LSB,�Intel�80306�문자열을�볼�수�있는�데,��

ELF�→�리눅스�운영체제에서�실행되는�파일�

LSB�→�리틀�엔디언�

Intel�80306�→�i386용�아키텍처�임을�파악할�수�있다.

Page 7: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• strings�명령어��

• 파일�내�문자열�정보를�획득할�때�사용한다.�

위�이미지에서는�알아볼�수�있는�값이�없지만,�자주�확인하는�

값을�정리해두고�grep�과�함께�활용하면�분석을�빠르게�할�수�있다.

Page 8: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• 트레이서�명령어�(strace,�ltrace)�

• DEFKTHON�CTF�2014�Bin200�문제와�유사한�코드

Page 9: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• 트레이서�명령어�(strace,�ltrace)�

• 실행�확인

Page 10: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• strace�명령어를�통해서�자식�프로세스�생성�시�pid�확인�

• 확인한�pid�입력하여�FLAG�값�획득�

Page 11: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• 트레이서�명령어�(strace,�ltrace)�

• 하드�코딩된�key�값�맞추기

Page 12: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• 트레이서�명령어�(strace,�ltrace)�

• 실행�확인

Page 13: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 사용법�익히기�

• ltrace�명령어를�통해서�key�확인�후,�flag�획득

Page 14: 2016.09.04 ctf 준비 모임 발표

1.1.�최소한의�필요한�것�-�명령어�(우분투�기준)�

• 담지�못했지만�필요한�것�

• 시스템�콜과�시그널에�대한�이해�

• gdb를�이용한�리눅스�디버깅(gdb-peda)�

• 준비물을�갖춘�뒤�필요한�것�

• 시스템�콜과�시그널에�대한�이해�

• 어셈블리어에�대한�이해

Page 15: 2016.09.04 ctf 준비 모임 발표

2.�준비하면서

Page 16: 2016.09.04 ctf 준비 모임 발표

2.1.�준비하면서�느낀�것�

• 레벨�

• 내가�낮구나..�

• 시간�

• 생각보다�오래�걸리는�구나�(준비할�주제�선정,�실습하기,�PPT�만들기)

Page 17: 2016.09.04 ctf 준비 모임 발표

3.�결론

Page 18: 2016.09.04 ctf 준비 모임 발표

3.1.�마무리하며�

• 만나서�어떻게�진행할�지�더�이야기�하면�되니까.�이쯤에서�

감사합니다.