서론
인포스틸러 감염은 고도화된 취약점 악용에서만 시작되지 않는다. Kaspersky Digital Footprint Intelligence가 2025년에 다크웹 인포스틸러 로그 500만 건을 분석한 결과, 감염 파일의 원래 실행 위치 중 약 35%가 C:\Users\<User>\AppData\Local\Temp\ 경로였다. 사용자가 임시 폴더나 다운로드 직후 생성된 파일을 그대로 실행하는 행위가 자격증명 탈취의 출발점이 될 수 있다는 뜻이다.
이 수치는 보안 운영 관점에서 중요하다. 임시 폴더 실행은 단순한 사용자 부주의로만 볼 문제가 아니라, 공격자가 반복적으로 활용하는 초기 침투 경로다. 크랙, 키젠, 게임 모드, 치트, 가짜 설치 파일, 악성 광고, 피싱 링크, 가짜 CAPTCHA와 ClickFix 화면은 모두 사용자가 직접 실행 버튼을 누르게 만드는 방식으로 작동한다.
또 하나의 축은 정상 Windows 도구 남용이다. 같은 분석에서 C:\Windows\Microsoft.NET\Framework\ 경로는 약 32%로 나타났고, Kaspersky는 이를 프로세스 인젝션과 Living-off-the-Land 기법, 특히 Lumma 같은 인포스틸러 계열에서 관찰되는 패턴으로 설명했다. 따라서 대응은 Temp 폴더에 있는 수상한 파일 삭제에서 끝나면 안 된다. 최초 실행 파일, 스크립트, LoLBin, 지속성, 브라우저 자격증명 접근, 외부 유출 흔적을 하나의 타임라인으로 묶어 확인해야 한다.
본론
왜 임시 폴더 실행이 위험한가
%TEMP%, %LOCALAPPDATA%\Temp%, %APPDATA%, Downloads, 압축 해제 임시 경로는 사용자가 내려받은 파일과 애플리케이션이 일시적으로 만든 파일이 뒤섞이는 공간이다. 보안팀 입장에서는 정상 설치 파일, 업데이트 파일, 압축 해제 파일, 악성 페이로드가 한곳에 섞여 보이기 때문에 우선순위를 놓치기 쉽다.
공격자는 이 특성을 이용한다. 사용자가 “설치 프로그램”, “라이선스 로더”, “업데이터”, “게임 모드”처럼 보이는 파일을 실행하면 인포스틸러는 브라우저 저장 비밀번호, 쿠키, 세션, 암호화폐 지갑, FTP/SSH 키, 메신저 토큰, 시스템 메타데이터를 수집한다. 파일이 실행된 뒤에는 PowerShell, mshta.exe, rundll32.exe, wscript.exe, cscript.exe, msbuild.exe, regasm.exe 같은 정상 도구가 2차 스크립트나 페이로드 실행에 사용될 수 있다.
파일명도 혼동을 유도한다. 공개 분석에서 언급된 패턴에는 Lumma의 일반 설치 파일명과 .NET 난독화 흐름, Vidar의 Bootstrapper.exe 변형, Stealc의 Licence_Version_Loader.exe 또는 무작위 파일명, RisePro의 MPGPH.exe, MSIUpdater.exe 같은 이름이 포함된다. 이름만 정상적으로 보인다고 신뢰해서는 안 되며, 생성 위치와 부모 프로세스, 명령행, 네트워크 연결을 함께 봐야 한다.
ClickFix와 가짜 CAPTCHA 흐름
최근 인포스틸러 유포에서 특히 주의할 방식은 ClickFix다. Microsoft는 ClickFix를 사용자가 CAPTCHA나 문제 해결 안내처럼 보이는 화면을 따라 Windows Run, Terminal, PowerShell에 악성 명령을 붙여 넣고 실행하도록 속이는 사회공학 기법으로 설명한다. SentinelOne도 가짜 CAPTCHA 클릭 시 클립보드에 명령을 쓰고, 사용자가 Win+R 실행창에 붙여 넣도록 유도하는 흐름을 분석했다.
이 방식은 보안 교육의 사각지대를 찌른다. 사용자는 파일을 직접 내려받았다고 느끼지 않을 수 있고, “확인 절차”나 “오류 해결”을 수행한다고 생각한다. 하지만 실제로는 PowerShell 또는 mshta.exe 다운로드 명령이 실행되고, VBS나 2차 스크립트가 %TEMP%에 기록된 뒤 예약 작업으로 실행될 수 있다. Microsoft는 ClickFix 최종 페이로드로 Lumma Stealer, RAT, 로더, 루트킷을 관찰했으며, 실행 후에는 파일리스 방식이나 LoLBin 프로세스 주입으로 이어질 수 있다고 설명했다.
정상 CAPTCHA나 웹사이트는 Windows Run, PowerShell, Terminal에 명령을 붙여 넣으라고 요구하지 않는다. 사용자가 이런 화면을 봤다고 신고하면, 명령 실행 여부와 관계없이 브라우저 방문 기록, 클립보드 관련 흔적, RunMRU, PowerShell History, EDR 프로세스 타임라인을 함께 수집해야 한다.
운영자가 먼저 확인할 실행 경로
감염 의심 단말에서는 다음 경로를 우선 확인한다.
| 우선순위 | 점검 위치 | 확인할 항목 |
|---|---|---|
| 1 | %TEMP%, %LOCALAPPDATA%\Temp% |
생성 직후 실행된 .exe, .dll, .cmd, .bat, .vbs, .js, .hta, .ps1, 압축 파일 |
| 2 | %APPDATA%, Downloads |
사용자가 내려받거나 압축 해제한 설치 파일, 위장 파일명, 이중 확장자 |
| 3 | Startup 폴더 | 사용자 프로필 하위 실행 파일 또는 스크립트 등록 여부 |
| 4 | HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
Temp/AppData 경로를 가리키는 자동 실행 값 |
| 5 | C:\Windows\Microsoft.NET\Framework\ |
msbuild.exe, regasm.exe 등 .NET 관련 도구의 비정상 자식 프로세스와 네트워크 연결 |
파일 시스템만 보면 부족하다. explorer.exe, 브라우저, 메신저, 압축 프로그램, Office, PDF 리더가 powershell.exe, cmd.exe, mshta.exe, rundll32.exe, wscript.exe, cscript.exe를 자식 프로세스로 생성했는지 확인해야 한다. PowerShell 명령행에 -enc, -e, IEX, Invoke-WebRequest, iwr, irm, DownloadString, FromBase64String, -WindowStyle Hidden, -w hidden이 포함되면 우선순위를 높인다.
탐지 타임라인 구성 방법
인포스틸러 조사는 “파일이 있었다”가 아니라 “어떤 순서로 실행되고 무엇을 훔쳤는가”를 밝히는 작업이다. 다음 순서로 타임라인을 구성한다.
- 사용자 유입 지점: 피싱 링크, 악성 광고, GitHub 또는 소셜미디어 링크, 크랙/키젠 다운로드, 가짜 CAPTCHA 접속을 확인한다.
- 최초 실행: Temp, Downloads, 압축 해제 폴더에서 생성 직후 실행된 파일과 부모 프로세스를 확인한다.
- 스크립트 전환: PowerShell, VBS, JS, HTA,
mshta.exe,rundll32.exe,certutil.exe실행 명령을 확인한다. - 지속성: Run 키, Startup 폴더, 예약 작업, 사용자 프로필 하위 복사본을 확인한다.
- 자격증명 접근: 브라우저 쿠키와 저장 비밀번호, 암호화폐 지갑, FTP/SSH 키, 메신저 토큰 접근 흔적을 확인한다.
- 외부 유출: 압축 파일 생성, 짧은 시간 내 다수 도메인 접속, Telegram/Discord/클라우드 스토리지/API 엔드포인트 통신을 확인한다.
이 과정에서 IOC 매칭만으로 결론을 내리면 안 된다. Lumma, Stealc, Vidar, RisePro 같은 계열은 파일명과 유포 인프라를 빠르게 바꾼다. 반대로 사용자 프로필 하위 실행, 난독화된 PowerShell, LoLBin 자식 프로세스, 브라우저 자격증명 접근 직후 외부 통신은 변종이 바뀌어도 반복되는 행동이다.
대응 방안
즉시 조치 체크리스트
감염 의심 단말은 먼저 네트워크에서 격리한다. 그 다음 EDR 타임라인, 메모리와 디스크 증거, 실행 파일, 스크립트, 명령행, 레지스트리, 예약 작업을 확보한다. 파일 삭제나 재부팅을 먼저 수행하면 최초 실행 경로와 유출 흔적이 사라질 수 있다.
- 단말 격리 후 EDR 타임라인과 원본 파일을 보존한다.
- Temp/AppData/Downloads에서 최초 실행 파일과 2차 페이로드를 식별한다.
- Run 키, Startup 폴더, 예약 작업, 사용자 프로필 하위 복사본을 제거한다.
- 브라우저 저장 비밀번호와 쿠키 접근 흔적을 확인한다.
- 계정 세션, 쿠키, 토큰을 폐기하고 OAuth 앱 권한을 회수한다.
- 주요 계정 비밀번호를 재설정하고 MFA를 재등록한다.
- 같은 파일명, 해시, 경로, 명령행, 부모-자식 프로세스 패턴을 전사 단말에서 헌팅한다.
비밀번호 변경만으로 대응을 끝내면 위험하다. 인포스틸러는 이미 세션 쿠키와 토큰을 가져갔을 수 있다. 특히 SaaS, 메일, 클라우드, 개발자 계정은 세션 무효화, OAuth 앱 권한 회수, 로그인 이력 점검, MFA 재등록까지 포함해야 한다.
예방 정책 체크리스트
예방의 핵심은 사용자 프로필 하위 경로에서 실행을 줄이고, 스크립트와 LoLBin 남용을 탐지 가능한 상태로 만드는 것이다.
| 영역 | 권고 조치 |
|---|---|
| 실행 제어 | WDAC/App Control 또는 AppLocker로 %TEMP%, %APPDATA%, %LOCALAPPDATA% 하위 실행 파일, 스크립트, DLL 실행을 제한한다. 처음에는 감사 모드로 영향도를 확인한 뒤 차단으로 전환한다. |
| Microsoft Defender ASR | 이메일·웹메일 실행 콘텐츠 차단, 평판·연령·신뢰 기준 미달 실행 파일 차단, 난독화 스크립트 차단, JavaScript/VBScript의 다운로드 실행 차단, Office의 실행 콘텐츠 생성 차단 규칙을 검토한다. |
| PowerShell 보호 | PowerShell 5 이상, 스크립트 블록 로깅, 모듈 로깅, Constrained Language Mode, AMSI 연동, 원격 다운로드 명령 모니터링을 적용한다. |
| 브라우저·메일 보호 | 다운로드 평판 검사, Mark-of-the-Web 유지, 압축 파일 내부 실행 경고, 첨부와 웹메일 실행 콘텐츠 차단을 점검한다. |
| 웹 필터링 | 크랙, 키젠, 불법 활성화 도구, 게임 치트, 불법 스트리밍, 성인·불법 콘텐츠, 새로 등록된 의심 도메인 접근을 제한한다. |
| 사용자 교육 | 정상 CAPTCHA나 웹사이트는 Win+R, PowerShell, Terminal에 명령을 붙여 넣으라고 요구하지 않는다는 기준을 반복 공지한다. |
운영 환경에서는 모든 사용자에게 같은 정책을 한 번에 강제하기 어렵다. 먼저 고위험 그룹을 나눈다. 개발자, 관리자, 재무, 인사, 임원, 고객 데이터 접근 권한이 있는 사용자는 인포스틸러 감염 시 피해가 크므로 실행 제어와 ASR 차단을 우선 적용한다. 일반 사용자 그룹은 감사 모드와 탐지 룰로 오탐을 줄인 뒤 단계적으로 차단한다.
결론
인포스틸러 대응의 출발점은 “어떤 악성코드 이름인가”보다 “어디서 어떻게 처음 실행됐는가”다. Kaspersky가 제시한 Temp 경로 35% 수치는 임시 폴더 실행이 보안 로그의 잡음이 아니라 실제 침해의 주요 입구임을 보여준다. ClickFix와 가짜 CAPTCHA는 여기에 사회공학을 더해 사용자가 직접 명령을 실행하게 만들고, 이후 PowerShell과 LoLBin이 2차 페이로드와 지속성 확보에 사용된다.
보안팀은 Temp/AppData 실행 파일, 부모-자식 프로세스, 난독화된 PowerShell, Run 키와 예약 작업, 브라우저 자격증명 접근, 외부 유출을 하나의 흐름으로 추적해야 한다. 감염 후 조치는 파일 삭제에서 끝나지 않는다. 세션과 토큰 폐기, OAuth 권한 회수, MFA 재등록, 전사 헌팅까지 이어져야 한다.
조직 차원의 예방은 명확하다. 임시 폴더와 사용자 프로필 하위 실행을 제한하고, ASR/WDAC/AppLocker를 단계적으로 적용하며, PowerShell 로깅과 스크립트 차단을 운영 가능한 수준으로 끌어올려야 한다. 동시에 사용자가 “웹사이트가 Run 창이나 PowerShell 명령 실행을 요구하면 악성으로 본다”는 기준을 이해하도록 반복 교육해야 한다. 인포스틸러는 빠르게 변하지만, 초기 실행 경로와 자격증명 탈취 후속 행동은 반복된다. 그 반복되는 지점을 통제하는 것이 가장 현실적인 방어선이다.
참고자료
- Kaspersky, 35% of infostealer infections begin with users running files directly from temporary folders
https://www.kaspersky.com/about/press-releases/kaspersky-35-of-infostealer-infections-begin-with-users-running-files-directly-from-temporary-folders - Kaspersky Securelist, Lumma Stealer - Tracking distribution channels
https://securelist.com/lumma-fake-captcha-attacks-analysis/116274/ - Microsoft Security Blog, Think before you Click(Fix): Analyzing the ClickFix social engineering technique
https://www.microsoft.com/en-us/security/blog/2025/08/21/think-before-you-clickfix-analyzing-the-clickfix-social-engineering-technique/ - SentinelOne, Caught in the CAPTCHA: How ClickFix is Weaponizing Verification Fatigue to Deliver RATs & Infostealers
https://www.sentinelone.com/blog/how-clickfix-is-weaponizing-verification-fatigue-to-deliver-rats-infostealers/ - Trend Micro, Back to Business: Lumma Stealer Returns with Stealthier Methods
https://www.trendmicro.com/en_us/research/25/g/lumma-stealer-returns.html - MITRE ATT&CK T1204 User Execution
https://attack.mitre.org/techniques/T1204/ - MITRE ATT&CK T1059.001 Command and Scripting Interpreter: PowerShell
https://attack.mitre.org/techniques/T1059/001/ - Microsoft Learn, Attack surface reduction rules reference
https://learn.microsoft.com/en-us/defender-endpoint/attack-surface-reduction-rules-reference - Microsoft Learn, App Control for Business and AppLocker overview
https://learn.microsoft.com/en-us/windows/security/application-security/application-control/app-control-for-business/appcontrol-and-applocker-overview
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!