변하는 요소가 아닌 변하지 않는 요소부터 시작하라
2025 버전 이후로 ClickFix 방식의 공격은 한두 달마다 변화해 왔습니다. 새로운 미끼, 새로운 투하 방식, 새로운 탑재물. MITRE는 이 기법을 ATT&CK에 ‘ T1204,004, User Execution: Malicious Copy and Paste’로 추가했으며( 18 March 2025), 이 기법의 핵심 특징은 피해자가 직접 실행을 수행한다는 점입니다. 공격자의 작업은 설득 단계에서 끝납니다. 가짜 CAPTCHA, 가짜 오류 대화 상자, Win+R 키를 누르고 내용을 붙여넣으라는 지시 등이 그 예입니다.
한 고객이 현재 유행하는 변이 바이러스에 대해서도 보장이 되는지 물었습니다. 변종들을 하나씩 쫓아다니는 건 무의미한 일입니다. 이번 달 버전에 들어갈 콘텐츠를 준비할 때쯤이면 이미 새로운 버전이 나오기 때문이죠. 따라서 이 플레이북은 변하지 않는 부분을 대상으로 삼았습니다. 유인 수단이 무엇이든, 거의 모든 변종은 똑같은 방식으로 끝납니다. 사용자가 Windows의 ‘실행’ 대화 상자에 명령을 입력하거나 붙여넣는 것입니다.
사용자가 입력하는 위치를 찾아내면, 변형 여부는 더 이상 중요하지 않게 됩니다.
RunMRU가 신뢰할 만한 정보원인 이유
Windows는 ‘실행’ 대화 상자에 입력된 내용을 다음 위치에 기록해 둡니다:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU각 명령어는 a, b, c 등의 이름으로 된 문자열 값으로 저장되며, MRUList 값을 통해 해당 명령어가 사용된 순서가 기록됩니다. 이는 사용자별로 적용되며, 재부팅 후에도 유지되지만, 대부분의 환경에서는 아무도 이를 모니터링하지 않습니다.
다음과 같은 세 가지 특징 덕분에 이곳은 훌륭한 사냥터가 됩니다:
- 이것은 단순히 실행 결과뿐만 아니라 의도까지 기록합니다. RunMRU에서 명령이란 사람이 의도적으로 입력하거나 붙여넣은 것을 말합니다. 이는 프로세스 생성 피드보다 훨씬 더 높은 신호 대 잡음비입니다.
- 이는 회고적인 성격을 띤다. 지금 읽고 계신 것은 역사 이야기이므로, 사냥은 여러분이 지켜보는 동안 일어난 일에만 국한되지 않습니다.
- 쿼리 비용이 저렴합니다. 레지스트리 값 하나, 질문 하나, 에이전트 측 배포 불필요, 새로운 텔레메트리 파이프라인 불필요.
피벗
대규모 자산 전반에 걸쳐 해당 값을 조회한 결과, 수만 건의 결과가 반환되었습니다. 바로 그 순간이 대부분의 검색이 정체되는 지점이며, 이때는 쿼리보다 검색 방식이 더 중요해집니다.
키워드로 범위를 좁히는 대신, 필터는 ‘ ’ 동작에 따라 범위를 좁혔습니다. 즉, 에스테이트 외부로 연결되어 무언가를 가져오는 명령어들을 대상으로 한 것입니다. 페이로드 검색은 ClickFix가 의존하는 단계이므로, 이는 초기 가설을 검증하기에 적합한 필터였습니다. 게다가 이 방법은 전혀 다른 유형의 문제도 해결해 줍니다.
한 줄이 눈에 띄었는데, 도메인이나 툴 때문은 아니었다. 두 가지 사소한 세부 사항이 결정적인 역할을 했습니다. 바로 -u 플래그와 취약점 데이터를 참조하는 출력 파일명이었습니다.
에서 curl, -u 명령어는 사용자 이름:비밀번호 형식으로 인라인 자격 증명을 사용합니다. 사용자 이름과 비밀번호는 레지스트리 안에, 몇 달 전 입력했던 그대로의 평문 형태로 그대로 남아 있었다. 그 문장을 쓴 사람은 어떤 문제를 해결하고 있었던 것입니다. 바로 조사 결과를 내보내기하여 로컬에 저장한 뒤, 이를 여는 문제 말이죠. 아무도 윈도우가 정보를 기억한다는 사실을 생각하지 못했습니다.
15분, 그리고 그것이 가능하게 한 요인은 무엇이었을까
노트북의 기본 구조는 이미 존재했는데, 바로 이 부분이 복사할 가치가 있는 부분입니다. 살펴보기로 마음먹은 지 5분 후에 데이터를 읽을 수 있게 되었다. 15분 이내에 평문 비밀번호가 노출되었고, 팀에는 즉시 자격 증명과 엔드포인트를 모두 확인하라는 메시지가 전달되었습니다. 1시간도 채 되지 않아 티켓이 등록되었고, 비밀번호가 변경되었습니다.
그 속도는 이미 작성된 쿼리에서 비롯된 것이지, 발견 자체가 놀라웠기 때문은 아니었다.
왜 자격증보다 목적지가 더 중요했는가
해당 인증 정보로는 고객 본인의 환경에 접속할 수 없었습니다. 이 시스템은 전체 인프라 전반에 걸쳐 패치가 적용되지 않은 모든 취약점 목록을 관리하는 제3자 취약점 관리 포털에 로그인했습니다.
스캔하거나 추측할 필요도 없고, 침입 경로를 찾는 과정에서 흔적을 남길 필요도 없는 공격자. 그들은 그 목록을 읽을 수 있습니다. 게다가 해당 계정이 제3자 플랫폼에 호스팅되어 있었기 때문에, 누가 계정 비밀번호를 갱신할 책임이 있는지에 대한 명확한 답이 없으며, 바로 이러한 상황 때문에 계정 비밀번호가 수개월 동안 갱신되지 않은 채 방치되는 것입니다.
버라이즌의 2026 번 대 번호들에서 위험이 바로 그 방향으로 진행되고 있습니다. 보안 침해 사건에서 제3자의 관여는 전년 대비 60% 증가했으며, 현재 침해 사건의 절반 가량에서 제3자가 연루된 것으로 나타났습니다. 또한 제3자 기관의 경우, 전체 발견 사항의 절반에 해당하는 취약한 비밀번호 및 권한 설정 오류 문제를 해결하는 데 거의 8개월이 소요되는 것으로 나타났습니다.
무엇이 잘되지 않았는가
키워드는 당연히 가장 먼저 살펴봐야 할 부분이었지만, 결국 막다른 길로 이어졌다. 실행 기록에서 https, PowerShell 또는 cmd를 검색하면 결과가 전혀 나오지 않거나, 너무 많이 나옵니다. 이 세 가지 모두 공격자가 난독화하기에는 식은 죽 먹기이며, 정당한 용도로도 끊임없이 사용되고 있다. 이를 발견한 HuntIQ의 헌터는 “이런 단순한 지표들은 위장하기 쉬우며, 실질적인 가치를 제공하는 경우는 거의 없다”고 말했다.
이 구별은 이번 사냥을 넘어 더 광범위한 맥락에서 적용될 수 있으므로, 정확히 짚어둘 필요가 있다. 키워드 필터는 에에 어떤 문자열이 포함되어 있는지 조회합니다. 행동 기반 필터는 “이 명령어가 무엇을 하려는 것인가”라고 묻습니다. 첫 번째 방법은 피하기 쉽고 소음이 심합니다. 두 번째는 한 줄씩 읽을 수 있을 만큼 짧습니다.
직접 실행해 보세요
- 모든 엔드포인트에서 실행 대화 상자 기록을 가져옵니다. Tanium에서는 이 문제가 하나의 질문으로 정리됩니다:
모든 엔티티에서 “데이터가 포함된 레지스트리 키 값 이름” [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU]을 가져옵니다. - 키워드가 아닌 외부 검색을 위한 필터입니다. 외부에서 무언가를 가져오는 명령어: HTTP 클라이언트, 파일 전송 유틸리티, 원격 리소스를 불러오는 스크립트 인터프리터 등. 그 글자는 읽기에 충분히 작습니다.
- 인증 플래그를 확인하려면 생존자 목록을 읽어보세요. 실제로 이는 curl에서는 -u 및 --user, 다양한 클라이언트에서는 -p 및 --password, Windows 유틸리티에서는 /user:, 그리고 authority 섹션에 user:pass@host 형식으로 자격 증명을 포함하는 모든 URL을 의미합니다.
- 타사 목적지를 우선순위로 삼으십시오. 타사의 플랫폼에 대한 인증 정보는 조직 내 누구도 그 갱신을 담당하지 않는 정보입니다.
- Tanium Atlas를 사용 중인 경우 다음 명령을 실행하십시오: /hunt 모든 엔드포인트의 Windows ‘실행’ 대화 상자 기록(RunMRU 레지스트리 키)을 확인하여, 인터넷에서 데이터를 가져오고 인라인 비밀번호를 포함하는 명령(예: curl -u user:pass)이 입력되었는지 확인하십시오. 호스트, 사용자, 대상 위치를 보고하고, 비밀번호는 가려야 합니다.
전제 조건 및 제한 사항
- 엔드포인트는 온라인 상태여야 합니다. 이 기능은 레지스트리를 실시간으로 읽어들이며, 과거 기록을 저장해 둔 것이 아닙니다.
- 는 현재 로그인된 사용자만 가져올 수 있습니다.. RunMRU는 HKCU에 있으므로, 공유 엔드포인트에 한 번 요청하면 한 사람의 기록이 반환됩니다.
- 공동 사냥터나 교대 근무가 이루어지는 사냥터에서는 하루 중 다른 시간대에 사냥을 다시 진행하십시오. 사용자가 로그인할 때마다 새로운 사용자가 추가되지만, 한 번의 스윕만으로는 그들 대부분을 놓치게 됩니다.
- 이는 실행의 증거가 아니라 입력의 증거입니다. RunMRU에서 명령이 입력되었으나, 실행이 성공적으로 이루어졌는지는 별개의 문제입니다.
- 부재라고 해서 아무것도 증명되는 것은 아니다. 이 키는 지울 수 있으며, 많은 사용자들이 ‘실행’ 상자를 아예 사용하지 않습니다.
ATT&CK 매핑
| 기법 | 이번 사냥에서의 역할 |
|---|---|
T1204,004 악의적인 복사 및 붙여넣기 | 이 플레이북이 찾아내기 위해 고안된 기술. ATT&CK에 추가됨 18 March 2025. |
레지스트리에 있는 T1552,002개의 자격 증명 | 발견된 내용. RunMRU는 평문 형태의 인증 정보를 포함하고 있는 레지스트리 위치입니다. |
T1105 잉그레스 도구 이전 | 필터가 적용되는 동작. 외부 리소스에서 데이터를 가져오는 단계는 별도로 분리해 두어야 할 단계입니다. |
T1059,001 / .003 명령어 및 스크립트 인터프리터 | 사용자가 Enter 키를 누르면 붙여넣은 명령이 어떻게 실행되는지. |
고객이 변경한 사항
유용성 순서대로 세 가지를 꼽자면 다음과 같습니다.
- 그들은 비밀번호를 변경했습니다.
- 그들은 그동안 그렇게 해오던 사용자들을 교육시켰다.
- 그러자 그들은 그것이 존재했던 이유를 없애버렸다.
‘실행’ 상자에 비밀번호를 입력해야 했던 수동 요청은, 동일한 취약점 데이터를 수집하는 적절한 인증 절차를 거친 API 호출로 대체되었습니다. 처음 두 가지는 사고를 해결합니다. 세 번째는 클래스를 수정합니다.
핵심 요점
특정 가설을 바탕으로 작성된 콘텐츠는 늘 그 가설의 범위를 벗어난 무언가를 발견하게 마련이며, 이는 결코 우연이 아니다. 특정 기법을 대상으로 한 탐색은, 그 기법의 기반이 되는 요소를 공유하는 다른 모든 것들도 함께 드러나게 마련이다. 사용자가 활동하는 곳에서 탐색하고, 문자열이 아닌 행동을 기준으로 필터링한 다음, 반환된 결과를 분석하세요.
이번 주 여러분의 조직에 던져볼 만한 질문은, 여러분의 자격이 충분한지 여부가 아닙니다. 바로 그곳이 현재 그 내용이 일반 텍스트로 기록되어 있는 곳입니다.
다음 기회를 한 발 앞서 준비하세요
- Tanium Security Operations와 HuntIQ가 키워드 기반 탐색으로는 놓치는 부분을 어떻게 포착하는지 알아보세요.
- Tanium Atlas가 어떻게 사냥 가설을 전 함대 차원의 대대적인 수색 작전으로 신속하게 전환하는지 확인해 보세요.
외부 수치의 출처
Help Net Security를 통해 공개된 ‘Verizon 2026 데이터 유출 조사 보고서’, 20 May 2026. helpnetsecurity.com/2026/05/20/verizon-2026-dbir-findings/ (새 탭에서 열림)
MITRE ATT&CK, T1204,004 사용자 실행: 악성 복사 및 붙여넣기. attack.mitre.org/techniques/T1204/004/ (새 탭에서 열림) 18 March 2025를 추가했습니다.

