Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2016.09.04 ctf 준비 모임 발표

168 views

Published on

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

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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. 마무리하며 • 만나서 어떻게 진행할 지 더 이야기 하면 되니까. 이쯤에서 감사합니다.

×