일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 네트워크정리
- 공부기록
- 취약점진단
- sk루키즈
- overthewire bandit level 0
- 보안
- sk shieldus rookies 23기
- bandit 비밀번호
- 오블완
- 함수와 디버깅
- overthewire 문제
- 네트워크이론정리
- 객체지향
- 정보보안
- overthewire bandit 문제
- 포인터와 배열
- 혼공네트
- Dreamhack
- web hacking
- overthewire bandit 문제풀이
- 티스토리챌린지
- 해킹
- AWS
- bandit level 11 -> level 12 문제풀이
- bandit 문제풀이
- 네트워크문제
- 데이터와 로직
- 혼자공부하는네트워크
- kbdinteractiveauthentication
- bandit level
- Today
- Total
아임노드
[OverTheWire Bandit] Bandit Level 20 -> Level 21 문제풀이 (+setuid 파일을 이용한 포트 연결) 본문
[OverTheWire Bandit] Bandit Level 20 -> Level 21 문제풀이 (+setuid 파일을 이용한 포트 연결)
Noody 2024. 12. 14.OverTheWire Bandit
Level 20 -> Level 21
목표 : setuid 파일을 이용해 localhost의 특정포트와 연결하기
- setuid 파일 확인
- setuid를 이용해 특정 포트 열기
- 입력 값을 확인하여 다음 패스워드 보내기
풀이 방법
1. bandit20 서버 접속
ssh bandit20@bandit.labs.overthewire.org -p 2220
2. setuid 파일 확인
이전과 마찬가지로 먼저 setuid 파일을 확인해본다.
s로 표시되는 것을 보니 suconnect은 setuid 파일이다.
이제 이 파일 사용법을 확인해보자.
Usage : ./suconnect <portnumber> 부분을 확인하면 된다.
"아! ./suconnect 에 포트번호를 입력해서 접속하면 되는구나."
3. setuid를 이용해 특정 포트 열기
포트 번호를 여는 명령어는 nc를 사용하면 된다.
2220 포트는 현재 사용하고 있으므로 임의의 포트 번호를 설정해준다.
여기서는 '1234'로 사용해보겠다.
nc -lvp <임의포트번호>
nc -lvp 1234
nc는 Netcat이라는 네트워크 툴을 실행하는 명령어
TCP, UDP 연결을 만들거나 데이터를 송수신하는 데 사용
-l (Listen Mode)
Netcat이 서버처럼 특정 포트를 열고 연결을 기다리는 상태
-v (Verbose Output)
실행 중인 작업에 대해 상세한 정보를 출력
출력 내용 예시:
- 연결이 성공했는지 여부
- 연결된 클라이언트의 IP 주소와 포트 번호
- 송수신되는 데이터
-p (Port Number)
-p는 포트 번호를 지정하는 옵션
여기서는 1234번 포트를 지정
4. 입력 값을 확인하여 다음 패스워드 보내기
1234포트가 열렸으니 cmd창을 하나 더 켜서 (기존 창을 끄지 않은 상태로)
bandit20으로 접속한 사용법에 따라 1234 포트로 접속한다.
그러면 기존 cmd창에서 접속 연결이 되었음을 알려준다.
이제 기존 cmd창에서 입력값으로 다음 '현재 레벨 패스워드'를 입력해준다.
* 현재 레벨 패스워드를 입력값으로 전송하는 이유는
문제에서 해당 값을 입력하면 다음 레벨 패스워드가 sending 된다고
가이드해주었기 때문!
이제 새 cmd 창에서 입력값을 읽고 패스워드가 매칭되었고 다음 패스워드를 보낸다는
문구와 함께 기존 cmd창에 '다음 레벨 패스워드'를 전송해준다.
정리
창을 2개씩 쓰니까 좀 헷갈린다.
다시 정리를 해보자면
1번 창(기존 창)에서
임의의 포트를 열고 >
2번 창(새 창)에서
해당 포트번호로 접속(setuid 파일 이용) >
1번 창(기존 창)에서
입력값(현재 패스워드) 입력>
2번 창(새 창)에서
1번 창에서 입력한 입력값을 읽고 올바른 경우>
다음 패스워드를 1번 창에 전송
크게 위 순서로 단계가 진행된다고 보면 된다.