ssoL2 TISTORY

[suninatas] 14번 풀이 본문

challenge/이외 CTF

[suninatas] 14번 풀이

ssoL2 2021. 1. 15. 00:27

suninatas의 비밀번호를 아니?

 

 

다운 받아보니 tar 확장자

 

tar여러 개의 파일을 하나의 파일로 묶거나 풀 때 사용하는 명령 !
Tape ARchiver 의 앞글자를 따서 TAR !!

-> 파일 전송 시 여러 개이면 관리 복잡해지니까 하나로 합쳐서 처리하기 위한 목적

보통 리눅스나 SSH 환경에서 사용되며,
실제로는 "압축" 하지는 않고 하나의 파일로 묶는 용도일 뿐이다!

tar를 통해 하나로 합쳐진 파일은 gzip 또은 bzip2 방식으로 압축 가능

gzip일 경우 .tar.gz 이며, bzip2일 경우, .tar.bz2 이다 !!

 

 

혹시 그래서 하나로 합쳐져 있다길래 foremost로 분리될 까 싶어 해봤지만 어떠한 것도 추출되지 않았다 !!!

tar -> foremost XXX

 

 

 

 

따라서 tar 명령어를 통해 추출하였다.

tar 명령어 옵션 !!!!!!!

-c : tar 파일 만들 때 사용
-x : 묶여진 tar 파일 해제할 때 사용
-v : 파일들의 이름과 크기 표시
-f : 사용할 tar 파일 지정

tar 을 묶을 때 -> tar -cvf [파일명.tar] 경로
tar 풀 때 -> tar -xvf [파일명.tar]

여기서 bzip2 압축이라면 옵션에서 -기호를 빼고 j추가,
gzip이라면 옵션에서 -기호를 빼고 z추가

 

 

evience.tar를 풀기 위해 명령어 작성 !

그러다 보니 passwd랑 shadow 파일 만들어졌다.

 

 

 

passwd는 이렇게 나오는데, 모양새가 /etc/passwd랑 동일하다.

따라서, 마지막 줄에 suninatas를 보면 2번째 항목에 x인 것을 보아 shadow에 암호화 되어있음을 알 수 있다.

 

 

 

shadow를 살펴보자

역시나, 마지막줄 suniatas에서 두번째 항목을 보면

"$6$QlRlqGhj$BZoS9PuMMRHZZXz1Gde99W01u3kD9nP/zYtl8O2dsshdnwsJT/1lZXsLar8asQZpqTAioiey4rKVpsLm/bqrX/"

이렇게 패스워드가 암호화 되어있다 !!!

 

 

 

/etc/shadow 파일에서 암호화 방식


shadow 파일에서 두 번째 항목에서 잘보면 $로 구분되어 있다.

해당 파일을 보면
"$6$QlRlqGhj$BZoS9PuMMRHZZXz1Gde99W01u3kD9nP/zYtl8O2dsshdnwsJT/1lZXsLar8asQZpqTAioiey4rKVpsLm/bqrX/"

여기서 앞에 '6'과 'QlRlqGhj'과 나머지 긴 뒷부분으로 구분할 수 있는데,

이는 각각 $hashid $salt $hash value 에 해당된다

평문인 패스워드가 있으면
OS 내에서 임의로 생성하는 값인 salt  평문인 패스워드로 function을 돌린다.
-> crypt(salt, 패스워드) 




이때 사용되는 crypt(hash function)은 hashid로 구분되는 5가지 해시 방법 중 하나를 이용한다.



 



주로 많이 사용하는 hasid는 $1, $5, $6이며 여기서는 $6이 이용되었다.
(-> $6이므로)

이러한 crypt 결과값으로 hash value(chiphertext)가 나오는 것이다 !

 

위의 방법은 복호화하기 굉장히 어렵다.

따라서 우리는 John the Ripper라는 Unix 계열 password crack tool를 이용할 것이다.

사용자 명과 비슷한 암호 검색, 단어의 조합, 숫자 조합 등등 여러 시도를 통해 패스워드를 크랙한다.

 

 

먼저 홈페이지에서 파일을 다운받자. 

 

 

 

그 다음에 tar 명령어로 압축을 풀자

확장자가 .tar.gz인 것을 보면 gzip으로 압축되었으니 z 옵션을 넣었다 !
(참고로 tar.gz.1은 문제 풀 당시 두 번 다운 받아서 그런 것이다)

 

 

이후 john 파일이 생기며

 

 

doc run src 파일중에서 src로 들어간다

 

 

john the Ripper을 사용하기 위해서 먼저 make 명령어로 컴파일 가능한 버전을 확인한다.

 

 

이후 컴파일 하자

(보통 clean 옵션을 넣으면 오류없이 된다)

 

 

컴파일 해줬다면 다시 이전 경로로 돌아와서 run 디렉토리로 들어가면 

john 이라는 실행파일이 생겼을 것이다 ! 그럼 준비 완료되었다.

 

 

크랙할 파일을 run 파일에 복사해주고

 

 

./john -show [파일명] 을 통해서

패스워드가 크랙된 원문을 볼 수 있다.

 

 

 

 

끝 성공 !!

 

 

 

 

 

 

< 개념 출처 >

websecurity.tistory.com/87

blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220611830118

raisonde.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-%ED%8C%8C%EC%9D%BC-%EC%95%95%EC%B6%95-%ED%95%B4%EC%A0%9C%ED%95%98%EA%B8%B0-%EB%B0%8F-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90

'challenge > 이외 CTF' 카테고리의 다른 글

[Timisoara CTF 2019] Tri-color QR 풀이  (0) 2021.02.05
[suninatas] 19번 풀이  (0) 2021.01.19
[suninatas] 18번 풀이  (0) 2021.01.18
[suninatas] 15번 풀이  (0) 2021.01.15
[suninatas] 21번 풀이  (0) 2021.01.12
Comments