|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1909 [복사]
ftz와 LOB를 푼 후 궁금증이 생겼습니다.
ftz의 경우 파일 자체에도 setuid가 걸려있을뿐더러 setreuid함수를 코드에 사용합니다. setuid가 파일에 걸려있을 경우 rid는 변하지 않지만 eid만 변하고 그렇기에 이 상태로 쉘을 실행하면 보안상의 이유로 eid가 rid값으로 바뀌어 권한상승의 의미가 없다고 알고 있습니다. 그렇기 때문에 setreuid함수를 통해 eid뿐만 아니라 rid또한 파일 소유자의 id로 바꾸고 이후에 쉘을 실행하면 상승된 권한으로 쉘이 실행되게 됩니다.
그런데 LOB의 경우 파일 자체에만 setuid가 걸려있고 코드 자체에는 setreuid함수가 존재하지 않습니다. 개인적으로 추측하기로는 LOB가 낮은 버전이기에 쉘 실행시 eid를 rid로 바꾸는 과정이 없고, 그렇기에 파일 자체에 setuid가 걸려있을때 쉘 실행시 상승된 권한으로 쉘을 얻게되는 것 같습니다.
혹시 이에 대해 아시는 분 있으면 알려주시면 감사하겠습니다. |
Hit : 3471 Date : 2017/12/28 11:34
|