김승현
[OverTheWire] Bandit Level 17 → Level 18 본문
문제
홈디렉토리에 passwords.old와 passwords.new 총 두 개의 파일이 있다고 한다. passwords.old와 passwords.new 중 한 줄의 내용이 바꼈는데 그 바뀐 게 password라고 한다.
NOTE : 만약 이 레벨을 풀고 bandit18로 접속하려고 할 때 Byebye! 본다면 다음 그 다음 bandit19와 관련이 있다고 한다.
풀기 위해 필요한 명령어들 목록을 보면 다른 건 다 익숙한데 diff라는 새로운 명령어가 생겼다.
difference에서 유래된 명령어 같은데 두 파일의 차이점을 알아내야 하는 지금 필요한 명령어 같아서 구글링 해봤다.
diff : differences의 줄임말로 두 파일 사이의 내용을 비교하는 명령어이다. 옵션 -c : 두 파일간의 차이점 출력 -d : 두 파일간의 차이점을 상세히 출력 -r : 두 디렉토리간의 비교에 사용 -i : 대소문자 무시 -w : 공백차이 무시 -s : 두 파일이 동일한 내용을 담으면 알림 |
풀이
ls -al을 해보면 문제에서 말했듯이 passwords.old, passwords.new가 있는 걸 볼 수 있다.
둘 다 ASCII text이기 때문에 그냥 cat으로 볼 수 있다.
cat으로 볼 순 있지만 당연히 old와 new 파일의 비교는 힘들어 보인다... diff 명령어를 사용해보자.
diff [비교할 파일1] [비교할 파일2]
위가 기본적인 형식이고 비교할 파일들에 우리는 passwords.old와 passwords.new를 넣으면 될 것 같다.
42c42는 42번째 줄에서 다른 내용이 나왔다는 뜻이다.
810...oe8 문자열은 passwords.old에서의 내용이고 hga....Frdg 문자열은 passwords.new의 내용이다.
비교할 파일1에 들어간 게 먼저 출력되는데 이를 확인하기 위해서 passwords.new를 먼저 입력해봤다.
>>>>>> diff passwords.old passwords.new → diff passwords.new passwords.old <<<<<<
passwords.new를 먼저 입력하니까 new의 내용이 먼저 출력되는 걸 볼 수 있다.
다른 명령어 사용 (cmp)
diff 명령어 말고 다양한 파일 비교 명령어들이 있는데 이번에는 cmp를 이용해보자.
cmp 명령어를 쓰면 차이가 생기는 곳이 몇 번째 byte인지 그리고 몇 번째 line인지 알려준다.
diff 명령어를 사용했을 때와 같은 line을 가리키는 걸 보니 정확한 걸 볼 수 있다.
근데 이렇게만 해서는 password가 뭔지 알 수가 없다. 이때 vi 명령어를 사용해서 확인할 수 있다.
↓
vi해서 들어오게 되면 이렇게 cat 했을 때와 마찬가지로 내용을 볼 수 있다.
여기서 콜론( : )을 입력하면 커서가 좌측최하단으로 내려가면서 입력할 수 있는 상태가 된다.
여기에 set number을 입력하게 되면 각 line마다 몇 번째 줄인지 표시된다.
↓
이렇게 42번째 줄로 가면 diff 명령어를 사용했을 때의 password와 동일한 것을 확인할 수 있다.
사실 set number을 하지 않아도 오른쪽 밑에 보면 현재 커서가 몇 번째 line인지 뜨긴 하는데
이렇게 하면서 공부가 되는 거 아닐까요?ㅎㅎㅎㅎㅎㅎㅎ vi가 진짜 나중에 가면 되게 유용한 것 같은데
이 참에 지금 공부하는 것도 괜찮은 것 같아요ㅎㅎㅎ
Byebye를 보려고 ssh를 써서 접속해보려고 했는데 안 된다.... port 22는 요즘 막힌다고 해서 2220으로 해봐도 안 된다.
id_rsa의 group에 read 권한이 있길래 없애려고 chmod 쓰려고 했는데 안 되고 bandit.labs.overthewire.org로 해봤는데
그거도 안 되고 내용을 복사해서 /tmp 디렉토리에 새로 작성해야 되나 했는데 tmp 디렉토리도 안 만들어져서
그냥 넘어가야겠다...ㅜ 그래도 password는 얻었으니까 된 게 아닐까..?
다음 문제
'Linux > OverTheWire : Bandit' 카테고리의 다른 글
[OverTheWire] Bandit Level 19 → Level 20 (0) | 2023.02.19 |
---|---|
[OverTheWire] Bandit Level 18 → Level 19 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 16 → Level 17 (0) | 2023.02.19 |
[OverTheWire] Bandit Level 15 → Level 16 (0) | 2023.02.18 |
[OverTheWire] Bandit Level 14 → Level 15 (0) | 2023.02.18 |