(1) Bandit
(2) 이전 문제 풀이
이전 문제는 uid 바이너리의 권한을 빌려와서 명령어를 실행해, 파일을 읽어냈다.
Bandit 워게임 풀기 [level19 -> level20]
(1) Bandit (2) 이전 문제 요약 이전 문제는 ssh에서 명령어를 바로 입력하여, 기존의 방식과 다르게 접근하였다. Bandit 워게임 풀기 [level18 -> level19] (1) Bandit (2) 이전 문제 풀이 이전 문제는 두 개의 파
suhyeokdevlog.tistory.com
(3) level20 -> level21
이번 문제는 이전 문제처럼 홈디렉토리에 setuid 바이너리 파일이 있고,
loacalhost로 연결해, 텍스트의 줄을 읽고, 이전 암호와 비교한다,
암호가 맞으면 bandit21의 비밀번호를 전송한다 이다.
터미널이 두개가 필요할 듯하다.
우선, 바이너리 파일을 실행해 보자.
"./suconnect [포트번호]"의 형식으로 사용하라고 한다.
우선 문제에서 포트를 지정하지 않았으므로, 임의로 10000 포트를 사용하겠다.
그전에, 들을 수 있는 포트도 있어야 하므로, nc명령어로 포트를 열어준다.
"-l" 옵션은 듣기 모드로 포트를 연다는 것이다.
단순히 포트를 여는 것이 아니라 서로 비교할 수 있어야 하므로, 듣기 모드로 열어준 것이다.
이후 바이너리 파일로 똑같이 포트를 열어준다.
이제 문제에서 말하는 것처럼, 서로 이전문제의 비밀번호를 서로 보내주면 된다.
이런 식으로 서로 bandit20의 비밀번호를 보내주면,
일치하는지 확인 후 비밀번호를 받는다.
이렇게 정상적으로 bandit21의 비밀번호가 나왔다.
bandit21의 비밀번호는 "NvEJF7oVjkddltPSrdKEFOllh9V1IBcq"이다.