- Level 2 -> Level 42024년 12월 27일 19시 16분 50초에 업로드 된 글입니다.작성자: sonootri
Level 2 -> Level 3
<Level Goal>
The password for the next level is stored in a file called spaces i this filename located in the home directorySolve
홈 디렉토리에 위치한 'space in this filename'에 password가 있다고 한다. pwd로 현재 디렉토리가 home 디렉토리인 것을 확인하고 ls 명령어로 어떤 파일이 있는지 살펴봤다.
일단 space in this filename이라는 파일이 존재하는 것은 확인했다. 하지만 cat 명령어에서 error가 난다. 스페이스로 인해 하나의 파일 이름이 4개의 파일로 분리되서 해석되고 있는 것 같다.
bandit2@bandit:~$ pwd /home/bandit2 bandit2@bandit:~$ ls spaces in this filename bandit2@bandit:~$ cat space in this filename cat: space: No such file or directory cat: in: No such file or directory cat: this: No such file or directory cat: filename: No such file or directory
그렇다면 스페이스가 포함된 파일 명이 하나의 파일명으로 인식되게 하면 된다.
작은 따옴표는 모든 특수 문자를 무시하고, 큰 따옴표는 $와 `(백 따옴표)와 \(백슬래시)를 제외한 모든 문자를 무시한다.
# 큰 따옴표로 묶기 bandit2@bandit:~$ cat "spaces in this filename" MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx # 작은 따옴표로 묶기 bandit2@bandit:~$ cat 'spaces in this filename' MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx
아니면 \(백슬래시)를 이용해 공백을 이스케이프 할 수도 있다.
bandit2@bandit:~$ cat spaces\ in\ this\ filename MNk8KNH3Usiio41PRUEoDFPqfxLPlSmx
More
공백이 있는 파일을 만들 때도 위의 방식을 사용하면 된다. 아래의 3가지 방식으로 공백을 포함한 파일 이름을 만들 수 있다.
┌──(kali㉿kali)-[~/bandit] └─$ touch 'file name with space' ┌──(kali㉿kali)-[~/bandit] └─$ touch file\ name\ with\ spaces ┌──(kali㉿kali)-[~/bandit] └─$ vi 'file name with enter'
Level 3 -> Level 4
<Level Goal>
The password for the next level is stored in a hidden file in the inhere directorySolve
inhere 디렉토리의 hidden file(숨겨진 파일)에 password가 존재한다고 한다.
ls 명령어 결과 home 디렉토리 하위에 inhere 디렉토리가 존재한다. inhere 디렉토리로 이동한 위 ls 명령어를 써봤을 떄는 아무 것도 없다고 뜬다.
bandit3@bandit:~$ ls inhere bandit3@bandit:~$ cd inhere bandit3@bandit:~/inhere$ ls bandit3@bandit:~/inhere$
ls -l 명령어 결과가 total 0이라 '정말 아무것도 없나?'라고 생각했지만, hidden file이라는 이름이 걸려서 ls -a 명령어를 써봤다. 그랬더니 뭔가 출력되었다.
bandit3@bandit:~/inhere$ ls -l total 0 bandit3@bandit:~/inhere$ ls -a . .. ...Hiding-From-You
출력된 ...Hiding-From-Yor 파일을 cat 명령어로 읽어봤다. 그랬더니 password가 나왔다. 4단계도 클리어다!
-> cat 명령어로는 숨겨진 파일도 읽을 수 있구나.
bandit3@bandit:~/inhere$ cat ...Hiding-From-You 2WmrDFRmJIq3IPxneAaMGhap0pFhF3NJ
Question
ls -a 결과에 나타나는 .과 ..는 뭘까?
ls -a는 숨겨진 파일을 포함해 디렉토리 내의 모든 항목을 표시한다. 리눅스 파일 시스템에서 .와 ..는 모든 디렉토리에 기본적으로 존재하는 특수 엔트리이다. 이는 파일이나 디렉토리는 아니며, 파일 시스템의 구조를 나타내기 위한 메타 데이터이다.
-> 우리가 cd. 또는 cp ../file.txt 등과 같은 명령어를 사용할 때 사용된다.
More
01. 자주 사용하는 ls 옵션
-l 파일들을 나열할 경우 자세히 출력한다 -a 경로 안의 모든 파일을 나열한다(숨긴 파일도 포함) -R 위치한 디렉토리 하부 디렉토리의 파일까지 모두 출력한다 -h 파일의 크기를 해석하기 편하게 출력한다 -r 출력 결과를 내림차순으로 정렬한다 -t 출력 결과를 파일이 수정된 시간을 기준으로 정렬한다. 02. Linux 숨긴 파일
리눅스에서 숨겨진 파일을 만드는 방법은, 파일 이름 앞에 .을 붙이는 것이다.
┌──(kali㉿kali)-[~/bandit] └─$ touch .hidden_file ┌──(kali㉿kali)-[~/bandit] └─$ ls ┌──(kali㉿kali)-[~/bandit] └─$ ls -a . .. .hidden_file
반대로 숨겨진 파일을 숨김 해제하고 싶으면 파일명 앞의 .를 제거하면 된다.
┌──(kali㉿kali)-[~/bandit] └─$ mv .hidden_file hidden_file ┌──(kali㉿kali)-[~/bandit] └─$ ls hidden_file
숨겨진 파일을 읽으려면 숨겨진 파일의 이름을 그대로 입력해야한다(.을 포함해야 한다는 의미이다).
┌──(kali㉿kali)-[~/bandit] └─$ ls ┌──(kali㉿kali)-[~/bandit] └─$ ls -a . .. .hidden_file ┌──(kali㉿kali)-[~/bandit] └─$ cat hidden_file cat: hidden_file: No such file or directory # 이렇게 하면 .hidden_file의 내용을 읽을 수 있다 ┌──(kali㉿kali)-[~/bandit] └─$ cat .hidden_file
'PRIVATE > bandit' 카테고리의 다른 글
Level 4 -> Level 6 (0) 2024.12.27 Level 0 -> Level 2 (0) 2024.12.26 Level 0-SSH (0) 2024.12.25 다음글이 없습니다.이전글이 없습니다.댓글