[FTZ] Level 3 응용: 항상 접근 가능한 백도어 쉘 만들기
level3에서 level4의 비밀번호를 얻는 방법은 저번 포스팅을 참고하시면 됩니다
https://secure-key.tistory.com/50
[FTZ] Level 3: SUID가 걸린 함수에 인자 전달로 명령 실행
level3로서 로그인 후 홈 디렉토리를 확인해보니 역시 hint 파일이 존재한다 이를 확인해보니 autodig의 소스코드를 보여주고 있는데 이를 이용하여 level4의 권한을 얻어야한다고 한다 추가 힌트를 ��
secure-key.tistory.com
이번에는 저번 포스팅과는 달리 my-pass 명령어가 아니라
계속해서 level4로서 명령어를 실행할 수 있는 쉘을 실행시켜보았다
그러나 매번 autodig를 통해서 level4의 권한을 얻기보다는
백도어 쉘을 생성하여 언제든 level4의 권한을 얻을 수 있게 해보도록 하겠다
vim를 사용하여 /tmp 안에 Backdoor.c 파일을 생성하여 주었다
이 소스코드를 작성할 때에 우리는 level4의 권한을 빌린 상태로 작성해야 한다는 점을 잊지 않아야 한다
위와 같이 쉘 코드를 작성하여 주었다
컴파일 또한 level4의 권한을 빌려 해야 하므로 위와 같이 해준다
여기서 끝나면 안되는 것이
컴파일 된 Backdoor 파일을 확인해보면 SUID가 설정되어 있지 않다
즉 권한 또한 level4의 권한으로 바꿔주어야 한다
SetUID를 위해 위와 같이 권한을 바꿔준 후 확인해보면
성공적으로 권한이 바뀌어 있음을 확인할 수 있다
이렇게 권한이 바뀌면 level4나 level3가 아닌 other의 입장에서도
실행시킬 수 있는 파일이기 때문에 level4로서 쉘을 사용할 수 있다
level1으로 로그인을 한 후 /tmp/Backdoor를 실행해보니
level4의 권한인 것을 확인할 수 있고,
더불어 level4의 비밀번호도 바로 확인이 가능했다