[overthewire] bandit24 -> bandit25 워게임 풀어보기
문제 해석
bandit24의 비밀번호와 4자리의 pincode를 주면 bandit25의 비밀번호를 돌려주는 데몬이 30002포트에서 데이터를 받고 있습니다.
10000개의 조합을 모두 거치는 방법인 브루트 포스 공격 외에는 방법이 없습니다.
당신은 매번 새로운 연결을 만들 필요는 없습니다.
문제에서 말한대로 30002 포트에서 데이터를 받고 있습니다.
연결해보니 bandit24의 비밀번호와 비밀 핀 코드를 스페이스 바로 구분하여 한 줄로 보내라고 하네요.
비밀번호와 1111의 핀 코드를 보냈더니
틀렸으니 올바른 비밀번호와 핀 코드를 보내라고 합니다.
문제에서 말한 것 처럼 핀 코드를 1부터 9999까지 다 보내야 할 판인데
직접 손으로 하긴 무리일 것 같습니다.
그래서 전 문제를 참고해서 0부터 9999까지 핀 코드를 보낼 수 있는 쉘 스크립트 파일을 만들어야겠습니다.
홈 디렉터리에는 권한이 없어 파일을 만들 수 없습니다.
그래서 어쩔 수 없이 임시로 파일을 만들 수 있게 만들어진 /tmp 파일에 만들어야합니다.
저는 pin.sh이라는 이름으로 파일을 만들었습니다.
전 문제에서 나왔던 쉘 스크립트 중 for문을 참고하여 만들었습니다.
해석을 해보자면
1. i라는 변수를 0부터 9999가 될 때까지 반복을 할 것이다.
2. 반복할 내용은 "bandit24의 비밀번호 변수 i" 의 형태이다.
3. for문과 함께 nc localhost 30002라는 명령어를 같이 실행하겠다.
입니다.
쉘 스크립트를 만들었다면 실행 할 수 있도록 권한을 777로 바꿔주고
쉘 스크립트를 실행 시켜줍니다.
쉘 스크립트 내용이 진행이 되고 몇 번째 인진 모르겠지만 어디선가 맞는 핀코드가 입력되어
bandit25의 비밀번호를 받아낸 모습입니다.