이제 얼마 안 남았습니다 모두 파이팅!
Bandit Level 23 → Level 24 문제 풀이
ssh bandit23@bandit.labs.overthewire.org -p 2220
password : QYw0Y2aiA672PsMmh9puTQuhoz8SyR2G
Bandit Level 23 → Level 24 문제는 이전 문제와 동일하게 /etc/cron.d/ 파일 경로에서 어떤 명령어가 실행되는지 확인하라고 합니다
참고 : 이 문제는 자신만의 첫 번째 쉘 스크립트를 만들어야 합니다
참고 2 : 이 쉘 스크립트는 실행되면 바로 삭제되므로 사본을 보관해야 합니다
지난 문제와 동일하게 다음 레벨의 실행 파일 경로를 복사하고 홈 디렉터리로 이동해 주세요
복사한 실행 파일을 읽어보니 쉘 스크립트가 주어졌습니다 이 코드를 해석해 봅시다
#!/bin/bash //bash 쉘을 사용합니다
myname=$(whoami) //bandit24
cd /var/spool/$myname/foo || exit 1 //해당 경로로 이동
echo "Executing and deleting all scripts in /var/spool/$myname/foo:"
for i in * .*; //모든 파일에 대해 반복합니다
do
if [ "$i" != "." -a "$i" != ".." ]; //파일 이름이 "." 현재 디렉터리가 아니고 ".." 상위 디렉터리가 아니라면
then
echo "Handling $i"
owner="$(stat --format "%U" ./$i)"
if [ "${owner}" = "bandit23" ]; then //owner가 bandit23 이면 밑에 구문이 실행됩니다
timeout -s 9 60 ./$i fi // 실행 파일을 60초 이내에 실행해라 60초가 넘으면 이 프로세스를 죽입니다
rm -rf ./$i //프로그램 강제 제거
fi
done
이 쉘 스크립트 때문에 60초마다 /var/spool/bandit24의 있는 스크립트가 삭제됩니다 그래서 따로 디렉터리를 생성하여 bandit24 패스워드를 리다이렉션 하는 방식으로 작성해 봅시다
해당 디렉터리를 생성하여 이동 후 bash 쉘을 vi 명령어로 생성해 주세요
쉘 내용은 사진과 같이 bandit24의 패스워드를 해당 경로에 password 파일로 리다이렉션 시키는 구문입니다
(bandit24의 패스워드 경로는 bandit24 계정만 확인할 수 있기 때문에 해당 패스워드를 다른 파일로 리다이렉션 하는 구문을 작성했습니다)
그다음 해당 쉘을 /var/spool/bandit24 디렉터리로 복사해야 하는데 현재 해당 쉘은 bandit23를 제외하고는 아무도 실행할 수 없기 때문에 chmod 명령어를 이용하여 777 권한 설정을 부여했습니다
권한을 부여했으면 이제 /var/spool/bandit24 디렉터리로 복사해 주면 됩니다 하지만 작동이 허용되지 않는다고 나오는데 /var/spool/bandit24/foo/이라는 경로로 다시 한번 cp 명령어를 입력해 주면 됩니다
그런데 1분이 지나도 password 파일을 쓰지 못하고 있습니다 이 이유는 musa 디렉터리를 확인해 보면 bandit23 계정 외에는 모두 write 권한이 없기 때문입니다
다시 설명하자면 위에서 쉘 스크립트 파일인 myshell.sh 안의 내용은 bandit24의 권한으로 해당 쉘을 실행시키게 됩니다 그러면 /tmp/musa/password 파일은 bandit24의 권한으로 작성됩니다
그런데 musa 디렉터리는 bandit23 계정 외에는 모두 write 권한이 없기 때문에 password 파일이 쓰이지 않는 겁니다
결국 /tmp/musa 디렉터리도 다른 사람에게 write 권한을 추가시켜주면 됩니다
[ 권한 설정 ]
Kali Linux 권한 (권한 변경) [ 5 ]
리눅스는 파일 권한 설정으로 사용자의 행동을 제한할 수 있습니다 그렇기에 각각의 파일과 디렉터리에 권한을 설정하는 방법이 중요합니다! chmod 명령어를 이용하여 권한을 설정하자 rwx 권한
mu-sa.tistory.com
다시 /var/spool/bandit24/foo/ 경로의 해당 쉘을 복사한 후 1분 정도 기다리면 사진과 같이 password 파일이 생성됩니다
이 파일을 읽어보면 다음 레벨의 비밀번호를 획득할 수 있습니다
오늘 문제는 상당히 난이도 있는 문제였습니다 여러 번 번복 끝에 해당 문제를 풀었습니다...
[ 참고 사이트 ]