Wargame/bandit

[리눅스] Bandit Level 3 -> Level 4

핏디 2021. 4. 3. 22:08
SMALL

[문제]

password가 inhere이라는 디렉토리 속에 숨김파일로 존재한다고 하네요!

숨겨진 파일을 어떻게 확인해야 할지 시작해보겠습니다아-!


[풀이]

bandit3에 접속해보겠습니다. (접속방법은 bandit0에 자세히 나와있어요!)

 

쉘에 접속하면 가장 먼저 해야될 일은 뭐다??!

--> ls 명령으로 파일이나 디렉토리 확인하기!

 

ls -al 명령어를 통해 홈디렉토리의 모든 파일과 디렉토리를 확인하니 inhere 디렉토리가 있군요!

그렇다면 inhere 디렉토리 속으로 이동해봐야겠네요!

 

더보기

참! 디렉토리와 파일에 대해서 설명 없이 지금 레벨까지 와버렸지만.. 간단하게 말씀드리자면

디렉토리는 흔히 윈도우의 폴더와 동일하고, 내부 파일은 txt, .c, .py, .cpp를 비롯해 바이너리 등을 포함합니다. 

리눅스에서는 디렉토리를 inhere와 같이 파란색 글씨로 표현을 하고, 파일을 흰색 글씨로 나타낸답니다!

윈도우에서 폴더 속을 확인할 때 더블클릭으로 해결할 수 있잖아요? (물론 cmd창에서는 아니지만요!)

리눅스에서는 cd라는 명령어를 통해 더블클릭과 같은 효과를 낼 수 있답니다~

 

그럼 cd 명령어에 대해서 알아볼까요??

 

cd 는 디렉토리를 이동할 때 사용하는 명령어인데요!

앞선 레벨에서 공부했던 상대 경로, 절대 경로를 이용해서 이동하고자 하는 위치로 이동할 수 있답니다!

경로에 대해서 말씀드릴 때 현재 위치. 으로 나타낸다고 하였는데,

이전 위치 즉, 상위 디렉토리를 나타내는 것은 .. 으로 나타낼 수 있답니다!

예시는 문제를 통해 설명드릴게요 ㅎㅎ

shaeod.tistory.com/930

 

표에 여러 방법들이 나와 있네요 ㅎㅎ

살펴보니 이전에 말씀드렸던 홈디렉토리 이동에 대한 것도 있군요!

 

 

* 참고로 하위 디렉토리로 이동하고자 할 때 이전에 배웠던 상대 경로를 이용한다면 현재위치를 나타내는 ./ 를 써야하잖아요? 그렇지만 굳이 쓰지 않고 이동할 디렉토리만 입력해도 이동할 수 있답니다!

 

예시로 말씀드리는게 이해하기 좋겠죠?

문제를 풀면서 말씀드리도록 하겠습니다ㅎㅎ

 

 

inhere 디렉토리로 이동해볼까요--?

cd 명령어를 이용해서 이동해볼건데요.

 

 

홈디렉토리 속에 inhere 디렉토리가 존재하므로 cd ./inhere 와 같은 형태로 입력할 수 있겠죠!

그렇지만 cd inhere로 입력해도 같은 결과를 가져온답니다~

그래서 주로 현재 위치인 ./를 생략하기도 하는데,

이전 레벨의 -파일 읽기처럼 특수한 경우에는 현재위치는 명시해야합니다.

 

이렇게 입력해주면 inhere 디렉토리로 이동하신 것을 확인할 수 있어요!

 

어떻게 하냐구요?

이렇게요~!

 

2가지 방법을 알려드릴게요 ㅎㅎ

우선은 ~/inhere 가 보이시나요? 현재 어떤 디렉토리 속에 있는지 알려주고 있답니다!

해석해보자면, 

~ 는 홈디렉토리이고, /를 통해 그 하위를 말하며, inhere 디렉토리를 말하고 있네요!

정리하면, 홈디렉토리 하위에 있는 inhere 디렉토리에 위치한다는 것을 알 수 있습니다.

 

 

두 번째는 pwd 명령어를 통해 알 수 있는데요!

pwd 명령어는 현재 위치한 경로를 알려주는 명령어입니다.

pwd 명령어를 입력하니 /home/bandit3/inhere 라는 경로가 나타났는데요!

 

어..?
좀 전에는 경로가 ~/inhere라고 했는데 왜 다르죠?

라고 생각하실 것 같아요!

 

아까는 ~/inhere 로 홈디렉토리에 inhere가 바로 있었는데 지금은 왜 bandit3이 있냐고요?

설명드릴게요 ㅎㅎ

 

리눅스 서버에 계정을 생성하게 되면, 홈디렉토리의 경로를 /home으로 설정하게 되는데요!

그럼 한 번 /home 으로 이동해서 확인해볼까요?

이렇게 bandit0부터해서 bandit33까지의 디렉토리가 보이네요!

그렇다면 이렇게도 생각해볼 수 있습니다.

 

bandit 서버에는 bandit0 부터 bandit33까지의 계정이 존재하구나!

우리가 bandit0부터 지금까지 항상 하는 작업이 하나 있는데 ....

 

눈치채셨나요?

 

ssh를 통해 bandit 서버에 접속하는 것입니다!

@ 앞에 사용자 이름을 입력해줬죠?

그것이 바로 bandit 서버에 등록된 계정의 이름을 뜻하는 것이랍니다~

 

이렇게 생성된 계정들은 각각 계정만의 홈디렉토리를 또 하나 가지게 되는 것이죠!

확인해볼까요?

bandit3으로 이동해보겠습니다.

 

 cd 로 이동했더니 ~ 로 바뀌었네요!

 

정리하자면,

 

bandit이라는 서버에는 bandit0이라는 계정부터 bandit33에 이르기까지 여러 사용자들이 존재하고,

계정들은 모두 홈디렉토리를 하나씩 갖고 있다는 점!

 

현재 접속해있는 계정이 bandit3이었죠?!

 

그러니 ~/inhere는 bandit3 계정의 홈디렉토리에서 inhere 디렉토리에 대한 경로를 나타낸 것이고,

/home/bandit3/inhere는 bandit 서버에서부터 나타낸 절대경로라고 할 수 있겠네요!

 

장황했지만 확실하게 짚고 넘어갔습니다 ㅎㅎ

 

그럼 다시 문제로 돌아가볼까요?

 

 

inhere 디렉토리로 이동한 후 다시 한 번 파일과 디렉토리 목록들을 확인해보았습니다.

단순히 ls 만 했을 때 아무것도 보이지 않네요.

그렇지만 우리는 이전 레벨부터 ls 명령어를 입력할 때 -al 옵션을 붙여 확인했었죠?

 

이렇게 말이에요!

 

숨김 파일도 모두 확인할 수 있답니다~

 

이전 레벨에서도 잠깐 설명드렸지만 파일/경로 앞에 .을 붙이면 숨김 파일/경로가 된다는 점! 참고해주세요~

 

역시나 .hidden 파일의 그룹이 bandit3이고 읽기 권한만 갖고 있는 것으로 보아,

이 속에 패스워드가 있겠군요!

 

숨겨진 파일이라고 하지만..

읽는 것은 간단합니다!

 

cat 명령어로 평소 읽던 파일처럼 그대로 읽어주면 된답니다!

cat .hidden 을 입력해 파일을 읽으면 이렇게 패스워드가 출력되겠네요~!

 

아! 그리고 이전 디렉토리로 이동하는 예시를 설명드리자면

inhere 디렉토리에서 다시 홈디렉토리로 이동하고자 할 때

cd .. 을 입력하면 간단하게 이동할 수 있답니다~

 

이렇게 말이에요!

 

 

추가적으로 상대경로와 절대경로를 연습하고 싶다면 접은 글을 펼쳐주세요!

더보기

상대 경로와 절대 경로를 좀 더 연습해보자면!

문제를 예로 들어보겠습니다.

 

(홈 디렉토리->inhere 디렉토리->.hidden 파일 읽기)

현재 위치는 inhere 디렉토리 입니다.

 

 

상대경로) cat ./.hidden (또는 cat .hidden)

절대경로) cat ~/inhere/.hidden

 

이번에도 ~~~~~~~~~~~~~~

성! 공!

다음 level 에서 만나요~~

LIST

'Wargame > bandit' 카테고리의 다른 글

[리눅스] Bandit Level 5 -> Level 6  (0) 2021.04.04
[리눅스] Bandit Level 4 -> Level 5  (0) 2021.04.03
[리눅스] Bandit Level 2 -> Level 3  (0) 2021.04.03
[리눅스] Bandit Level 1 -> Level 2  (1) 2021.04.03
[리눅스] Bandit Level 0 -> 1  (0) 2021.04.03