전체 글
-
OVer the wire :bandit 26레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:52
저번 level 25에서 bandit26으로 접속했었으니 bandit26으로 접속하는 방법은 bandit25레벨 문제를 참조해주세요. 파일들을 확인해보니 bandit27-do파일과 text.txt파일이 있네요. 권한을 확인해보니 bandit26은 실행만 할 수 있군요. 실행해봅시다. bandit27-do 파일은 27의 권한으로 무언가 하는 이문제도 setuid 문제를 풀때 풀었던 문제군요 비밀번호:3ba3118a22e93127a4ed485be72ef5ea overthewire bandit 26level clear
-
OVer the wire :bandit 25레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:51
우선 접속한뒤 ls 명령어를 통해 디렉토리에 있는 파일을 확인해봅시다 bandit26.sshkey파일이있네요. 이파일을 통해 bandit26을 로그인해보겠습니다. 접속해보니 바로 연결이 종료되네요 계정의 간단한 정보가 들어있는 /etc/passwd을 확인해봅시다. 다른 계정들은 /bin/bash로 쉘이 설정되어있는데 bandit26번만 다르네요 저파일을 읽어보니 more 명령어로 text.txt 파일 ->bandit26 로그인화면 (그림)등을 출력해주는가 봅니다 그런데 more 명령어는 한줄씩 보여주기 떄문에 창의 크기를 줄이면 중간에 멈출 수 있겠습니다. 이상태에서 v 키를 누르면 vi 가 실행됩니다. 여기에서 shell 설정을 변경하여 실행하도록 만들어줍시다. 이렇게 해주면 bandit26으로 접속할..
-
OVer the wire :bandit 24레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:51
포트 30002 에서 bandit24에 대한 비밀번호와 어떤숫자 4자리를 대입하여 저장된값이 맞으면 bandit25의 접속 비밀번호를 제공하는데 어떤숫자 4자리를 무차별 대입 공격으로 풀어보는 문제인것 같습니다. 접속해보니 비밀번호와 비밀숫자 4개를 공백을 사이에 두고 입력해주라고하네요. 우선 작업공간을만들고 이동해보겠습니다. 이문제 또한 셸코드를 이용해 문제를 해결하면 될 것 같습니다. 코드를 보시면 pass에는 24레벨의 비밀번호가 들어있고 plus에는 0부터 9까지의 값이 총 4자리 즉 0000~9999까지의 숫자 동안 반복하는것입니다. {0..9999} 이렇게 해버리면 0 1 2 앞에 자리는 입력되지 않기 떄문에 저런 형식으로 작성했습니다. 반복문이 되는 동안은 localhost의 30002 포트..
-
OVer the wire :bandit 23레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:49
이번문제도 저번문제와 같이 /etc/cron.d/ 에서 찾아보겠습니다 항상 실행되는데 bandit24.sh 쉘스크립트를 실행하는군요 쉘스크립트를 확인해봅시다. /var/spool/bandit24 의모든 스크립트를 실행한뒤 삭제한다고 나와 있습니다. 1분에 한번확인하는것 같네요 여기에 자신의 첫 번째 셸 스크립트를 짜라고하였으니 셸코드를 짜봅시다. 우선 mkdir /tmp/my23 로 작업공간을 만들어봅시다. 작업공간으로 이동한후 getpw.sh 라는 셸스크립트를 짜줍니다. 내용은 cat 명령어를 사용해 /etc/bandit_pass/bandit24 파일에서 읽은내용을 /tmp/my23/keyto24.txt 라는 파일에 출력하겠다는 내용입니다. 또한 bandit24에서 실행될 것 이기 떄문에 권한이 없을것..
-
OVer the wire :bandit 22레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:49
이번 문제는 /etc/cron.d/ 폴더로 이동해서 거기에 있는 파일을 확인해보면 될 것 같습니다. cronjob_bandit23을 확인해보니 /usr/bin/cronjob_bandit23.sh 라는 파일과 관련이 있어보입니다. 저파일도 확인해 봅시다. 쉘스크립트로 이루어진 cron 이네요 echo I am user bandit23 | md5sum | cut -d ' ' -f 1 명령어를 이용해 bandit23 이라는 이름을 md5로 만든뒤 공백글자를 지운뒤 /tmp/ 에 파일명으로 저장되는데 이파일은 cat /etc/bandit_pass/myname을 한 결과 값 즉 bandit23의 비밀번호가 저장되어있는 파일입니다. 지금출력된 문자열을 /tmp/8ca319486bfbbc3663ea0fbe813263..
-
OVer the wire :bandit 20레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:48
이번문제는 suconnect 프로그림이 명령줄 인수로 지정한 포트에서 localhost로 접속하게되는데 다른 터미널을 하나더 열어서 nc -l -p (port번호) 명령어를 입력해 자기자신의 포트에 연결하면 될 것같습니다. 비밀번호를 nc 명령어를 실행중인 터미널에 입력하니 다음 레벨로가는 비밀번호가 나왔습니다. 비밀번호:gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr overthewire bandit 20level clear
-
OVer the wire :bandit 19레벨문제풀이/overthewire:bandit 2021. 11. 24. 13:48
이번문제는 setuid 바이너리를 이용한문제네요. 권한이 없는 파일을 주나봅니다. bandit20-do 파일이 bandit20은 소유자 bandit19는 그룹이네요 bandit20 권한은 rws s는 특수 권한으로써 setuid를 의미합니다 setuid 는 다른 유저들이 소유자의 권한을 잠시 빌려 사용한다고 이해하면 될 것 같습니다. bandit19에도 x(실행권한)은 있으니 bandit20-do 파일을 실행시키는 동안 bandit20의 권한을 빌려 쓸 수 있으니 그때 cat /etc/bandit_pass/bandit20 명령어를 실행해서 비밀번호를 찾으면 비밀번호:GbKksEFF4yrVs6il55v6gwY5aVje5f0j overthewire bandit 19level clear