SMALL

Wargame/bandit 31

[리눅스] Bandit level 30 -> level 31

[문제] [풀이] /tmp/sik 폴더를 만들어 문제에서 주어진 파일을 다운하였다. 다운한 파일의 repo 폴더 속의 README.md 파일을 확인하니 password에 관한 정보를 얻을 수 없었다. 로그와 branch 또한 문제 풀이에 도움이 될만한 정보는 없었다. ls -al로 폴더를 확인해보면 .git 디렉토리가 존재한다. 압축된 태그를 확인하면 refs/tags/secret이라는 태그를 확인할 수 있다. 해당 폴더에서 태그를 확인해서 내용을 읽으면 password를 구할 수 있었다. 또한, 태그를 리스트를 확인해봐도 secret 태그를 확인해볼 수 있다. [핵심] git 태그(Tag)란 git에서 태그란 우리가 알고 있는 것처럼 무언가 표시를 해두기 위한 태깅 기능을 위한 것으로, 특정 커밋을 태..

Wargame/bandit 2021.07.26

[리눅스] Bandit level 29 -> level 30

[문제] [풀이] /tmp 아래에 sikkkk 폴더를 만들어 git clone 명령을 통해 문제의 파일을 다운하였다. repo 폴더 아래에서 README.md 파일을 확인할 수 있다. 해당 파일을 읽어보면 password가 보이지 않는다. 작업 변경에 대한 로그를 확인하여도 특별한 변경사항이 보이지 않는다. git에서는 branch 작업을 할 수 있는데 branch 목록을 확인해보면 현재 branch는 초록색 글자로 작성된 master 임을 알 수 있고, master이외에 /origin/dev와 /origin/sploits-dev가 존재하는 것을 확인할 수 있다. 이에 checkout 명령을 통해 dev branch로 변경하였고, README.md 파일을 읽어보면 master와 달리 password를 읽..

Wargame/bandit 2021.07.24

[리눅스] Bandit level 28 -> level 29

[문제] [풀이] git 파일을 내려받기 위해 /tmp/sik 폴더를 만들어 이동하였다. git clone 명령으로 문제에서 제시된 것을 내려받을 수 있었다. repo 폴더 아래에 README.md 파일이 존재하였고, 이를 읽어보니 password가 xxxxxxxxxx로 되어있었다. password가 변경되었던 것 같아 log를 확인하였다. 로그를 확인하니 이전의 password를 확인할 수 있었다. [핵심] usage: git [--version] [--help] [-C ] [-c name=value] [--exec-path[=]] [--html-path] [--man-path] [--info-path] [-p | --paginate | --no-pager] [--no-replace-objects] [..

Wargame/bandit 2021.07.24

[리눅스] Bandit level 27 -> level 28

[문제] [풀이] git을 이용해 문제를 해결해야 함을 알 수 있었는데, 문제 해결에 앞서 git이 설치 되어 있는지 확인해보았다. home 디렉토리에서 문제에서 제시한 경로에 대해 다운하려고 하니 권한이 없었다. -> 다운로드를 비롯한 쓰기 권한은 임시 폴더인 /tmp 디렉토리에만 있기 때문! 이에 /tmp/sik 이라는 임시 폴더를 만든 후 해당 경로로 이동하여 git clone 명령을 사용하니 내려 받을 수 있었다. 다운 후 파일 목록을 확인하니 repo 라는 디렉토리가 생성되었고, 해당 폴더로 이동하니 README 파일이 존재하였다. 파일을 읽은 결과 bandit28의 password를 획득할 수 있었다.

Wargame/bandit 2021.07.24

[리눅스] Bandit level 25 -> level 26 & level 26 -> level 27

[문제] [풀이] ls 명령으로 파일 목록을 확인해보면 bandit26.sshkey 파일을 확인할 수 있다. 이전과 동일한 방법으로 ssh 연결을 시도해볼 수 있다. 그런데 연결이 계속 끊어지고 있었다. bandit26 의 passwd 파일을 읽어보니 /usr/bin/showtext에 대한 경로가 나와있었다. 파일을 읽어보니 more 명령이 실행되면 ~/text.txt 파일이 열리는 것을 볼 수 있었다. more 명령어는 파일 내용이 길 때 끊어가면서 읽을 수 있는 명령이다. 그러기 위해서는 bandit26의 연결 내용이 조금씩 출력되게 해야하기 때문에 창의 크기를 줄여주면 해결할 수 있다. more 창이 나오게 되면 v로 vi 에디터를 켤 수 있다. 해당 명령을 입력해주면 명령에 대한 결과가 vi 창에..

Wargame/bandit 2021.07.20

[리눅스] Bandit level 23 -> 24

[문제] [풀이] 문제에서 주어진 /etc/cron.d 아래의 cronjob_bandit24 파일을 읽어보니 /usr/bin/cronjob_bandit24.sh 을 /dev/null로 리다이렉션하고 있었다. 해당 파일을 읽어 보니 쉘 스크립트가 존재했는데, /vat/spool/bandit24의 모든 스크립트를 실행한 후 60초 뒤에 삭제하도록 되어 있다. 따라서 쉘스크립트를 실행하면 bandit24에 대한 패스워드를 구할 수 없다. 또한, 이전과 달리 cat /tmp/~ 에 대한 내용이 없는데, 이에 대한 코드를 직접 작성해줘야 한다. /tmp 아래에 sik 이라는 디렉토리를 만들어 dump.sh 에 스크립트를 작성하였다. bandit24 의 패스워드를 sik 폴더 아래에 bandit_pass 라는 파일..

Wargame/bandit 2021.07.17

[리눅스] Bandit level 22 -> 23

[문제] [풀이] 문제에서 주어진 /etc/cron.d 파일로 이동해 bandit23 계정에 대한 cronjob을 확인하였다. 확인하니, /usr/bin/cronjob_bandit23.sh 파일을 /dev/null로 리다이렉션하고 있었다. 해당 파일을 읽어보니 쉘 스크립트 코드가 포함되어 있었고, 쉘스크립트는 컴파일 없이 바로 실행할 수 있다. 파일을 실행하니 /tmp/8169b67bd894ddbb4412f91573b38db3 파일에 password가 있다는 것을 알 수 있었다. /tmp/8169b67bd894ddbb4412f91573b38db3 파일을 읽어보면 패스워드가 출력된다! 그런데,, 이것은 bandit22 계정에 대한 패스워드를 구한 것이므로 echo I am user bandit23 | md..

Wargame/bandit 2021.07.17

[리눅스] Bandit level 21 -> 22

[문제] [풀이] 문제에서 주어진 /etc/cron.d 폴더로 이동하여 파일 목록을 확인하니, 몇몇 계정에 대한 cronjob 파일이 있었다. bandit22의 패스워드를 찾아야 하므로 bandit22에 대한 cronjob 파일을 읽어보면 다음과 같다. /usr/bin/cronjob_bandit22.sh 파일의 내용을 /dev/null로 리다이렉션하는 것을 볼 수 있었다. 해당 파일 내용을 읽어보면 /etc/bandit_pass/bandit22 에 대한 내용이 /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv 속에 있다는 것을 파악할 수 있다. /etc/bandit_pass/bandit22 은 bandit22의 패스워드를 담고 있는 파일이므로 /tmp/t7O6lds9S0RqQh9aMcz..

Wargame/bandit 2021.07.17
LIST