Level Goal
A daemon is listening on port 30002 and will give you the password for bandit25 if given the password for bandit24 and a secret numeric 4-digit pincode. There is no way to retrieve the pincode except by going through all of the 10000 combinations, called brute-forcing.
데몬은 포트 30002에서 수신 대기 중이며 bandit24에 대한 암호와 비밀 숫자 4자리 핀코드가 제공된 경우 bandit25에 대한 암호를 제공합니다. 무차별 대입(brute-forcing)이라고 하는 10000가지 조합을 모두 통과하는 것 외에는 암호를 검색할 방법이 없습니다.
Hint
1. 쉘 스크립트
Write Up
문제를 읽어보니, netcat으로 localhost 30002번 포트에 연결하여 bandit24의 pw와 pincode를 넘겨주면 되는 문제로 보인다.
나는 파이썬으로 문제를 해결하려고 했지만, 느린 ssh와 불편한 vim에서 하기엔 너무 힘들어서 간단하게 쉘 스크립트를 이용하여 문제를 풀이하였다.
서버에 연결하여 해보니, 몇가지 테스트를 해봤다.
bandit24의 pw만 보낼 때, pincode만 보낼 때, 둘 다 보낼 때를 살펴보니 문제 설명처럼 bandit24의 pw와 pincode를 같이 보내야 Wrong!이 뜨는 것을 볼 수 있었다. 또한 pincode가 틀려도 서버와의 연결이 끊어지지 않았다.
나는 쉘 스크립트 파일을 만들기 위해 /tmp에 내 디렉토리를 만들었다.
#!/bin/bash
for i in {0..9999}
do
echo "UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ $i" >> pincode_list
done
위 코드로 쉘 스크립트 파일을 만들었지만, 실행 권한이 없어서 chmod로 권한을 둔 다음 실행하겠다.
코드의 내용은 'bandit24의 pw 0' ~ 'bandit24의 pw 9999'을 출력하여 pincode_list 파일에 저장하겠다라는 코드이다.
실행하여 잘 저장이 되었는지 확인해보니, 잘 저장되었다.
이제 저 목록을 이용하여 bandit25의 pw를 알아내도록 하겠다.
마지막 결과값을 출력하여 확인해보니, bandit25의 pw가 있는 것을 볼 수 있었다.
bandit25 :: uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG
'Wargame > OverTheWire' 카테고리의 다른 글
[OverTheWire System - Bandit] Level 26 → Level 27 (0) | 2021.11.13 |
---|---|
[OverTheWire System - Bandit] Level 25 >> Level 26 (0) | 2021.11.12 |
[OverTheWire System - Bandit] Level 23 >> Level 24 (0) | 2021.11.05 |
[OverTheWire System - Bandit] Level 22 >> Level 23 (0) | 2021.11.05 |
[OverTheWire System - Bandit] Level 21 >> Level 22 (0) | 2021.11.04 |
Comment