전체 글 205

[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

[Overthewire] level 22 -> level 23

문제를 보겠습니다. 해석을 하자면, 전 문제랑 동일합니다. 풀이를 하겠습니다. 다시 파일 경로를 가서 봤더니 또 cronjob_bandit23이 있었습니다. 다시 출력을 시켜보겠습니다. 전 문제와 동일하게 풀어보겠습니다. 또 다시 스크립트가 나왔습니다. 다시 스크립트를 입력하겠습니다. 단, $myname에는 bandit23을 입력해주셔야 됩니다. $mytarget에 대한 값을 찾을 수 있었습니다. 그럼 밑에 스크립트처럼 /tmp/8c~~~를 입력하겠습니다. 패스워드를 찾을 수 있었습니다.

bandit 2022.06.10

[Overthewire] level 21 -> level 22

문제를 보겠습니다. 해석을 해보면, 프로그램은 시간 기반 작업 스케줄러인 cron에서 정기적으로 자동으로 실행된다. /etc/cron.d/에서 구성을 찾아 실행 중인 명령을 확인한다. 풀이를 하겠습니다. 문제에 나오던대로 etc/cron.cd으로 이동을 했습니다. ls 명령어를 해보니 다음과 같은 파일들을 발견할 수 있었습니다. 우리가 보는 것은 cronjob_bandit22를 출력해보겠습니다. 스크립트가 하나 있는것을 볼 수 있었습니다. 똑같이 스크립트를 입력해보겠습니다. 또 스크립트가 하나 나왔습니다. 똑같이 chmod로 권한을 설정해줘야 하는것 같았습니다. 다시 똑같이 스크립트를 입력하고 출력을 해보겠습니다. 패스워드를 발견할 수 있었습니다.

bandit 2022.06.10