프롤로그
좀 이 한 문제 푸는 데 텀이 오래 걸리긴 했는데 바빴다. 용과같이8 나온 거 말레이시아 가기ㅏ전까지...ㅎㅎ 다 깨고 싶어서
문제
https://overthewire.org/wargames/bandit/bandit2.html
OverTheWire: Level Goal
We're hackers, and we are good-looking. We are the 1%. Level Goal The password for the next level is stored in a file called - located in the home directory Commands you may need to solve this level ls , cd , cat , file , du , find Helpful Reading Material
overthewire.org
다음 비밀번호는 - 안에 존재합니다.
라고 적혀있다.
명령어들
ls | 현재 작업중인 디렉터리 또는 지정된 디렉터리 내에 있는 파일과 서브 디렉터리 목록 표시 -l : 긴 형식으로 파일의 상세 정보 표시 -a : 숨겨진 파일 포함 모든 파일 표시 -h : 파일 크기를 쉽게 읽을 수 있게 표시 -r : 역순 표시 -t : 최종 수정 시간 순 정렬 쓰고 싶다면 ls -la 이런식으로 사용 |
cd | 현재 작업 중인 디렉터리를 변경할 때 사용 cd [디렉터리 경로] 이때, cd만 입력하면 홈 디렉터리(또는 cd ~) cd .. : 상위 디렉터리 로 사용할 수도 있다. |
cat | 표준 출력으로 보여주기 또는 파일의 내용을 연결하여 ㅊ ㅜㄹ력하거나 새로운 파일 생성 cat [옵션] [파일명] cat - n 파일명을 하면 각 라인 앞에 번호를 붙여서 출력을 해준다. |
file | 파일의 내용을 조사하여 어떤 종류의 데이터를 포함하는 지 식별 file [옵션] [파일명] file ex.txt : 단일 파일의 유형 확인 file * : 디렉터리 내 모든 파일의 유형 확인 |
du | 파일 또는 디렉터리가 차지하는 디스크 공간의 양 확인 du [옵션] [파일 또는 디렉터리] du : 현재 디렉터리 디스크 사용량 du - h : 사람이 읽기 쉬운형태로 현재 디렉터리 디스크 사용량 확인 |
find | 파일이나 디렉터리 검색할 때 사용 find [경로] [옵션] [표현식] find . : 현재 디렉터리와 하위 디렉터리에서 모든 파일 및 디렉터리 나열 find . -name "*.txt" : txt확장자의 모든 파일 찾기 find . -type d : 디렉터리만 찾기 이런식으로 사용할 수 있다. |
필요 명령어는 적혀있는 그대로이다.
풀이전략
홈 디렉터리에서 - 가 있다고 하니까 처음에 홈 디렉터리에서 ls 명령어로 - 디렉터리가 있는지 확인해보자.
그리고 그 - 에 들어가서 비밀번호를 cat 명령어를 통해서 읽으면 될 것 같다.
문제풀이
일단 접속하자
ssh bandit1@bandit.labs.overthewire.org -p 2220
비밀번호는
2024.02.04 - [보안 스터디/bandit] - [워게임] bandit 답지 정리
[워게임] bandit 답지 정리
프롤로그 비밀번호 중간중간마다 까먹을 수 있으니, 각 풀이과정과 비밀번호 정리해두는 글 Level0 -> Level1 비밀번호 : NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL 2024.02.04 - [보안 스터디/bandit] - [워게임] bandit level0 -
taesan-smj.tistory.com
여기에 있는 NH2SXQwcBdpmTEzi3bvBHMM9H66vVXjL 이것이다.
여기에 접속해 ls 명령어를 입력해보니
- 가 존재한다. 저것이 디렉터리인지 알기 위해서 ls-al 를 배보자.
확인해봤더니, -는 디렉터리가 아닌 것을 알았다. 그냥 저거 자체가 파일이고, 저기 안에 비밀번호가 있는 시스템인가 보다.
저게 디렉터리인지 아닌지 확인하는 방법은 drw-r--- 이렇게 되어 있는 것에서, 맨 앞 글자가 d라면 디렉터리이고, d가 아니라면 파일인 것이다.
그 뒤에 rw는 읽기 쓰기 권한이 존재한다는 것인데, 3글자씩 쪼개서 맨 앞 rw- 는 사용자가 읽기쓰기권한, 실행권한은 없고, 그 다음 r-- 는 그룹의 권한, 맨 뒤는 그 외의 권한이다.
아무튼 - 가 파일이라는 것을 알았으니, cat 으로 -을 읽어보자.
cat -
cat - 을 하게 되면, 오랫동안 어떠한 것도 나오지 않는다.
저것을 파일 이름으로 인식하지 않기 때문인 것 같기에, 그렇다면 맨 앞에 ./을 붙여서 이것이 현재 디렉터리에 있는 - 라는 것을 알려줘야한다.
cat ./-
를 입력하여 다시 확인해보자.
잘 나왔다.
비밀번호는
rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
이다.
cat - 가 되지 않는 이유
cat 이란 명령어는 concatenate의 약자로, 파일을 읽어들인다고 생각하면 된다. 그런데 뒤에 - 라는 것은
키보드 입력으로부터(표준입력으로부터) 데이터를 읽어들이라는 것이다. 사용자가 키보드를 통해 입력한 내용이나 파이프를 통해 전달된 데이터가 출력이 되는 것이다.
사용자가 키보드로 입력하는 모든 내용을 화면에 그대로 출력하는 것인데, 입력이 종료되었다는 ctrl+d를 입력하는 것이다.
그러니까 cat - 를 한 다음에 내가 아무거나 입력을 한 후 ctrl + d를 누르면, 내가 그 입력한 것이 출력이 되는 것이다.
그래서, 저 - 가 키보드 입력이 아닌 현재 파일이라는 것을 알려줘야하기에, ./ 라는 것을 넣어서 현재 디렉터리라는 것을 넣어주었다.
에필로그
비밀번호 : rRGizSaX8Mk1RTb1CNQoXTcYZWU6lgzi
좋다.
'보안 스터디 > bandit' 카테고리의 다른 글
[워게임] bandit level4 -> level5 문제 풀이 (1) | 2024.02.11 |
---|---|
[워게임] bandit level3 -> level4 문제 풀이 (0) | 2024.02.11 |
[워게임] bandit level2 -> level3 문제 풀이 (1) | 2024.02.10 |
[워게임] bandit 답지 정리 (0) | 2024.02.04 |
[워게임] bandit level0 -> level1 문제 풀이 (1) | 2024.02.04 |