2016.09.04 ctf 준비 모임 발표

133 views

Published on

CTF 준비 모임 발표입니다.
바이너리 분석을 위한 file, strings, starce, ltrace 사용을 위한
간단한 튜토리얼을 준비해보았습니다.

Published in: Engineering
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
133
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2016.09.04 ctf 준비 모임 발표

  1. 1. CTF 준비하기 첫 모임 오리엔테이션 2016.09.03 이승용
  2. 2. 서론 모임에 대해서 고민하다가 각자 실제로 발표를 준비해보기로 함. • 모임을 진행하며 수행할 문제 풀이 발표를 어떻게 할 것인가 • 문제 풀이를 하려면 무엇이 필요할 것인가 • 발표 시간은 개인 당 어느정도로 할 것인가 • 책 공부 후 시험 혹은 자신의 연구 결과물의 공유를 어떻게 할 것인가
  3. 3. 목차 1. CTF 문제 풀이를 위해서 2. 준비하면서 3. 결론
  4. 4. 1. CTF 문제 풀이를 위해서
  5. 5. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 바이너리 분석을 위해서 설치가 필요한 것들 설치 방법 strace sudo apt-get install strace ltrace sudo apt-get install ltrace radare2 git 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
  6. 6. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • file 명령어 • 파일 정보를 획득할 수 있는 명령어로 분석 전 사용한다. 위 이미지에서 ELF, LSB, Intel 80306 문자열을 볼 수 있는 데, ELF → 리눅스 운영체제에서 실행되는 파일 LSB → 리틀 엔디언 Intel 80306 → i386용 아키텍처 임을 파악할 수 있다.
  7. 7. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • strings 명령어 • 파일 내 문자열 정보를 획득할 때 사용한다. 위 이미지에서는 알아볼 수 있는 값이 없지만, 자주 확인하는 값을 정리해두고 grep 과 함께 활용하면 분석을 빠르게 할 수 있다.
  8. 8. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • 트레이서 명령어 (strace, ltrace) • DEFKTHON CTF 2014 Bin200 문제와 유사한 코드
  9. 9. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • 트레이서 명령어 (strace, ltrace) • 실행 확인
  10. 10. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • strace 명령어를 통해서 자식 프로세스 생성 시 pid 확인 • 확인한 pid 입력하여 FLAG 값 획득
  11. 11. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • 트레이서 명령어 (strace, ltrace) • 하드 코딩된 key 값 맞추기
  12. 12. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • 트레이서 명령어 (strace, ltrace) • 실행 확인
  13. 13. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 사용법 익히기 • ltrace 명령어를 통해서 key 확인 후, flag 획득
  14. 14. 1.1. 최소한의 필요한 것 - 명령어 (우분투 기준) • 담지 못했지만 필요한 것 • 시스템 콜과 시그널에 대한 이해 • gdb를 이용한 리눅스 디버깅(gdb-peda) • 준비물을 갖춘 뒤 필요한 것 • 시스템 콜과 시그널에 대한 이해 • 어셈블리어에 대한 이해
  15. 15. 2. 준비하면서
  16. 16. 2.1. 준비하면서 느낀 것 • 레벨 • 내가 낮구나.. • 시간 • 생각보다 오래 걸리는 구나 (준비할 주제 선정, 실습하기, PPT 만들기)
  17. 17. 3. 결론
  18. 18. 3.1. 마무리하며 • 만나서 어떻게 진행할 지 더 이야기 하면 되니까. 이쯤에서 감사합니다.

×