bash같은 쉘 인터프리터들은 사용자의 현재 권한에서 명령을 내려주고,
어떤 프로그램을 실행할땐 현재 권한으로 프로그램이 작동하게 됩니다
근데 /bin/ExcuteMe는 setuid가 걸려있기떄문에 level2의 권한으로 작동중이고
실행시킨 사용자의 현재권한도 level2입니다
이떄 /bin/bash를 실행하게되면 말씀드린대로 현재권한으로 프로그램이 실행되기 때문에 level2권한의 bash 프로세스가 생성됩니다
또 말씀드린대로 인터프리터들은 명령을 실행할때 현재권한에서 실행하기떄문에 level2권한으로 명령을 내릴 수 있고
my-pass 프로그램은 현재권한을 보고 패스워드를 알려주는 프로그램이기때문에 level2의 패스워드를 알 수 있는것입니다
2012/07/11
ka0r1
/bin/ExcuteMe를 자세히 들여다보시면
실행시 level2 권한으로 SetUID가 걸려있죠.
즉, ExcuteMe가 실행이 되면 그 프로그램이 끝날 때까지
임시적으로 level2권한을 가지게 되는 겁니다.
그 상태에서 bash를 실행하게 되면 cd80님의 말씀대로
level2 권한의 bash 프로세스가 생성되는 원리입니다.