[하루한줄] macOS Finder RCE

URL

macOS finder RCE

Target

macOS Big Sur 이하 버전

Explain

확장자가 inetloc인 파일은 macOS Finder를 통해 임의의 커멘드를 실행할 수 있습니다. 만약 inetloc 파일이 첨부된 이메일을 클릭한다면 프롬프트 또는 어떠한 경고도 없이 해당 파일 속에 담긴 커멘드가 실행됩니다.

본래 inetloc 확장자는 인터넷 주소에 대한 바로가기입니다. RSS feed, telnet 주소, ssh 연결을 위한 서버 주소와 계정 정보 등의 정보를 담을 수 있습니다. inetloc 파일에서 file:// 프로토콜을 사용한다면 File Quarantine, Gatekeeper에 걸리지 않고 로컬 시스템에 존재하는 임의의 애플리케이션과 파일을 실행할 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>URL</key>
    <string>FiLe:////////////////////////System/Applications/Calculator.app</string>
  </dict>
</plist>

Apple은 inetloc 파일에서 file://을 쓰지 못하게 패치를 시도했지만 FiLe://, fIlE:// 등 대소문자를 섞는 것으로 우회가 가능합니다. 또한 fileloc 확장자에도 동일한 취약점이 있어 악용이 가능합니다.