OverTheWire 20->21. (정답O)

0_0·2023년 4월 16일
0

OverTheWire

목록 보기
21/22

✔ 문제풀이 해설이 상세함. 정답 스포 주의!!! ✔

계정 로그아웃 : ctrl + d
계정 로그인 : (로그아웃 상태에서) ssh 계정명@bandit.labs.overthewire.org -p 2220

[OverTheWire 20->21.]

해당포트번호 localhost와 연결, 상대방이 올바른 19->20 패스워드를 받으면 20->21 패스워드를 준다. => 두 개의 창. 포트번호로 연결해서 패스워드 전송.




nc [옵션] [호스트네임] [포트(s)]
- 네트워크 상에서 데이터를 간단하게 TCP 및 UDP 연결을 사용하여 통신하는(읽고 쓰는) 도구.
- netcat의 약자.
- 모든 운영체제에서 동작.

옵션
-4 : IPv4를 이용.
-6 : IPv6를 이용.
-l : 듣기 모드로 실행.
-p 포트 : 원격 접속을 위한 로컬의 포트를 지정.
-x 주소[:포트] : 프록시 주소와 포트를 지정.
-u : UDP 모드로 지정.
-v : 상세한 정보를 출력.
-z : 리스닝 상태의 데몬을 스캔. = 열려있는 것 확인.

tmux

- 여러 창을 함께 사용할 때 사용.
- 해당 터미널이 종료되어도 서버가 꺼지지 않으면 프로그램이 실행.
- 리눅스/유닉스 용.

구성 요소
- session : 여러 윈도우로 구성
- window : 터미널 화면, 세션 내에서 탭처럼 사용
- pane : 하나의 윈도우 내에서 화면 분할

명령어
tmux new -s 세션이름 => 새 세션 생성
tmux attach -session -t 세션이름 => 세션 연결
tmux ls => 세션 목록
ctrl b + d => 세션 중단
tmux kill -session -t 세션이름 => 외부에서 세션 삭제
exit => 세션 종료 / 윈도우 제거
ctrl b + c => 새로운 윈도우 생성
ctrl b + n => 다음 윈도우로 이동
ctrl b + q => 이전 윈도우로 이동
ctrl b + % => 좌우로 화면 분할
ctrl b + " => 상하로 화면 분할
ctrl b + 방향키 => 화면 이동
ctrl d => 패널 삭제

screen [옵션][명령어(인자)]

- 세션을 생성하고 관리하는 명령어
- 하나의 터미널에서 다중 셸 환경 실행 가능.
- 연결이 끊겨도 백그라운드에서 계속 진행

옵션
-list : 소켓 디렉터리 정보만 출력
-d : 연결된 세션을 해제
-r : 연결 해제된 스크린에 재접속
-R : 가능하면 재접속, 아니면 새로운 세션으로 접속
-S 세션이름 : 세션 이름을 지정
-s 셸 : 지정한 셸로 실행

명령어
screen : 스크린 시작. 세션 생성.
ctrl a + h : 현재 창의 내용을 저장
ctrl a + S : 창 분할
ctrl a + c : 새로운 창 생성
ctrl a + n : 다음 창으로 이동
ctrl a + p : 이전 창으로 이동
ctrl a + a : 이전에 실행한 창으로 이동
ctrl a + k : 화면 종료
ctrl a + d : 현재 작업 내용 유지하면서 스크린 빠져나가기
ctrl a + Q : 현재 포커스된 영역 이외의 분할 영역 숨기기
ctrl a + 숫자 : 숫자에 해당하는 창으로 이동
ctrl a + " : 창 번호 출력
exit : 세션 종료.



과정

ll -> suconnect가 SetUID 설정된 것을 확인
-> tmux (창0 진입) -> ctrl b + c (새 창 생성, 창1로 이동)
-> 창1에서 net -lp 포트번호 (해당 포트와 통신)(포트는 아무거나)
-> ctrl b + 0 (창0으로 이동)
-> 창0에서 ./suconnect 포트번호 (SetUID 설정된 suconnect 파일 실행)(포트는 창1에서 net으로 연결했던 것)
-> ctrl b + 1 (창1으로 이동) -> 19-20 패스워드 적고 엔터

창1 결과

창0 결과

-> ctrl + Insert로 복사하기

아이디 : bandit21
암호 : NvEJF7oVjkddltPSrdKEFOllh9V1IBcq



0개의 댓글