system hacking을 위한 docker 설치 및 사용법

2022. 9. 5. 23:00·Tips & theory
728x90
반응형

1. 서론.

지금까지 kali linux가 멋져보여 이를 사용해 모든 pwnable 문제를 풀고 있었다.

 

하지만 가면 갈수록 libc version matching 및 분석의 어려움을 느낌과 동시에

최근 ctf 트렌드 상 docker 사용이 필수적인 것 같아 이에 대해서 조금 알아보았고,

별도 linux 환경을 마련하는 것보다 훨씬 효율적이라고 판단하여 이를 사용하기로 했다.

 

다만 여러 문서를 참고해봐도 구축 방법에 대한 아주 상세한 설명이 대부분이지 단순히 사용하는 방법에 대해서는 별로 설명이 없어서 글을 쓰게 되었다.

 

docker는 간단히 설명하자면 가상 os의 일종이며, 한번만 구축하고나면 쉽고, 빠르고, 간편하게 여러 os를 사용할 수 있게 된다.

 

2. 사용 방법

2.1 설치

결국 한국인은 윈도우를 쓸 수 밖에 없는 환경이다.

아래 사이트에서 windows용 docker를 받아 설치하자.

https://www.docker.com/

 

Home - Docker

Learn how Atomist will help Docker meet the challenge of securing secure software supply chains for development teams.

www.docker.com

설치 후 재부팅 및 바탕화면의 docker desktop을 실행하면 바로 실행된다.

만약 WSL 2가 설치되어있지 않다면 이를 설치하라는 메시지가 뜨니 설치해주자.

추가로, 설치했음에도 불구하고 아래와 같은 메시지와 함께 실행이 안된다면 wsl 버전이 낮기 때문이다.

터미널을 관리자 권한으로 실행하여

wsl --update

를 해준 뒤 재부팅을 해주자.

그럼 잘 실행될 것이다.

 

2.2 컨테이너 생성

docker에서는 각각의 os를 컨테이너라는 이름으로 관리한다.

이름과 같이 컨테이너에 os를 넣어뒀다가 필요하면 꺼내 쓴다는 의미이다.

 

보통 ctf에서는 모든 설정이 명기된 dockerfile을 주기 때문에 이를 사용해서 컨테이너를 구성하면 된다.

구성 방법은 윈도우 터미널을 열어 해당 폴더로 이동한 다음 아래와 같이 실행하면 된다.

docker build -t 이름:태그 -f dockerfile명 .

 

주의할 점은 끝에 .을 꼭 찍어야 한다는 것.

 

참고로 태그는 꼭 쓸 필요는 없고 아래와 같이 쓸 수도 있다.

docker build -t 이름 -f dockerfile명 .

마지막 . 은 필수이다.

 

쓰고나면 아래와 같이 dockerfile 내 설정대로 설치하기 시작하며,

설치가 완료된 이후에는 docker desktop 프로그램에서 그 내역을 볼 수 있다.

 

아래는 name만 설정한 경우(10.04), name 및 tag 둘 다 설정한 경우(pwn:18.04)이다.

 

2.3 컨테이너 실행

컨테이너 생성은 말 그대로 생성만 해주는 것이라 실행해줘야 한다.

생성된 이미지에 마우스를 올리면 run 메뉴가 나오고 새로 뜨는 팝업창에서 run 버튼을 눌리면 실행된다.

실행되고 있는 컨테이너는 containers 메뉴에서 확인할 수 있다.

 

2.4 컨테이너 접속

docker 프로그램 안에서도 터미널을 열어 접속이 가능하지만

 

여러개의 터미널을 열 수 없다는 단점이 있다.

그래서 아래와 같이 윈도우 터미널에서 접속하며 셀을 실행시켜주면 된다.

 

3. 마무리

간단하게 docker 사용법에 대해서 알아보았다.

물론 문제를 풀 때 주어진 docker를 통해 환경을 구축하는 것도 좋지만,

대부분 libc 버전만 알면 문제 해결이 가능하기에

굳이 새로 컨테이너를 만들 필요 없이 os 버전만 맞춰서 문제를 풀어도 충분할 것 같다.

 

* 추가

* docker <-> host 파일 전송

https://wyv3rn.tistory.com/149

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Tips & theory' 카테고리의 다른 글

assembly code 기초  (0) 2022.09.08
docker <-> host 파일 전송  (0) 2022.09.06
Return to csu  (0) 2022.09.05
one gadget 사용법  (0) 2022.09.05
함수 호출 규약.  (0) 2022.09.05
'Tips & theory' 카테고리의 다른 글
  • assembly code 기초
  • docker <-> host 파일 전송
  • Return to csu
  • one gadget 사용법
wyv3rn
wyv3rn
아저씨의 흔한 취미. wyv3rn#1249
  • wyv3rn
    think storage
    wyv3rn
  • 전체
    오늘
    어제
    • 분류 전체보기 (502) N
      • To do list (7)
        • Doing (1)
        • Complete (6)
      • Diary (35)
      • Tips & theory (79) N
      • Kernel Exploit (27)
        • Theory (15)
        • Exercise (5)
      • Wargame (313)
        • pwn.college (34)
        • Dreamhack (148)
        • pwnable.kr (15)
        • Lord of Sqlinjection (3)
        • Cryptohack (20)
        • Root me (27)
        • CodeEngn (4)
        • Exploit Education (22)
        • ROP Emporium (8)
        • H4C (10)
        • Hackerchool (22)
      • CTF (41)
        • Solved (39)
        • Unsolved (2)
      • Script (0)
      • RubiyaLap (0)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

    • PWN wargame 모음 (및 느낀점)
    • 비공개 글들에 대해.
    • 뭐라도 하나 얻어가시길...
  • 인기 글

  • 태그

    64bit
    libc
    pwnable.kr
    Me
    root-me
    Buffer Overflow
    32bit
    docker
    RTL
    Format String Bug
    BOF
    FSB
    cryptohack
    heap
    _IO_FILE
    exploit education
    rop
    ROOT ME
    vtable
    pwntools
    CANARY
    x86
    la ctf
    tcache
    lob
    phoenix
    hackerschool
    root
    dreamhack
    x64
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
wyv3rn
system hacking을 위한 docker 설치 및 사용법
상단으로

티스토리툴바