SetUID

    Level 20 → Level 21

    ls -l 으로 먼저 확인해보니 다음과 같이 나타납니다. SetUID가 설정된 파일이 하나 나오는군요. 일단 그냥 써서 어떤 식으로 동작하는지 알아보도록 합시다. ./suconnect 인자로 port를 주면 localhost를 통해서 접속하여 현재의 비밀번호와 비교해 같으면 다음 level의 비밀번호를 전달해주는 것 같았습니다. 그럼 일단 nc 명령어로 localhost에서 9999 port를 열어줍시다. 그리고 해당 port로 접속하면 비교를 위한 현재의 비밀번호를 전달하도록 설정합시다. echo "GbKksEFF4yrVs6il55v6gwY5aVje5f0j" | nc -l localhost -p 9999 & (&: 리눅스 작업을 background에서 동작할 수 있게 합니다.) 그러고 나서 jobs 명..

    Level 19 → Level 20

    이번엔 setuid 문제입니다. 로그인을 하고 home 디렉터리의 파일의 권한을 확인해보니 ls -l bandit20의 실행 권한이 현재 s로 setuid로 설정된 것을 보실 수 있습니다. 이 권한(s)은 이 파일을 실행한 어떠한 유저라도 일시적으로 해당 파일의 소유자의 권한을 얻을 수 있습니다. 즉 우리가 노려할 것은 이 파일이 어떤 파일인지 알아본 뒤, bandit20의 권한을 일시적으로 얻었을 때에 /etc/bandit_pass/bandit20의 패스워드를 훔쳐보는 것입니다. 일단 그룹권한으로 현재 bandit19도 읽고 실행할 수 있으니 실행해 봅시다. ./bandit20-do 아하 인자를 하나 전달해서 실행하라고 하네요. 일단 예시 그대로 따라 실행해보도록 하겠습니다. ./bandit20-do ..

    [level2] Write-Up : SetUID의 취약점 2

    지난번에 얻은 level2의 암호를 통해 접속해보도록 합시다. level2 / hacker or cracker cat hint 를 통해 이번은 어떤 힌트인지 보았습니다. 텍스트 파일 편집 중 쉘의 명령을 실행시킬 수 있다고 합니다. 텍스트 파일 편집 프로그램을 제공하는 것 같은데 어떤 건지 한 번 찾아보도록 합시다. find / -user level3 -perm -4000 2> /dev/null editor라는 이름의 실행파일인 것 같습니다. 자세히 한 번 보도록 하죠. ls -l /usr/bin/editor rws

    [level1] Write-Up : SetUID의 취약점 1

    FTZ(Free Training Zone)의 트레이닝(1~10)을 완료하고 맞이하는 첫 번째 문제입니다. 이제 PuTTY를 실행시키고, level1 / level1 으로 접속해봅시다. ls -l 명령어로 무엇이 존재하는지 살펴보도록 합시다. hint 라고 저긴 파일을 cat 명령어를 통해 알아보도록 합시다. (혹시 한글이 나오지 않고 깨져 보인다면 -> 여기로) level2 권한에 setuid가 걸린 파일을 찾으라는군요. 그럼 'level2' 권한(user)에 'setuid(4000)' (perm)을 가진 파일을 다 찾아봐야겠군요. find 명령어를 통해 찾아보도록 합시다. find / -user level2 -perm -4000 (-perm 뒤에 - 는 '최소한'이라는 의미를 가집니다.) 정보가 너무 ..