
- 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 |