Bandit Level 25
bandit26에 로그인하는것은 꽤 쉬울 것이다. bandit26의 쉘은 /bin/bash가 아닌 다른 것이다... 라고 합니다.
무슨 의미일까요? 일단 bandit26의 쉘부터 확인해 보도록 합시다.
cat /etc/passwd | grep bandit26
/etc/passwd : 시스템에 등록된 계정정보가 저장된 중요 파일, 각 내용은 :(콜론)으로 구분된다
bandit26의 쉘은 특이하게도 /usr/bin/showtext 로군요.
어떤 파일일까?
bandit26이 사용중인 showtext 쉘의 내용입니다.
more : 파일을 읽어오는 명령어, 한번에 불러오는 cat과는 다르게 한줄씩 넘기며 읽을 수 있다
more ~/text.txt 명령어로 text.txt 파일을 읽어온 후
exit 0 명령어로 showtext 프로그램을 종료하는군요.
text.txt파일에 password가 있는 것일까요?
그러던 와중 홈 디렉터리에 bandit26의 key가 있는 것을 확인했습니다.
이 key를 이용해서 bandit26으로 쉽게 접근할 수 있을 것 같아요
문제에서 bandit26에 로그인하는 것은 쉬울 것이다 라고 한게 이런 뜻이었군요.
그러면 바로 접속해 봅시다.
ssh -i bandit26.sshkey bandit26@localhost -p 2220
연결에 성공하긴 했는데, 뭘 입력해 볼 시간도 없이 바로 끊어져 버렸습니다. 여러 번 시도해도 똑같습니다.
일단 showtext 쉘을 한번 더 살펴봅시다.
more명령어를 먼저 실행한 후 exit 0으로 종료하고 있습니다.
해결할 방법이 있다면, more 명령어에 있을 것 같은데요?
짠.. 보이십니까? more 명령어가 실행되어 있는 채로 연결이 끊기지 않았습니다.
more명령어는 파일 내용을 전부 출력하거나 명령어를 취소하기 전까진 종료되지 않습니다.
이전엔 파일 내용을 한번에 출력해버려서 바로 more명령어가 종료된 것이었습니다.
따라서 터미널 크기 자체를 줄여서 , 한번에 2줄씩만 출력되게 하여 more명령어의 수명을 늘려준 것입니다.
대체 이런 방법은 누가 처음에 생각해 낸 것일까요? 대단합니다.
그런데 여기서 어떻게 하느냐? more이 끝나면 연결종료되는건 마찬가지인데 말이죠.
방법은 vi 였습니다!
more 명령어로 파일을 조회하는 도중, "v" 키를 누르면 그대로 vi가 실행됩니다.
이젠 터미널 크기를 늘리셔도 됩니다.
:e /etc/bandit_pass/bandit26
esc를 한번 눌러 명령줄 모드로 가신 후, 해당 명령어를 입력해 줍니다.
그러면 이와같이 파일이 호출됩니다!
:e 는 edit 라는 뜻으로써, 해당 파일을 편집하기 위해 불러온 것이라 보면 됩니다.
이 password는 따로 저장해 두도록 합시다.
:set shell=/bin/bash
이번엔 쉘을 정상적인 쉘로 변경해 준 후,
:shell
shell을 입력하면 정상적인 bandit26의 쉘을 획득할 수 있습니다!
또는 :sh 를 입력하셔도 됩니다.
'Hacking > [System]Bandit' 카테고리의 다른 글
OverTheWire [Bandit Level 28] (0) | 2023.04.03 |
---|---|
OverTheWire [Bandit Level 27] (0) | 2023.04.03 |
OverTheWire [Bandit Level 24] (2) | 2023.04.02 |
OverTheWire [Bandit Level 23] (0) | 2023.04.02 |
OverTheWire [Bandit Level 22] (0) | 2023.04.02 |