System/FTZ

[FTZ school] level 5

BadSchool 2017. 5. 20. 00:33

▲ /usr/bin/level5 프로그램이 /tmp에 level5.tmp라는 임시파일을 생성한다고 한다.

실행해 보니 만들어 지는 듯 하나 바로 없어진다.

감이 안잡혀서 검색해 보니 레이스 컨디션 공격이라고 한다.

레이스 컨디션이란 한정된 자원을 동시에 이용하려는 여러 프로세스가 자원의 이용을 위해 경쟁을 벌이는 현상이라고 한다.

이 점을 이용하여 임시 파일의 심볼릭 링크를 생성하고 삭제된 임시파일의 값을 알아내거나 변조시키는 공격이다.



▲a.c 와 b.c에 각각 위와같이 코딩하고 컴파일 하였다.

a.c는 for문으로 임시파일을 지속적으로 생성해 준다.

b.c는 for문으로 /level5.tmp가 없어지기 전에 level5.attack라는 심볼릭 링크를 지속적으로 생성해 준다.

즉 a와 b를 동시에 실행하면 패스워드를 알아낼 수 있다.

스레드를 이용하여 위 코드들을 합칠수 있을 듯 하지만 아직 실력이 부족하여 못하였다.



▲ ./a & \ ./b 라고 실행하면 마지막에 패스워드가 나타난다.

&명령은 ./a 프로그램을 백그라운드로 실행하라는 의미를 가진다.