\x00웹\x00해\x00킹\x00스\x00터\x00디\x007\x00주\x00차\x00과\x00제
이번 주차에는 bandit 문제를 풀어본다.
이전에 지옥방에서 웹해킹까지 할때 냈던 과제
https://caputdraconis.tistory.com/13
가 있지만 이건 너무 좀 그래서 다시 한 번 깔끔하게 정리를 해보고자 한다. 이전에 진행 했었기에 우분투 세팅은 되어있다.
bandit0 -> bandit 1
처음에 접속을 하는데,,조금 찜찜했다.
ssh bandit0@bandit.labs.overthewire.org -p 2220
사이트에서 알려준대로 접속을 시도했다.
bandit0는 아이디, -p 옵션은 뒤에 나오는 2220 포트로 접속을 하겠다!라는 의미이다.
뭐 오류 비스무리한게 떠서 조금,,,
로그인이 되긴 했다 후하후ㅏㅎ
뭐야 바로 뜬다 클리어~
boJ9jbbUNNfktd78OOpsqOltutMc3MY1
bandit1 -> bandit2
전 단계에서 알아낸 비밀번호로 로그인을 했다.
파일 이름이 '-' 이다.
cat -
을 입력하자 계속 날 따라하는 시키가 등장한다. 컨트롤+D로 탈출하자!
저게 파일 이름인걸 컴퓨터에게 알려주기 위해 파일 경로를 앞에 추가했다.
cat ./-
./ 는 현재 디렉토리를 의미한다. 현재 디렉토리에 있는 - 이라는 파일을 보여줘라
유후~
CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9
bandit2 -> bandit3
?
spaces in this filename이 파일 이름이다.
후
그렇게 하는거 아닌뒈에에에에ㅔ에ㅔㅂ~~
파일 이름 사이에 있는 공백을 무시하지 못하나보다,,흠
문자열을 하나로 묶는 따옴표를 사용해볼까요!?
후힣
UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK
bandit3 -> bandit4
이름이 파란색이다.
여기서 미친 직감이 진가를 발휘한다.
파일 이름 색깔이 파랑이고,,,, 이름이 이 안에!?
저건 폴더 이름일거야 분명히!!!!
확실해
cd 명령어를 이용해서 inhere 디렉토리로 이동해보자
ls -l
을 입력해봤지만 아무것도 뜨지 않았다..
숨겨진 파일까지 볼 수 있는 ls 명령어의 -a 옵션을 추가해서
ls -al
을 입력하니 .hidden 이라는 파일이 존재했고 이를
cat ./.hidden
으로 열어보니!!????
흐핳
pIwrPrtPN36QITSp3EQaw936yaFoFgAB
bandit4 -> bandit5
후
익숙한 친구가 보인다! inhere!
쪼꼼 당황스럽네,,?
홈페이지를 살펴보니 비밀번호는 사람이 읽을 수 있는 파일 안에 저장되어 있다고 한다.
저중에 사람이 읽을 수 없는게 있는건가
으으으으음~~~ 이런 느낌이구만
저 10개의 파일을 모두 cat 해보는 방법도 있겠지만 귀찮으니깐 file 명령어를 사용하도록 하자.
https://webdir.tistory.com/147
저 파일들 중 한 파일만이 사람이 읽을 수 있는 파일이고 그 파일은 종류가 다를 것이다라는 생각에서 file 명령어를 선택했다.
근데 또 여기서 file ./-file00부터 시작해서 다 쳐보기에는 cat 으로 다 쳐보는거하고 별 다르지 않다.
포너블 스터디에서 사용했던 방법을 사용하자
바로 *이다.
익스플로잇 코드를 작성할때 앞에서 pwntools의 기능을 모두 import 하기 위해
from pwntools import *
라는 코드를 사용했다. 여기서 *는 모든!을 뜻한다.
그러니깐!?
여기서는 현재 디렉토리에 있는 모든 파일을 file 명령어로 뭐시기 해줘라 이런 의미가 되겠다.
여기서 -file07만 혼자 아스키 텍스트 형식이므로 cat 으로 확인해보자
오홍
koReBOKuIDDepwhWk7jZC0RTdopnAYKh
bandit5 -> bandit6
금방 금방 풀려서 기분이 좋다,,,
또 다시 inhere 디렉토리가 있었고 그 안에는 ㅁㅊ
폴더가 개많다.
이번에도 홈페이지를 확인해보자
human-readble && 1033 bytes && 실행 불가능
흠,, 깐깐해
예전에 풀때 find였나로 옵션으로 사이즈 이런거 다 줘가지고 찾았던 기억이 나는데
흠 기억대로만 풀 수 없으니깐
ls -al ./*
을 입력해서
한 번에 다 출력해주고!!!!! 1033바이트이면서 x 권한이 없는걸 찾아보자
이 친구 의심스럽다
cat 해보자
오옹~
DXjZPULLxYr17uwoI01bNLQbtFemEgo7
나중에 이전에 썼던 블로그를 찾아보니
find -size 1033c
를 사용했던걸 알 수 있었다. 이는 1033바이트 크기의 파일을 찾는 명령어이다.
bandit6 -> bandit7
뭐지
홈페이지 확인하자
서버 어딘가에 있대요오,,
bandit7 소유이면서 bandit6 그룹꺼고 33 바이트,,,
그냥 뭐
cd ..
두번 쳐서 쭈우우욱 나간 다음에
find -size 33c
하니깐
이 많은것들 중에 Permission denied 가 아니면서!? 뭐 이만저만한거 찾다보니깐 위 사진에서 빨간색으로 칠해놓은 그게 딱 눈에 들어왔고 cat으로 살펴보니?
후 근데 이 방법이 아닐꺼야
유저와 그룹까지 모두 설정할 수 있었다. 그럼 다시 한 번!!!
find -user bandit7 -group bandit6 -size 33c
를 입력하니 이 조건을 성립하는 여러 파일들이 쫘라르르르륵
근데 이중에서도 권한이 있는 파일은 하나밖에 없었고 그 파일은 바로 위에서 찾았던 파일!!뚜뚜우ㅜㅜㅜ뚜뚜뚜ㄸ
HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs
bandit7 -> bandit8
millionth..? 라는 단어를 찾아야하나보다 그 다음에 비밀번호가 있으니깐
후 열어볼까?
이야씨 이건 뭐시여
https://recipes4dev.tistory.com/157
grep이 이 상황에 적합한 명령어인거 같다. 파일의 내용에서 특정 문자열을 찾고자 할 때 사용하는 명령어!!!
우와아ㅏ아아아아아ㅏ아아아아ㅏ아아아 성공했다아아아ㅏ아아아아ㅏ아
cvX2JJa4CFALtqS87jk27qwqGhBM9plV
bandit8 -> bandit9
인줘이 유어ㄹ 스테e
흠 data.txt에서 중복을 없애라는 의미로 해석된다..
중복을 없애는 명령어가 뭐가 있을까아
오오오오ㅗ오오오옹 sort 명령어에 -u 옵션을 사용하면 되겠다
해보자
저기요...?
왜 안되지
uniq라는 명령어를 알아냈다. 이 친구는 중복된 문자열을 삭제처리하고 출력해준다.
이 명령어의 옵션에서 -c 를 사용하면 문자열 앞에 이 문자열이 몇 번 중복되었나 숫자로 보여줍니다.
그럼
cat data.txt|sort|uniq -c
위처럼 파이프를 이용해 명령을 작성해주면 흐름은 왼쪽에서 오른쪽으로 흘러가게 된다
cat으로 출력을 해주는데! sort 정렬한 상태에서! uniq -c 로 중복된 문자열은 횟수로만 출력해줘라~
이처럼 출력이 된다 후
여기서
한 번만 출력된 저 친구가 비밀번호가 된당.
UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR
bandit9 -> bandit10
사람이 읽을 수 있는 문장을 찾아야하네, 근데 그 문장 앞에는 몇 개의 '=' 가 있어!
grep 명령어를 사용해보았으나 바이너리 파일이라고 무슨 오류가 떴다!
바이너리 파일...?
https://webdir.tistory.com/109
strings 명령어가 바이너리파일 전문이라는 소문을 들었었다!
그래서 바이너리 파일인 data.txt를 읽으면서 거기서 '='가 있는 문장을 출력해줘! 라고 부탁하니깐 그 부탁을 들어주었다ㅎㅎ
흠 저기서 비밀번호가 될만한 값은!?
truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk
이다!
bandit10 -> bandit11
data.txt가 base64 인코딩이 되어있다는거 같다..
오홍~
그럼 base64에 대해서 찾아보자
https://websecurity.tistory.com/84
base64는 옵션값을 주지 않으면 인코드, -d라는 옵션값을 주면 디코드를 진행한다. 그럼
base64 -d data.txt
를 입력하자
하 너무 좋아
IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR
bandit11 -> bandit12
a-z와 A-Z가 13씩 회전...?
알파벳이 26자니깐 반이 돌아가있다 이런 뜻인거 같다.
예를 들어 a여야 하는 문자는 13개 뒤에 있는 (세는중 잠시만 기달) i? n!!!!! a -> n이 되고 n -> a가 되는거 같다!!!!!!!
이걸 어떻게 표현하지
힌트를 보자
딱 맞는 명령어를 찾은거 같다.
후
https://hack-cracker.tistory.com/98
이 블로그에서 설명해준 모습으로 원하는걸 작성해주면
cat data.txt| tr a-mn-zA-MN-Z n-za-mN-ZA-M
위와 같이 나온다. 이는 소문자 대문자 모두 a-m를 n-z로, n-z를 a-m으로 바꿔주라는!!! 명령어다!!!!
이를 입력하면!!!!
후핳
5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu
bandit12 -> bandit13
흠 좀 길구만유, 흠 일단 시키는대로 /tmp 밑에 디렉토리 하나 만들어서 거기다가 data.txt를 복사해주자
위와 같이 mkdir 명령어로 디렉토리를 만들어주고 cp명령어를 이용해 그 안에 data.txt를 복사했다( 중간에 에러메시지는 비밀)
data.txt 파일은 뭐시기 hexdump? 여러번 압축? 뭐라는거지
xxd라는 명령어를 발견했다. 이는 16진수(hex)를 바이너리 데이터로 변환해주는 명령어였다.
16진수였던 data.txt를 바이너리 파일인 data로 변경해주었다.
file 명령어로 data를 알아보니 gzip 파일이다.
https://steven-life-1991.tistory.com/9
그냥 gunzip data를 하자 안되어서 알아보니! gzip의 확장자는 .gz 이길래 확장자를 바꿔주었다.
그리고 압축해제를 실시!
후,,,또다시 file 명령어를 이용해 알아보니 이번에는 bzip이다
https://hack-cracker.tistory.com/126
후 bzip2의 확장자는 bz2이다.
그래서 mv 명령어를 이용해 바꿔주고~
bzip 명령어에 압축 해제를 의미하는 -d 옵션을 주어서 압축해재 했다!
나쁜시키야
무슨 압축을 몇 번을 하냐
위와 같이 풀어주고~
ㄱㅅ,,,,
하
https://recipes4dev.tistory.com/146
뭐지 왜 갑자기 data5.bin이 나오지
이 타이밍에서 5가 나오려면 이전에 1,2,3,4가 나왔어야 하는데 뭔가 잘못된거 같긴 한데
넘어가자ㅎㅎ
이 친구도 tar 압축 파일이다. 똑같이 압축해제 해주도록 하자!
이번에는 data6.bin? 어이가 없네씨
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ이번에는 또 bzip2야!?
야!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
후하후하
이제는 지쳐버렸는걸.....
지쳤어 넌 언제나 항상 이런 식이야ㅡㅡ
어?
사랑해
8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL
bandit13 -> bandit14
으음 핳
뭔 소리야
https://hack-cracker.tistory.com/131
bandit14가 아이디가 될거고,, 위 블로그에 나와있듯이
이 옵션 값으로
저기 있는 sshkey.private을 주면 될거같다
저게 비번이 되구~ localhost가 서버가 되구~
이전에 로그인할때 bandit.labs.overthewire.org 대신에 localhost가 그 역할을 대신한다
지금 접속해있는 상태이니 지금 이 서버를 의미하는걸로 추.정.
그럼!?
계속 뭐 yes/no 물어보다가!? 성공 흐힣
localhost 포트 30000에 이번 레벨의 비밀번호를 치면 되는건가..?
이번 레벨의 비밀번호는
/etc/bandit_pass 디렉토리 안에 저장되어있다.
이렇게 이번 단계의 비밀번호를 얻어주고!?
이제 로컬호스트에 연결해야되는디,,,흠
LOB 할 때 맥 터미널이랑 가상머신 프로그램이랑 이을 때는 telnet 명령어를 사용했었다,,,혹시..?
옹?
혹시,,,,nc 명령어도 되나? 이건 포너블 스터디에서 썻던건뎅
오씨 짱짱해커 된 느낌이다.
다.했.다.
댓글
이 글 공유하기
다른 글
-
6주차 과제 [server-side]
6주차 과제 [server-side]
2020.06.10 -
웨페킹 팔주차 [Bandit OverTheWire All clear]
웨페킹 팔주차 [Bandit OverTheWire All clear]
2020.06.03 -
웨에에엡 해애애애애 키이이잉 유우욱 주차아아 과아아제에에[CSRF,XSS]
웨에에엡 해애애애애 키이이잉 유우욱 주차아아 과아아제에에[CSRF,XSS]
2020.05.19 -
웹해킹 5주차 과제 모음 뚜둥
웹해킹 5주차 과제 모음 뚜둥
2020.05.15