Xlera8

'MagicDot' Windows 취약점으로 인해 권한 없는 루트킷 활동 허용

Windows의 DOS에서 NT로의 경로 변환 프로세스와 관련된 알려진 문제는 공격자가 파일, 디렉터리 및 프로세스를 숨기고 가장할 수 있는 루트킷과 같은 악용 후 기능을 얻을 수 있도록 허용함으로써 기업에 심각한 위험을 초래합니다.

이번 주 싱가포르에서 열린 Black Hat Asia 2024 세션에서 이 문제를 설명한 SafeBreach의 보안 연구원 Or Yair에 따르면 그렇습니다. 그는 또한 이 문제와 관련된 네 가지 취약점에 대해 자세히 설명했습니다. 매직닷(MagicDot)이라 불린다.“–아카이브를 추출하기만 하면 발생할 수 있는 위험한 원격 코드 실행 버그가 포함되어 있습니다.

DOS에서 NT로의 경로 변환 시 점과 공백

MagicDot 문제 그룹은 Windows가 DOS 경로를 BT 경로로 변경하는 방식으로 인해 존재합니다.

사용자가 PC에서 파일이나 폴더를 열 때 Windows는 파일이 존재하는 경로를 참조하여 이를 수행합니다. 일반적으로 이는 "C:UsersUserDocumentsexample.txt" 형식을 따르는 DOS 경로입니다. 그러나 NtCreateFile이라는 다른 기본 함수는 실제로 파일을 여는 작업을 수행하는 데 사용됩니다. NtCreateFile은 DOS 경로가 아닌 NT 경로를 요청합니다. 따라서 Windows는 작업을 활성화하기 위해 NtCreateFile을 호출하기 전에 사용자에게 표시되는 친숙한 DOS 경로를 NT 경로로 변환합니다.

악용 가능한 문제는 변환 프로세스 중에 Windows가 DOS 경로에서 끝 부분의 추가 공백과 함께 마침표를 자동으로 제거하기 때문에 발생합니다. 따라서 DOS 경로는 다음과 같습니다.

  • C:예제예제.   

  • C:예예… 

  • C:예예    

...모두 NT 경로로 "??C:exampleexample"로 변환됩니다.

Yair는 잘못된 문자를 자동으로 제거함으로써 공격자가 자신이 선택한 NT 경로로 변환될 특수하게 조작된 DOS 경로를 생성할 수 있다는 사실을 발견했습니다. 이 경로는 파일을 사용할 수 없게 만들거나 악성 콘텐츠 및 활동을 숨기는 데 사용될 수 있습니다.

권한이 없는 루트킷 시뮬레이션

MagicDot 문제는 ​​무엇보다도 시스템의 공격자가 스텔스를 유지하는 데 도움이 되는 다양한 공격 후 기술에 대한 기회를 만듭니다.

예를 들어 악성 콘텐츠를 잠그고 사용자, 심지어 관리자도 이를 검사하지 못하도록 할 수 있습니다. “악성 파일 이름 끝에 간단한 점을 추가하거나 점 및/또는 공백만 사용하여 파일이나 디렉터리의 이름을 지정함으로써 일반 API를 사용하는 모든 사용자 공간 프로그램에 액세스할 수 없게 만들 수 있습니다. 사용자는 Yair는 세션에서 읽기, 쓰기, 삭제 또는 기타 작업을 수행할 수 없다고 설명했습니다.

그런 다음 관련 공격에서 Yair는 이 기술을 사용하여 아카이브 파일 내의 파일이나 디렉터리를 숨길 수 있음을 발견했습니다.

Yair는 “Explorer가 파일을 나열하거나 추출하는 것을 방지하기 위해 아카이브의 파일 이름을 점으로 끝냈습니다.”라고 말했습니다. "결과적으로 저는 무고한 ZIP 안에 악성 파일을 넣을 수 있었습니다. Explorer를 사용하여 아카이브 내용을 보고 추출한 사람은 그 파일이 안에 존재하는지 볼 수 없었습니다."

세 번째 공격 방법은 합법적인 파일 경로를 가장하여 악성 콘텐츠를 마스킹하는 것입니다.

연구원은 "'benign'이라는 무해한 파일이 있으면 [DOS에서 NT로의 경로 변환을 사용하여] 동일한 디렉터리(또한 benign이라고도 함)에 악성 파일을 생성할 수 있었습니다."라고 연구원은 설명했습니다. 폴더와 더 광범위한 Windows 프로세스를 가장하는 데 이 접근 방식을 사용할 수 있습니다. "결과적으로 사용자가 악성 파일을 읽을 때 원래의 무해한 파일 내용이 대신 반환됩니다." 피해자는 실제로 악성 콘텐츠를 열고 있다는 사실을 전혀 깨닫지 못했습니다.

MagicDot 경로를 조작하면 관리자 권한 없이 공격자에게 루트킷과 같은 능력을 부여할 수 있다고 Yair는 설명했습니다. 자세한 기술 노트 세션과 연계하여 공격 방법에 대해 설명합니다.

“파일과 프로세스를 숨기고, 아카이브에서 파일을 숨기고, 파일 프리패치에 영향을 미치고, 작업 관리자와 프로세스 탐색기 사용자가 악성 코드 파일이 Microsoft에서 게시한 확인된 실행 파일이라고 생각하게 만들고, 서비스 거부(DoS)로 프로세스 탐색기를 비활성화할 수 있다는 것을 알았습니다. 취약점 등이 있습니다”라고 그는 말했습니다. 관리자 권한이나 커널에서 코드를 실행하는 기능이 없고 정보를 검색하는 API 호출 체인에 개입하지 않고도 모든 작업을 수행할 수 있습니다.

“사이버 보안 커뮤니티가 이러한 위험을 인식하고 권한이 없는 루트킷 탐지 기술 및 규칙 개발을 고려하는 것이 중요합니다.”라고 그는 경고했습니다.

일련의 'MagicDot' 취약점

MagicDot 경로를 조사하는 동안 Yair는 근본적인 문제와 관련된 4가지 다른 취약점도 발견했습니다. 그 중 3개는 Microsoft에서 패치한 이후였습니다.

원격 코드 실행(RCE) 취약점 1개(CVE-2023-36396, CVSS 7.8) 새로 지원되는 모든 아카이브 유형에 대한 Windows의 새로운 추출 논리를 통해 공격자는 추출된 후 원격 컴퓨터에서 선택한 어느 곳에나 쓸 수 있는 악성 아카이브를 제작하여 코드를 실행할 수 있습니다.

"
기본적으로 귀하가 GitHub 저장소 다운로드할 수 있는 멋진 도구로 광고하고 있습니다.”라고 Yair는 Dark Reading에 말합니다. “그리고 사용자가 다운로드하면 실행 파일이 아니라 아카이브를 추출하기만 하면 됩니다. 이는 보안 위험 없이 완전히 안전한 작업으로 간주됩니다. 하지만 이제 추출 자체가 컴퓨터에서 코드를 실행할 수 있게 되었는데, 이는 심각하게 잘못된 것이며 매우 위험합니다.”

두 번째 버그는 EoP(권한 상승) 취약점입니다(CVE-2023-32054, CVSS 7.3) 섀도 복사본에서 이전 버전의 복원 프로세스를 조작하여 공격자가 권한 없이 파일에 쓸 수 있도록 허용합니다.

세 번째 버그는 분석 방지를 위한 Process Explorer 권한이 없는 DOS 버그로 CVE-2023-42757이 예약되어 있으며 자세한 내용은 다음과 같습니다. 그리고 EoP 문제이기도 한 네 번째 버그는 권한이 없는 공격자가 파일을 삭제할 수 있도록 허용합니다. Microsoft는 이 결함으로 인해 "예기치 못한 동작"이 발생했음을 확인했지만 아직 CVE나 이에 대한 수정 사항을 발표하지 않았습니다.

“데모 폴더 안에 …라는 폴더를 만듭니다. 그 안에 c.txt라는 파일을 작성합니다.”라고 Yair는 설명했습니다. “그러다가 관리자가 삭제를 시도하면… 폴더 대신 전체 데모 폴더가 삭제됩니다.”

잠재적으로 더 넓은 'MagicDot' 파급효과

Microsoft는 Yair의 특정 취약점을 해결했지만 마침표와 공백의 DOS-to-NT 경로 변환 자동 제거 기능이 취약점의 근본 원인임에도 불구하고 지속됩니다.

연구원은 “이는 이 문제를 사용하여 찾을 수 있는 잠재적인 취약점과 악용 후 기술이 더 많이 있을 수 있다는 것을 의미합니다.”라고 경고합니다. "이 문제는 여전히 존재하며 더 많은 문제와 취약점으로 이어질 수 있으며, 이는 우리가 알고 있는 것보다 훨씬 더 위험할 수 있습니다."

그는 이 문제가 Microsoft 외부에도 영향을 미칠 수 있다고 덧붙였습니다.

"우리는 이러한 의미가 세계에서 가장 널리 사용되는 데스크톱 OS인 Microsoft Windows뿐만 아니라 모든 소프트웨어 공급업체와 관련이 있다고 생각합니다. 이들 대부분은 알려진 문제가 소프트웨어 버전마다 지속되도록 허용합니다."라고 그는 경고했습니다. .

한편, 소프트웨어 개발자는 DOS 경로가 아닌 NT 경로를 활용하여 이러한 유형의 취약점으로부터 코드를 더 안전하게 만들 수 있다고 그는 지적했습니다.

Yair는 "Windows의 대부분의 고급 API 호출은 NT 경로를 지원합니다."라고 말했습니다. "NT 경로를 사용하면 변환 프로세스를 피하고 제공된 경로가 실제로 작동 중인 경로와 동일한지 확인할 수 있습니다."

기업의 경우 보안 팀은 파일 경로 내에서 잘못된 마침표와 공백을 찾는 탐지 기능을 생성해야 합니다.

“후행 점이나 공백이 있는 파일이나 디렉터리를 찾기 위해 개발할 수 있는 매우 쉬운 탐지 기능이 있습니다. 왜냐하면 컴퓨터에서 이러한 것을 발견하면 누군가 고의로 그런 일을 했다는 의미이기 때문입니다. 그렇게 하기 쉽습니다.”라고 Yair는 설명합니다. “일반 사용자는 점이나 공백으로 끝나는 파일을 만들 수 없습니다. Microsoft는 이를 방지할 것입니다. 공격자는 다음을 사용해야 합니다. 하위 API 이는 커널에 더 가깝고 이를 달성하려면 약간의 전문 지식이 필요합니다.”

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?