Wargame Writeup

ls bandit27-do 파일이 보인다. cat bandit27-do 당연히 실행되지 않는다. ls -al bandit27-do의 권한이 bandit27인 것을 확인할 수 있다. 더 정확하게 보기 위해 id 명령어를 사용하자. ./bandit27-do id euid가 bandit27이다. 이 파일을 이용해 bandit27로 가기 위한 password 파일에 접근하자. ./bandit27-do cat /etc/bandit_pass/bandit27 다음 레벨로 가기 위한 password가 보인다.
ls bandit26.sshkey 파일이 있다. cat bandit26.sshkey sshkey 내용이 나온다. sshkey를 가지고 bandit26에 ssh 접속을 한다. ssh -i bandit26.sshkey bandit26@localhost bandit26만 출력하고 로그아웃되었다. bandit26의 쉘을 확인하기 위해 /etc/passwd 파일을 열어보자. cat /etc/passwd | grep bandit 나머지와 다르게 bandit26만 /usr/bin/showtext 안에 있다. /usr/bin/showtext 파일을 읽어보자. cat /usr/bin/showtext more 명령어가 실행된 후 바로 종료된다. more 명령어가 실행될 수 있도록 창을 작게 만들고 다시 ssh로 bandi..
포트 30002에 접속해보자. nc localhost 30002 bandit24 password와 한 칸 띄어서 pincode를 한 줄에 입력하라고 한다. 0000부터 9999까지 반복 입력해서 pincode를 찾는 쉘 스크립트를 짜보자. 먼저, 스크립트 파일을 저장할 임시 디렉토리를 만든다. mkdir /tmp/eskim cd /tmp/eskim brute_forcing.sh라는 쉘 스크립트를 만들어 password와 pincode를 list.txt 파일에 저장하도록 하자. cat > brute_forcing.sh #!/bin/bash passwd=UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ for i in {0000..9999} do echo $passwd $i >> /tmp/eskim..
cd /etc/cron.d 문제에서 제시한 경로로 이동한다. ls cronjob_bandit24 파일을 읽어보자. cat cronjob_bandit24 위에서 제시한 경로에 있는 파일을 읽어보자. cat /usr/bin/cronjob_bandit24.sh /var/spool/$myname 에 있는 파일은 실행되면 60초 안에 삭제된다. 사본 파일을 저장할 임시 디렉토리를 만들자. mkdir /tmp/eskim cd /tmp/eskim 위의 디렉토리 안에 bandit24 password 파일을 bandit_pass 파일에 저장하도록 실행시키는 dump.sh 파일을 만들자. cat > dump.sh #!/bin/bash cat /etc/bandit_pass/bandit24 > /tmp/eskim/bandit..
그 전 레벨과 마찬가지로 문제에서 제시한 경로로 이동해보자. cd /etc/cron.d ls cronjob_bandit23 파일을 읽어보자. cat cronjob_bandit23 /usr/bin 경로 아래 cronjob_bandit23 파일을 읽어보자. cat /usr/bin/cronjob_bandit23.sh passwordfile은 /tmp/$mytarget 파일로 복사되었다. mytarget이 무엇인지 구해야 한다. mytarget을 구하기 위해 위에서 제시한대로 명령어를 입력해보자. 이 때, myname은 bandit23이다. echo I am user bandit23 | md5sum | cut -d ' ' -f 1 mytarget은 8ca319486bfbbc3663ea0fbe81326349이다...
문제에서 주어진 경로로 이동해보자. cd /etc/cron.d ls bandit22와 관련된 파일이 보인다. cronjob_bandit22 파일을 읽어보자. cat cronjob_bandit22 /usr/bin/ 경로 안에 cronjob_bandit22 파일을 가리키고 있다. 위에서 제시한 파일을 읽어보자. cat /usr/bin/cronjob_bandit22.sh 이번엔 /tmp/ 경로 안의 파일을 가리킨다. 위에서 제시한 파일을 읽어보자. cat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv 다음 레벨로 가기 위한 password가 보인다.
ls suconnect 실행파일이 보인다. suconnect를 어떻게 실행하는지 알아보자. ./suconnect 먼저, 터미널1을 열어서 임의의 포트 8888을 열어준다. nc -l -p 8888 터미널2를 열어서 suconnect 파일을 포트8888에 연결한다. ./suconnect 8888 다시 터미널1로 돌아와 현재 Level20의 password를 입력한다. 그러면 다음 Level21로 가기 위한 password가 반환된다. 터미널2에서 password가 반환되었음을 확인할 수 있다.
ls bandit20-do라는 실행파일이 보인다. ./bandit20-do 다른 user로 실행하라고 한다. ./bandit20-do id 파일의 euid, 즉 유효 사용자가 bandit20이다. bandit20으로 권한을 상승시켜 실행파일을 열어보자 ./bandit20-do cat /etc/bandit_pass/bandit20 다음 레벨로 가기 위한 password가 보인다.
Level19로 가기 위한 password는 readme 파일 안에 있다. 그러나 ssh로 접속하면 바로 로그아웃된다고 한다. ssh -p 2220 bandit18@bandit.labs.overthewire.org 역시나 접속이 되지 않고 바로 로그아웃된다. ssh 접속 명령어와 readme파일을 읽을 수 있는 명령어를 바로 함께 보내자. 큰 따옴표를 사용하여 ssh 명령어가 진행될 때는 읽히지 않도록 한다. ssh -p 2220 bandit18@bandit.labs.overthewire.org "cat readme" 다음 레벨로 가기 위한 password를 확인할 수 있다.
je1att0
'Wargame Writeup' 카테고리의 글 목록