bandit 33

[Overthewire] level 32 -> level 33

어느덧 마지막 문제네요..!! 열심히 썼다고 썻지만 부족한 부분도 많은 점 알고 있습니당..!! 문제를 보겠습니다. 해석을 해보면, git을 탈출하라?? 느낌이긴 합니다.. (제가 영어를 잘 못해서..) 풀이를 해보겠습니다. 로그인을 해보니, 쉘을 입력할 때 uppercase (대문자) 로 인식을 한다고 되어 있습니다. 이런식으로 말이죠..! 쉘 스크립트 명령어에 대해서는 여기서 참고했습니다. https://m.blog.naver.com/baraem2005/20168719811 그래서 풀이를 이어 보겠습니다. 오타는 실수입니다..ㅎㅎ 그래서 $0 는 쉘 또는 쉘 스크립드의 이름을 가지고 있습니다. 그래서 $0를 입력하면 >>가 $로 바뀌고 bash로 쉘을 취득했습니다. 그다음 패스워드가 있는 경로에서 출..

bandit 2022.06.13

[Overthewire] level 31 -> level 32

문제를 보겠습니다. 전 문제들과 동일합니다. 풀이를 하겠습니다. 여기서는 git으로 add, commit, push의 명령어를 사용해야 됩니다. 기본적인 단계를 거쳐서 README.md까지 출력 하겠습니다. 자..여기까지 했습니다. 해석을 해보면, 원격 저장소에 파일을 푸쉬하고 푸쉬를 할 때, 파일 이름이 key.txt이고 May I come in? 이라는 문자가 저장되어 있으며, branch는 master이다. 그럼, 일단 현재 branch가 무엇인지 보겠습니다. master 브랜치임을 알 수 있습니다. 그다음, key.txt를 만들어 May I come in? 이라는 문자를 넣어 파일을 하나 만들어 봅시다. 이제 준비는 완료 되었습니다. 일반적으로 git 저장소에 자료를 추가 및 업로드 하기 위해서는..

bandit 2022.06.13

[Overthewire] level 30 -> level 31

문제를 보겠습니다. 해석을 해보면, 전 문제와 동일합니다. 풀이를 하겠습니다. 역시, README.md에 아무것도 없었습니다... 전 문제와 동일하게 명령어를 입력했으나 아무것도 찾지 못했습니다. 또 고민을 하면서 구글링을 하다가, 누락된 branch가 있을까? 하고 검색을 해보니 reference를 알게 되었고, branch와 별 차이는 없지만 차이가 있다면 "브랜치가 논리적 명칭이라면, 레퍼런스는 파일 구조상의 명칭" 입니다. 레퍼런스를 show로 보니까 secret이 있었고, secret만 출력해보니 패스워드가 있었습니다.

bandit 2022.06.13

[Overthewire] level 29 -> level 30

문제를 보겠습니다. 해석을 해보면, 전과 똑같습니다. 풀이를 해보겠습니다. 여기까지는 다 했을겁니다. 그리고 출력을 해보겠습니다. commit이 있나 싶어 확인을 해봤습니다. 근데 패스워드가 없네요..! 그래서 고민을 했었습니다. 그러다가 branch 명령어를 알았습니다. branch란? 저장소를 처음 만들면, Git은 바로 'master'라는 이름의 브랜치를 만들어 둡니다. 이 새로운 저장소에 새로운 파일을 추가 한다거나 추가한 파일의 내용을 변경하여 그 내용을 저장(커밋, Commit)하는 것은 모두 'master' 라는 이름의 브랜치를 통해 처리할 수 있는 일이 됩니다. 'master'가 아닌 또 다른 새로운 브랜치를 만들어서 '이제부터 이 브랜치를 사용할거야!'라고 선언(체크아웃, checkout..

bandit 2022.06.13

[Overthewire] level 28 -> level 29

문제를 보겠습니다. 해석을 해보면, 전 문제랑 별 다를게 없어 보이지만, 풀이는 좀 다릅니다 ㅠㅠ 풀이를 하겠습니다. 일단 로그인을 시작하고, 전의 문제처럼 /tmp/경로에, 임시 디렉터리를 하나 생성 하겠습니다. 경로를 가서 git 명령을 사용해서 저장소를 불러왔습니다. README.md를 출력을 하고, git log로 커밋이 있나 봤습니다. commit이 있습니다. 그래서 git show를 입력해서 git show [커밋] 을 입력해보면 패스워드를 찾을 수 있었습니다. password는bbc96594b4e001778eee9975372716b2 입니다.

bandit 2022.06.13

[Overthewire] level 26 -> level27

문제를 보겠습니다. 전 문제랑 이어져있는것 같습니다. 왜냐면 로그인을 해보니까 또 꺼져가지고...ㅋㅋㅋㅋ 풀이를 하겠습니다. 전 문제랑 똑같이 해보겠씁니다. 여기서, 아까는 e 명령어를 썼지만, 이번에는 shell을 바꿔주도록 하겠습니다. 명령어 : set shell=/bin/bash를 한 후, :sh 입력 그럼 bandit26 권한을 가지고 옵니다. bandit27.do 라는 파일이 있네욥 setuid 네요.. 그럼 bandit 패스워드는 /etc/bandit_pass/이니까 저 파일을 실행함으로써 패스워드를 추출 해봅시다. 패스워드가 잘 보이네요!!

bandit 2022.06.12

[Overthewire] level 25 -> level 26

문제를 보겠습니다. 해석을 해보면, bandit25에서 bandit26으로 로그인 하는 것은 쉽다. 단, bandit26은 지금까지 사용했던 쉘인 /bin/bash가 아니라 다른것이다. 그래서 쉘이 뭔지, 어떻게 작동하는지 알아봐달라네요.. 풀이를 하겠습니다. ssh로 접속을 하게끔, sshkey를 하나 주네요..그래서 바로 연결시켜 보겠습니다. 바로 접속이 종료되네요..? 허허허 그래서 아까 문제에 이 친구는 bin/bash가 아니다. 그랬으니까 리눅스에서 사용자계정을 관리하는 passwd파일을 보겠습니다. 옹...showtext?? 라고 적혀있네요 그래서 저기 경로를 실행시켜 보겠습니다. more 명령어로 text.txt를 실행시킨다고 적혀있으니까 more 명령어는 조금씩 창을 보여주니까 터미널을 작..

bandit 2022.06.12

[Overthewire] level24 -> level25

문제를 보겠습니다. 해석을 해보면, 포트 30002를 통해서 로그인을 하는데, bandit24에 대한 암호 + 무작위 4자리 숫자의 핀코드가 제공된 경우 다음 레벨로 가는 암호는 제공한다고 적혀있습니다. 결국엔 그냥 브룻포스를 하라고 하니까 코드를 작성해야 될 것이라고 생각할 수 있습니다. 풀이를 하겠습니다. 그냥 30002에 접속해보겠습니다. bandit24의 패스워드랑 핀번호 1234를 집어 넣었더니 Wrong! 틀렸다. 똑바로 핀코드를 넣어라 라고 적혀있네요... 그래서 코드를 짜야되는데 권한때문에 새로운 디렉터리를 하나 만듭니다. 이제 쉘 코드를 작성하겠습니다. 작성이 완료 되었으면 권한을 777로 바꿔주고 실행을 시키겠습니다. 이렇게 실행을 시키게 되면 다음과 같이 나옵니다. 그럼 그냥 저 pa..

bandit 2022.06.12

[Overthewire] level 23 -> level 24

문제를 보겠습니다. 해석을 해보면, 이전 문제와 동일하게 /etc/cron.d를 확인하고, Note은 스크립트를 직접 작성해라, Note2는 실행되면 만든 스크립트가 제거되므로 사본을 미리 준비해둘 것!! 풀이를 하겠습니다. 기본적으로 스크립트를 보기 위한 과정은 생략하겠습니다. 스크립트까지 출력을 했습니다. 코드 부분을 읽어보니 echo는 스크립트가 실행되고 /var/spool/ 경로 안에서 뭔가 사라진다는 것으로 추정됩니다. 밑에 for 문을 읽어보니, 모든 파일에 대해서 파일 이름이 현재 디렉터리 또는 상위 디렉터리가 아니면 timeout > 60초 이내에 실행해라. 아니면 rm -f > 이유를 불문하고 삭제하겠다. 라고 쓰여있네요!! 결국엔 스크립트를 하나 작성해서 /var/spool 경로에 복사..

bandit 2022.06.10