가짜 ‘안전 메일’이 신용 카드 회사로 위장해 악성 파일 배포
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
안랩은 주요 한국 신용카드 제공업체의 안전 메일 알림으로 가장한 악성 LNK 파일을 배포하는 피싱 캠페인을 발견했습니다. 열면, 이 바로가기는 HTA를 통해 mshta.exe 와 PowerShell을 실행하고, 그 후 윈도우 디펜더가 활성화되어 있는지 여부에 따라 후속 페이로드를 다운로드합니다. 디펜더가 활성화되어 있으면 공격자는 curl 을 사용하여 암호화된 파일을 검색한 후 이를 압축 해제하고 실행합니다. 디펜더가 비활성화된 경우, 체인은 직접 DLL 로딩과 추가 다운로드 활동으로 전환됩니다. 결과적인 악성 코드는 정보 도용, 키로깅, 클립보드 수집 및 백도어 기능을 지원합니다.
조사
조사 결과, 초기 LNK 파일이 실행되면 mshta.exe가 실행되며, 난독화된 VBScript를 포함한 HTA를 실행합니다. 그 HTA는 pipe.zip을 다운로드하며, 이는 Base64로 인코딩된 스크립트 1.log, 1.ps1과 2.log을 포함하고 있으며 모두 메모리에서 디코딩되고 실행됩니다. 디펜더가 비활성화되면, 악성 코드는 대신 user.txt and sys.log를 다운로드하고, sys.log 를 sys.dll로 복호화한 후 rundll32를 통해 실행합니다. 복호화된 user.txt 를 분석한 결과, 추가 악성 파일을 가져오기 위해 사용된 세 개의 Google Drive URL이 노출되었습니다. 여기에는 notepad.log, net과 app가 포함되어 있으며, 이는 %LOCALAPPDATA%.
저장됩니다.
권장 방어 조치에는 이메일 첨부 파일의 합법성을 확인하고, LNK 파일의 자동 실행을 방지하며, 의심스러운 mshta.exe and curl사용을 모니터링하는 것이 포함됩니다. 보안 팀은 또한 1.log, 1.ps1, 2.log, notepad.log, net과 app 와 같은 파일을 검색하고 제거해야 하며, %TEMP% and %LOCALAPPDATA%경로에서 불필요한 레지스트리 변경 사항을 검사하고, 윈도우 디펜더 또는 다른 엔드포인트 보호 플랫폼이 활성화되고 적절히 구성되었는지를 확인해야 합니다.
대응
이 활동이 감지되면, 영향을 받은 시스템을 즉시 격리하고, 모든 mshta.exe, curl또는 rundll32 알 수 없는 파일을 실행 중인 프로세스를 종료하며, 악성 아티팩트를 디지털 포렌식 검토를 위해 보존합니다. 전체 시스템 검사를 수행하고, 노출된 자격 증명을 재설정하며, 후속 백도어 활동을 모니터링합니다. 관찰된 침해 지표를 사용하여 탐지 내용을 업데이트하고, 유사한 피싱 함정을 차단할 수 있도록 이메일 보안 통제를 강화해야 합니다. notepad.log. Detection content should also be updated with the observed indicators of compromise, and email security controls should be strengthened to block similar phishing lures in the future.
"graph TB %% Class definitions classDef action fill:#99ccff classDef operator fill:#ff9900 classDef builtin fill:#cccccc %% Nodes initial_user_exec["<b>기법</b> – <b>T1204.002 사용자 실행: 악성 파일</b><br/>피해자가 신용카드 회사의 안전한 이메일로 가장된 .lnk 파일을 엽니다."] class initial_user_exec action exec_mshta["<b>기법</b> – <b>T1218.005 시스템 바이너리 프록시 실행: Mshta</b><br/>LNK는 파워셸을 실행하여 난독화된 VBScript를 포함하는 원격 HTA를 가져옵니다."] class exec_mshta action exec_powershell["<b>기법</b> – <b>T1059.001 명령 및 스크립트 인터프리터: PowerShell</b><br/>PowerShell은 curl을 통해 추가 페이로드를 다운로드합니다."] class exec_powershell action masquerade["<b>기법</b> – <b>T1036.008 가장하기: 파일 형식 가장</b><br/>LNK 파일이 안전한 메일로 가장됩니다."] class masquerade action obfuscate["<b>기법</b> – <b>T1027 난독화된 파일 또는 정보</b><br/>AES로 암호화되고 Base64로 인코딩된 페이로드; LNK 아이콘 밀수."] class obfuscate action sandbox_evasion["<b>기법</b> – <b>T1497.002 가상화/샌드박스 회피: 사용자 활동 기반 검사</b><br/>멀웨어가 윈도우 디펜더 상태를 확인합니다."] class sandbox_evasion action cond_defender["<b>운영자</b> – 디펜더 상태 기반 AND 조건"] class cond_defender operator defender_on["<b>조건</b> – 디펜더 활성화됨"] class defender_on action defender_off["<b>조건</b> – 디펜더 비활성화됨"] class defender_off action download_pipe["<b>행동</b> – pipe.zip을 다운로드하고 1.log, 1.ps1, 2.log를 복호화 및 추출합니다."] class download_pipe action cred_access["<b>기법</b> – <b>T1539 브라우저 세션 하이재킹</b>, <b>T1185 웹 세션 쿠키</b>, <b>T1555.003 웹 브라우저에서 자격 증명 수집</b><br/>스크립트는 자격 증명 접근을 수행합니다."] class cred_access action collection["<b>기법</b> – <b>T1056.001 입력 캡처: 키로깅</b> 및 <b>T1115 클립보드 데이터</b><br/>키 입력과 클립보드 내용을 수집합니다."] class collection action download_sys["<b>행동</b> – user.txt 및 sys.log를 다운로드하고 sys.dll을 복호화합니다."] class download_sys action load_rundll["<b>기법</b> – <b>T1218.011 서명된 바이너리 프록시 실행: Rundll32</b><br/>sys.dll을 rundll32를 통해 로드합니다."] class load_rundll action persistence_appinit["<b>기법</b> – <b>T1546.010 이벤트 트리거된 실행: AppInit DLLs</b><br/>sys.dll은 지속성/회피에 사용됩니다."] class persistence_appinit action command_control["<b>기법</b> – <b>T1219 원격 접근 도구</b><br/>notepad.log는 원격 명령 실행, 파일 탈출 및 추가 데이터 수집을 제공합니다."] class command_control action clipboard_phish["<b>기법</b> – <b>T1204.004 악성 복사 및 붙여넣기</b><br/>클립보드 피싱 기법."] class clipboard_phish action %% 연결들 initial_user_exec –>|로 이어짐| exec_mshta exec_mshta –>|실행| exec_powershell exec_powershell –>|활성화| masquerade masquerade –>|활성화| obfuscate obfuscate –>|활성화| sandbox_evasion sandbox_evasion –>|트리거| cond_defender cond_defender –>|디펜더 활성화됨| defender_on cond_defender –>|디펜더 비활성화됨| defender_off defender_on –>|다운로드| download_pipe download_pipe –>|포함됨| cred_access cred_access –>|활성화| collection defender_off –>|다운로드| download_sys download_sys –>|로드| load_rundll load_rundll –>|설정| persistence_appinit persistence_appinit –>|활성화| command_control command_control –>|사용| clipboard_phish "
공격 흐름
탐지
짧은 스크립트 이름을 사용한 실행 가능성 (cmdline 사용)
보기
의심스러운 LOLBAS MSHTA 방어 회피 동작 (process_creation을 통해 명령 탐지)
보기
서드 파티 서비스/도구를 통한 데이터 침투/유출/C2 가능성 (프록시 사용)
보기
서드 파티 서비스/도구를 통한 데이터 침투/유출/C2 가능성 (DNS 사용)
보기
디펜더 비활성화된 환경에서 sys.dll을 사용하는 Rundll32 실행 [윈도우 프로세스 생성]
보기
mshta 명령 실행과 함께 악의적인 LNK 파일 [윈도우 파워셸]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 & 기준선 프리‑플라이트 체크가 통과되어야 합니다.
-
공격 내러티브 & 명령:
적은 엔드포인트에 발판을 확보한 후 기존의 애플리케이션 제어를 회피하면서 임의 코드를 실행하기를 원한다. 난독화된 VBScript를 포함하는 악성 HTA 파일을 작성하여 이를 디스크에 작성하는 PowerShell 백도어를 생성한다. HTA를 실행하기 위해, 그들은 윈도우 바로 가기(.lnk)를 사용하여powershell.exe와 명령을 사용하여mshta.exe를 호출한다. 바로 가기를 실행하면 PowerShell →mshta체인이 작동하여 규칙이 모니터하는 정확한 텔레메트리를 생성합니다. -
회귀 테스트 스크립트:
# ------------------------------------------------- # 1. 난독화된 VBScript를 가진 악성 HTA 생성 # ------------------------------------------------- $htaPath = "$env:TEMPevil.hta" $vbscript = @" <script language='VBScript'> ' 난독화된 VBScript 페이로드 (예: 파일 작성) Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.CreateTextFile("C:WindowsTemppwned.txt", True) f.WriteLine "compromised by ATT&CK" f.Close </script> "@ Set-Content -Path $htaPath -Value $vbscript -Encoding ASCII # ------------------------------------------------- # 2. PowerShell → mshta를 실행하는 바로 가기 (.lnk) 생성 # ------------------------------------------------- $lnkPath = "$env:TEMPlaunch_malicious.lnk" $ws = New-Object -ComObject WScript.Shell $shortcut = $ws.CreateShortcut($lnkPath) # HTA 파일을 사용하여 mshta를 실행하는 PowerShell 명령 $psCommand = "mshta.exe `"$htaPath`"" $shortcut.TargetPath = "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" $shortcut.Arguments = "-NoProfile -WindowStyle Hidden -Command `"$psCommand`"" $shortcut.Save() # ------------------------------------------------- # 3. 탐지를 트리거하기 위해 바로가기를 실행 # ------------------------------------------------- Write-Host "악성 바로가기를 실행하고 있습니다..." & $lnkPath # ------------------------------------------------- # 4. 로그 수집을 허용하기 위해 일시 중지 # ------------------------------------------------- Start-Sleep -Seconds 10 -
정리 명령:
# 생성된 아티팩트를 제거 Remove-Item -Path "$env:TEMPevil.hta" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlaunch_malicious.lnk" -Force -ErrorAction SilentlyContinue Remove-Item -Path "C:WindowsTemppwned.txt" -Force -ErrorAction SilentlyContinue Write-Host "정리 완료."