티스토리 뷰

포너블/포너블 공부

심볼릭 링크 해킹

삼전동해커 2018. 6. 27. 21:24

심볼릭링크 

파일을 가리키고 있는 파일을 생성하는 것
바로가기와 비슷함 

하드링크 

한개의 파일을 가리키는 이름을 하나더 만드는 것 
원본을 수정하면 복사본의 내용도 수정됨 
둘중 하나를 지워도 삭제안됨 
$ln 원본파일 하드링크파일 

심볼릭링크를 이용한 해킹 

일반사용자가 root몰래 /etc/passwd파일의 심볼릭링크를 만들어 놓았다고 하자 
그런데 root가 심볼릭링크 파일의 내용을 수정한다고 하면 root는 /etc/passwd에 수정을 하는것이고  
shadow파일은 수정이 된다. 

root권한의 setuid가 걸린 good이라는 프로그램이 있다고 하자. 
이 프로그램은 실행한 후에 /tmp 디렉토리안에 bye라는 임시파일을 만든다. 

good을 실행하면 /tmp/bye라는 임시파일이 생긴다. 
일반사용자가 /tmp/bye를 삭제하고 /etc/passwd의 심볼릭링크를 만들고 이름을 /tmp/bye라고 만들었다. 
그러고 setuid권한이 걸려있는 good을 실행시키면bye라는 임시파일을 만드는데 
이미 존재하는 bye는 /etc/passwd의 심볼릭링크이다. 
/etc/passwd는 root만 쓰기가 가능한데 good을 실행중에는 root의 권한이므로 
/etc/passwd에 쓰기가 가능해지고 
일반사용자가 만들어놓은 심볼릭링크인 /tmp/bye에 덮어쓰게 되는 것이다.
그럼 /tmp/bye의 내용이 /etc/passwd에 들어갈 것이고 /etc/passwd파일은 손상이 된다.


'포너블 > 포너블 공부' 카테고리의 다른 글

PLT(Procedure Linkage Table),GOT(Global Offset Table)  (0) 2020.09.15
execve() 함수  (0) 2020.09.08
Return To Libc 기법  (0) 2018.07.31
레이스 컨디션 해킹  (0) 2018.06.27
스택(달고나 정리편)-1  (0) 2018.06.27
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함