R's Hacking Daily Log

Bandit24 본문

OverTheWire/Bandit

Bandit24

hanhxx 2022. 12. 22. 11:40
Overthewire - Bandit level24
Connection : bandit24@bandit.labs.overthewire.org -p 2220
username : bandit24

 

 


 

Bandit level24 ) 이번 level에서는 localhost의 30002 port로 bandit24의 passwd와 4자리  pincode를 주면, 

bandit25의 passwd를 얻을 수 있다고 한다.

 

 

bandit24의 passwd는 이미 아니까 괜찮은데, 문제는 pincode가 뭐냐는 것!!!

4자리 code라고 하면 0000~9999까지 총 10000개의 경우의 수가 있다. 

 

 

이걸 10000번 명령어 쳐서 해본다?? 그건 너무 비효율적이다. 

아마 이 부분을 위해 shell을 작성하게 하는 게 이 문제의 목적이지 않을까 싶다. 흠흠

 

 

문제에서 말하는 brute-forcing이라는 것이 쉽게 말해서,

간단한 업무를 반복적으로 실행시켜 보는 것을 말하는 데 이 문제에서는 pincode에 0000~9999까지

넣어보는 것이 이에 해당하시겠다~ 

 

 

그렇다면 shell을 이용해서 문제를 풀어보자. 

 

 


Kali linux - Terminal

30002 port로 연결을 시도해보니, pincode checker라는 친구가 등장했다.

하라는 대로 passwd와 pincode를 입력했더니 

 

"Wrong!" 라면서 정확한 pincode를 입력하라고 한다. 

대충 "passwd + pincode" 형태로 작성해야 하고, 0000-9999 중 알맞은 1개의 pincode를 찾아내는 것이 임무인 듯.

 

 

임시 directory를 만들어주고 해당 directory에서 vi Editor로 shell을 만들어주자.

 

 

vi command로 editor에 작성한 내용이다.

0000부터 9999 pincode를 passwd와 함께 한 줄로 출력하도록 하는 for문을 실행하여 list.txt에 결과를 저장한다.

 

 

directory를 열어 확인해 보니, shell이 제대로 만들어진 것을 볼 수 있다.

실행하기 위해 chmod command로 권한을 변경해준다. 

 

 

만든 쉘을 실행해주고~  확인해보면 list.txt가 생성되었다.

 

 

...

한 번 읽어볼까?_? 싶어 열어봤더니 비밀번호와 pincode가 하나의 line으로 잘 연결된 것을 볼 수 있다.

(0000 ~ 9999까지 총 10000개의 line)

 

 

이제 생성된 list.txt의 값을 읽어서 30002 port로 연결할 때 일일이 대입하도록 하자. 

결과값은 터미널에 출력하는 거 대신 result.txt로 넣어준다. 

 

result.txt를 읽어봐도 그렇고 터미널에 출력시키면서도 봤는데 중간에 계속 끊겨서...

잔머리를 굴려봤다 ㅎ.ㅎ

 

지금까지 처리한 결과값의 라인 수를 세서 그 이후로부터 pincode를 다시 설정해서 실행시켜 보자!

 

 

wc -l option으로 result.txt의 line 수를 세어보니 6302줄이라고 한다.

그렇다면 6303부터 pincode를 시작하는 for문로 고치고 이어서 뒷부분을 실행해 보자. 

 

 

6303부터 시작하는 brute_forcing 파일의 이름은 second.txt로 지정했다.

 

 

 

brute_force.sh을 다시 실행해서 생성된 second.txt를 확인해보니 6303부터 출력되는 걸 볼 수 있다~

 

 

필요 없는 파일들은 지워주고 second.txt로 30002 port에 연결을 재시도해보자.

결과값은 result.txt에 넣었다!

 

얼마 지나지 않아 바로 다음 line이 뜬 걸 보니, 작업을 모두 마친 것 같다.

 

 

결과로 만들어진 result.txt.. 확인해 보자!

주르륵 출력을 하다 보면..!!

 

 

하... 드디어ㅠㅠㅠㅠ (도대체 몇 번만에..)

bandit25의 passwd를 출력하고 있는 문장을 볼 수 있다!!

 

 


(+ TIP !)

shell을 작성할 때, 문법적인 오류로 제대로 실행이 안 되는 경우가 많다. 

밑의 사이트에서 shell을 작성해보면 어떤 오류가 왜 났는지 알기 편해서 활용하기 좋을 거 같다!

 

https://www.shellcheck.net/

 

ShellCheck – shell script analysis tool

ShellCheck finds bugs in your shell scripts

www.shellcheck.net

 

'OverTheWire > Bandit' 카테고리의 다른 글

Bandit26  (0) 2022.12.24
Bandit25  (0) 2022.12.23
Bandit23  (0) 2022.12.22
Bandit22  (0) 2022.12.21
Bandit21  (0) 2022.12.21
Comments