본문 바로가기
Linux/bandit

Level 24 → Level 25

by ㅇㅅㅇ.. 2024. 1. 12.

 

 

  • login PW: VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar
  • 문제설명: 30002번 포트가 열려있고 bandit24 PW와 비밀번호와 관련된 숫자핀 4자리를 보내면 다음 단계의 PW를 얻을 수 있다.

 

# nc localhost 30002 

포트를 연결하니 다음과 같은 문장이 나옵니다. 

 

아래에 bandit24의 PW와 숫자 4자리를 아무거나 입력하니 pinconde가 틀렸다는 문자열이 출력됩니다.

 

여기서 무작위 대입 공격을 해보도록 하겠습니다.

 


Brute-force attack

무작위 대입 공격, 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 공격기법


 

# mkdir /tmp/bandit24_test

/tmp에 bandit24_test라는 폴더를 만들고 

# cd /tmp/bandit24_test

해당경로로 이동해서

# vi test.sh

test.sh 이라는 스크립트를 하나 만들겠습니다.

 

테스트로 아래의 코드를 저장합니다.

 

해당 파일은 실행권한이 없으므로 권한을 추가하겠습니다.

# chmod u+x test.sh

 

권한을 추가한 다음

# ./test.sh

해당 스크립트를 실행하면 1부터 9까지 출력되는 것을 확인할 수 있습니다.

 

저희가 원하는 수는 0000 부터 9999 까지이르로 범위를 {0000..9999}로 바꾸고,

port를 연결해서 보낼 문자열은 [ bandit24의 PW + pincode ] 이므로 출력 문자열을 다음과 같이 수정합니다.

 

 

다시 실행을 하면

# ./test.sh

 

저희가 원하는 문자열을 출력하는 것을 볼 수 있습니다.

 

# ./test.sh | nc localhost 30002

이 스크립트를 nc로 넘기면 작동은 하나 범위가 너무 크기 때문에 찾기가 어렵습니다.

 

grep 명령어를 사용하여 필터링을 하는데 어떤 사용할 옵션을 찾아보겠습니다.

-v 옵션은 일치하지 않는 라인을 출력하는데,

pincode가 일치하지 않는 경우 'Worng!" 이라는 문자열이 출력되기 때문에 해당 옵션을 사용하여 필터링을 해보겠습니다.

 

# ./test.sh | nc localhost 30002 | grep -v "wrong"

Correct! 라는 문자열과 함께 bandit25의 PW가 출력되는 것을 확인할 수 있습니다.

'Linux > bandit' 카테고리의 다른 글

Level 26 → Level 27  (0) 2024.01.16
Level 25 → Level 26  (0) 2024.01.16
Level 23 → Level 24  (0) 2024.01.11
Level 22 → Level 23  (0) 2024.01.11
Level 21 → Level 22  (0) 2024.01.10