Docker - Kali John the ripper

rebugger·2022년 9월 15일

Docker

목록 보기
1/2
post-thumbnail

🧛‍♀️Docker 이용한 패스워드 크랙

🐳 Docker Image 설치

docker pull

도커 허브에 존재하는 적절한 Kali linux 이미지를 선택한다
도커 허브의 kali-rolling 이미지

https://hub.docker.com/r/kalilinux/kali-rolling

선택한 이미지를 Pull

docker pull kalilinux/kali-rolling:latest

설치된 이미지 확인

> docker images
REPOSITORY               TAG       IMAGE ID       CREATED        SIZE
kalilinux/kali-rolling   latest    5eb4e474175c   28 hours ago   121MB

🐳 Docker Container 세팅

docker run

다운받은 도커 이미지를 실행한다!

도커 이미지는 Vmware, virtualBox 등의 가상머신처럼 OS 환경을 제공하는 것이 아닌, 해당 환경에서 프로세스(명령)만 작동시키는 정도로 이해하면 좋을듯ㅎㅎ

# 일단 실행부터 해보고, 옵션은 아래 설명으로 남겨야지..
> Docker run -itd --name kali -v c:\mount:/home/mount kalilinux/kali-rolling

docker options

사용한 명령어를 보면 -it 는 쉘 커맨드를 쓴다는 느낌, -d는 백그라운드로 실행하겠다고 가볍게 이해하면 좋을듯 하다;;

--name은 컨테이너 이미지의 명칭을 부여하여 호출 시 name을 이용하여 간편하게 사용할 수 있고 docker run 명령어 실행 시 이미지 앞쪽에서 지정해야만 오류가 나지 않는다!!!

--volume은 virtualbox에서 공유폴더 정도로 생각하면 좋은데 컨테이너 이미지가 종료될 경우 내부 데이터는 별도 저장되지 않으므로, 컨테이너 실행 시 -v 로 Local 저장소와 매핑하여 컨테이너 실행 시 저장된 내부 데이터를 로컬에 백업해둔다는 생각으로 부여하면 좋다

(자세한 내용은 Docker Document command reference 확인)

  • --interactive, -i Keep STDIN open even if not attached
  • --tty, -t Allocate a pseudo-TTY
  • --detach, -d Run container in background and print container ID
  • --name, Assign a name to the container
  • --volume, -v Bind mount a volume

docker attach

Docker는 컨테이너로 접근하기 위해서는 SSH 와는 다른 방법인 attach 명령어를 사용할 수 있고, 우리는 attach를 통해 컨테이너 내부에 접근하였으니 환경 세팅을 마저 해본다

  • -a, Attach to STDIN, STDOUT or STDERR
    > docker attach [container name or container id..]
    
    > docker ps
      CONTAINER ID   IMAGE                    COMMAND   CREATED       STATUS          PORTS     NAMES
      29aa61ab5c95   kalilinux/kali-rolling   "bash"    6 hours ago   Up 12 seconds             kali
    > docker attach kali
      └─# pwd
      /
      ┌──(root㉿29aa61ab5c95)-[/]
      └─#
    // apt 업데이트 후 john-the-ripper 다운로드
     # apt update
     # apt install -y vim john

🐱‍👤 John the ripper 사용법

/etc/shadow 파일구조 분석

우연히 파일 다운로드 취약점을 이용해 Victim 의 /etc/shadow 파일을 획득하였다고 가정하고, shadow 파일이 왜 외부에 노출되면 위험한지 보여줘야 하는데...

파일 구조를 모르면 상당히 곤란하니 구조를 한번 알아봤다
/etc/shadow

💋 /etc/shadow root:$6$5H0QpwprRiJQR19YbXGOh7dIfOWpUb/Tuqr7yQVCqL3UkrJns9.7msfvMg4ZO/PsFC5Tbt32PXAw9qRFEBs1254aLimFeNM8YsYOv. : 16431 : 0 : 99999 : 7 : : :

빨간색으로 강조된 내용에는 3가지로 또 나눌 수 있는데..
shadow 파일 구조

1) Hash Identifier
2) Salt
3) Hash Value

로 구분할 수 있고, 위 shadow 파일의 hash Identifier 가 6이므로 SHA-512 를 이용한 것을 확인 할 수 있으니 John-the-ripper 타입 지정에 사용하면 된다!!


john.conf 설정(사전 공격 시)

kali 에 john-the-ripper 설치가 되면 /etc/john/john.conf 파일이 생성되고 conf 파일 내 Wordlist 경로를 변경하여 사용할 수 있다.

나는 외부에서 다운로드 받은 lst 파일이 존재하는 경로를 지정하였다.(/home/workspace/password.lst)

# vi /etc/john/john.conf

[Options]
# Default wordlist file name (including in batch mode)
#Wordlist = $JOHN/password.lst <---------------------------- 주석처리(default)
Wordlist = /home/workspace/password.lst  <------------------ 사전공격용 lst 파일 경로를 지정한다.
# Use idle cycles only
Idle = Y
# Crash recovery file saving delay in se

john command

/etc/shadow 에서 Encrypted password 부분만 추추한 target.txt 파일을 크랙할 수 있다!!

# john -show target.txt

사용한 명령어

> docker pull kalilinux/kali-roliing:latest
> docker run -itd --name kali -v [host 경로]:[container 경로] kalilinux/kali-rolling
> docker attach kali

# apt update
# apt install nano john

# nano /etc/john/john.conf

# john -show target.txt
profile
모르는게 많고, 부족함이 많다는 것을 인정하기

0개의 댓글