$ Capture The Flag $

NeverLAN CTF Write up

ws1004 2020. 2. 14. 16:18

Forensic

 

Listen to this

 

해당 문제를 다운해보면 mp3 파일이 하나 있는데 해당 파일을 Audacity 에 넣어 보겠습니다.

 

파일을 넣고 나서 스펙트럼으로 바꿔서 맨 앞부분을 보면 위와 같이 어떠한 값을 확인 할 수 있습니다.

 

2개의 채널을 보면 위에 채널은 특정값이 없는 부분이고, 아래의 채널은 특정 값이 있는 부분입니다.

 

그렇기 때문에 아래의 채널 - 위의 채널 을 해보면 모스부호만 추출할 수 있을 것 같습니다.

 

sox 라는 프로그램을 이용해서 2개의 채널을 분리 한다음 차이점을 파일로 추출할 수 있습니다.

 

아래의 명령어로 sox 를 설치 할 수 있습니다.

 

2개의 파일을 추출 합니다.

 

그리고 아래의 명령어로 차이점을 추출해 낼수 있습니다.

 

Audacity 를 확인해 보면 아래와 같이 특정 값이 보이는것을 확인 할 수 있습니다.

 

저 값을 확인해 보면 모스 부호라는 것을 알 수 있습니다.

모스 부호로 직접 변환을 해보면 아래와 같습니다.

..-. .-.. .- --. -.. .. - ... .- -. -.. -.. .- .... ... ..-. --- .-. .-.. .. ..-. .

 

https://morsecode.world/international/translator.html <- 해당 사이트에서 복호화 해보면 아래와 같습니다.

 

Flag : FLAG{DITSANDDAHSFORLIFE}

 

Open Backpack

 

첨부 파일을 다운로드 해보면 아래와 같이 jpg 파일을 확인할 수 있습니다.

 

binwalk 을 이용해서 확인해 보면  ZIP 파일을 확인 할 수 있습니다.

 

추출해 보겠습니다.

 

ZIP 파일을 풀어 보면 아래와 같이 FLAG를 확인 할 수 있습니다.

 

Flag : flag{AIWaYs_cH3cK_y0ur_sTuFF}

 

Look into the past

 

위의 사진은 서버가 닫혀서.. 대체 합니다!

 

문제 파일을 열어보면 압축파일이 존재 하는데 압축 해제를 하면 아래와 같은 컴퓨터의 시스템 폴더들이 존재 합니다.

/home/User/Desktop 로 가보면 트리구조를 한번 봐봅시다.

 

Documents 폴더에 flag.txt.enc 와 libssl-flag.txt.enc가 존재 하고 Pictures 폴더에는 doggo.jpeg가 존재 합니다.

 

그리고 Desktop 폴더에 존재 하는 .bash_history로 어떤 작업을 했는지 확인해 보겠습니다.

 

1. openssl로 flag.txt라는 파일을 flag.txt.enc라는 파일로 암호화 시켰습니다. pw는 3개의 값을 연결한 값을 사용했습니다.($pass1$pass2$pass3)

2. steghide로 doggo.jpeg로 데이터 은닉을 진행했습니다. <- $pass1

3. user라는 유저가 추가가 됬습니다. <- $pass2

4. /opt/tabe.db에 passwords를 추가하고 table.db.tar.gz 파일로 압축을 합니다. <- $pass3

 

일단 steghide 로 복호화를 해보겠습니다.

 

steganopayload213658.txt 라는 파일이 나왔습니다.

 

Password로 보이는 데이터가 들어있습니다.

$pass1 : JXrTLzijLb

 

새로 추가된 user를 확인해 보기 위해서 /etc/passwd를 확인해 보겠습니다.

 

딱히 뭐가 없는것 같습니다.

 

/etc/shadow를 확인해 보겠습니다.

 

$pass2 : KI6VWx09JJ

 

이번에는 /opt/table.db를 확인해 보기위해서 table.db.tar.gz 파일을 압축 해제 하겠습니다.

 

$pass3 : nBNfDKbP5n 입니다.

 

 

JXrTLzijLbKI6VWx09JJnBNfDKbP5n 을 비번으로 사용하고 openssl을 이용해서 복호화 해보겠습니다.

 

복호화가 안됬습니다.

 

이번에는 libssl-flag.txt.enc로 복호화를 해보겠습니다.

 

오류가 나지 않습니다.

 

Flag : flag{h1st0ry_1n_th3_m4k1ng}

 

 

Crypto

 

Crypto Hole

 

해당문제는 총 10번에 걸친 암호화 문자열이기 때문에 간단하게 어떤 힌트로 접근을 하고 어떤사이트에서 복호화된 값을 나열하겠습니다.

 

1번째 복호화

 

2번째 복호화

 

3번째 복호화

 

4번째 복호화

 

5번째 복호화

 

6번째 복호화

 

7번째 복호화

 

8번째 복호화

 

9번째 복호화

 

10번째 복호화

 

해당 폴더를 가지고 One Time Pad 라는 OTP를 떠올려야 하며 OTP 암호학은 메시지와 PAD 가 필요합니다.

 

메시지는 저 암호문이 되고 PAD를 찾아야 하는데 This is our world now... 라는 문자열을 준 이유를 곰곰히 생각을 해봤습니다.

 

Mentor라는 사람이 해킹을 저지르고 체포될때 선언한 선언문이 유명하다고 합니다.

거기 구문을 살펴 보면.. [  http://phrack.org/issues/7/3.html ]

 

똑같은 구문이 존재 합니다 여기있는 문자열을 pad로 넣어보면 Flag를 획득 할 수 있습니다.

 

 Flag : flag{crypt0sRphun}