재사용된 자료로 멀웨어 캠페인 추적하기
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 캠페인은 악성 페이로드를 BaseStart- 및 -BaseEnd 태그 사이에 숨기는 JPEG ‘캐리어’ 이미지를 재사용합니다. 초기 액세스는 조작한 첨부 파일의 Microsoft Equation Editor 취약점(CVE-2017-11882) 악용을 통해 이루어지며, 이는 HTA를 다운로드합니다. HTA는 PowerShell을 실행하여 .NET 바이너리 단계를 가져옵니다. 많은 샘플에서 동일한 이미지를 재사용하는 것은 운영자가 반복 가능한 구성요소에 의존하고 있음을 시사합니다.
조사
연구자들은 TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs 파일에서 Equation Editor 취약점이 포함된 것을 발견했습니다. 이 체인은 악성 IP에서 HTA를 가져와 실행하고, 다른 IP에 호스팅 된 두 번째 페이로드를 다운로드하는 PowerShell을 실행합니다. 마지막 단계는 JPEG 캐리어에 내장된 .NET 바이너리이며 BaseStart/-BaseEnd 구분자를 통해 복구됩니다. 유사한 캐리어 이미지가 수십 개의 VirusTotal 제출에서 발견되었습니다.
대응책
CVE-2017-11882 패치를 적용하고 Office를 최신 상태로 유지하세요. HTA 실행을 차단하거나 제한하고, PowerShell 스크립트 서명을 강제하며, URL/IP 필터링을 사용하여 호스팅 인프라에 대한 접근을 차단하세요.
대응
첨부 파일 및 HTA 단계를 탐지하고 격리하며, 식별된 IP에 대한 PowerShell 다운로드 활동을 경고하세요. 영향을 받은 호스트를 격리하고 메모리 포렌식을 수행하여 메모리에 있는 .NET 페이로드를 찾아 제거하세요.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Nodes node_phishing[“<b>행동</b> – <b>T1566.001 피싱: 스피어피싱 첨부파일</b><br/><b>설명</b>: 이메일로 전송된 CVEu20112017u201111882를 악용한 악성 .xls 파일.”] class node_phishing action node_user_exec[“<b>행동</b> – <b>T1204.002 사용자 실행</b><br/><b>설명</b>: 피해자가 악성 첨부파일을 엽니다.”] class node_user_exec action node_exploit_client[“<b>행동</b> – <b>T1203 클라이언트 실행을 위한 악용</b><br/><b>설명</b>: 수식 편집기 취약점이 악성 콘텐츠 다운로드를 트리거합니다.”] class node_exploit_client action node_mshta[“<b>행동</b> – <b>T1218.005 시스템 바이너리 프록시 실행: Mshta</b><br/><b>설명</b>: HTA 파일이 다운로드되어 mshta를 통해 실행됩니다.”] class node_mshta action node_powershell[“<b>행동</b> – <b>T1059.001 명령 및 스크립트 인터프리터: PowerShell</b><br/><b>설명</b>: 원격 서버에서 PowerShell 스크립트를 가져와 실행합니다.”] class node_powershell action node_web_comm[“<b>행동</b> – <b>T1102.003 웹 서비스: 단방향 통신</b><br/><b>설명</b>: 스크립트가 원격 서버에서 PNG 이미지를 가져옵니다.”] class node_web_comm action node_stego[“<b>행동</b> – <b>T1027.003 난독화된 파일 또는 정보: 스테가노그래피</b><br/><b>설명</b>: PNG에 BaseStart 및 BaseEnd 마커로 구분된 Base64 페이로드가 포함되어 있습니다.”] class node_stego action node_dotnet[“<b>행동</b> – <b>실행</b><br/><b>설명</b>: 호스트에서 임베디드 .NET 바이너리 페이로드가 실행됩니다.”] class node_dotnet process %% Connections node_phishing –>|이어짐| node_user_exec node_user_exec –>|이어짐| node_exploit_client node_exploit_client –>|이어짐| node_mshta node_mshta –>|실행| node_powershell node_powershell –>|다운로드| node_web_comm node_web_comm –>|가져옴| node_stego node_stego –>|포함| node_dotnet
공격 흐름
탐지
프로세스 생성에 의한 의심스러운 LOLBAS MSHTA 방어 회피 동작 탐지
보기
의심스러운 PowerShell 문자열 (via powershell)
보기
의심스러운 직 IP 파일 다운로드(프록시를 통해)
보기
의심스러운 Equation Editor 하위 프로세스(cmdline를 통해)
보기
의심스러운 PowerShell 문자열(cmdline를 통해)
보기
재사용된 자료로 악성 코드 캠페인 추적: IOCs(목적지 IP)
보기
재사용된 자료로 악성 코드 캠페인 추적: IOCs(소스 IP)
보기
악성 HTA 및 Base64 이미지 페이로드 전달 탐지 [프록시]
보기
Base64 인코딩 기술을 사용한 악성 PowerShell 페이로드 검색 [Windows PowerShell]
보기
시뮬레이션 실행
사전 조건: Telemetry 및 Baseline Pre-Flight 체크를 통과해야 합니다.
이유: 이 섹션은 탐지 규칙을 트리거하기 위해 설계된 적수 기술(TTP)의 정확한 실행을 상세히 기술합니다. 명령과 서술은 TTPs가 식별한 내용을 직접 반영하고 탐지 로직에 의해 예상되는 정확한 텔레메트리를 생성해야 합니다.
-
공격 서술 및 명령:
적수는 클라이언트 측 취약점을 악용하여 악성 HTA 파일을 제공합니다. HTA는 악성 페이로드를 포함한 명령줄과 함께 PowerShell을 실행합니다(예:Invoke‑Expression을(를) 실행하여calc.exe를 실행)BaseStart-and-BaseEnd문자열 사이에 인코딩됩니다. 이로 인해 공격자는 이를 실시간으로 신뢰성 있게 추출할 수 있습니다. 손상된 호스트에서 실행된 명령은:powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"이 명령줄은
selection_base_startandselection_base_end조건을 만족시키며, 규칙을 트리거합니다. -
회귀 테스트 스크립트: 다음의 자체 포함 PowerShell 스크립트는 악성 행동을 재현하며, 위의 텔레메트리가 활성화된 Windows 호스트에서 실행될 수 있습니다.
# 회귀 테스트 스크립트 – 탐지 규칙을 트리거 # 1. Base64로 인코딩된 페이로드를 빌드(calc.exe 실행) $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) # 2. 구분자로 전체 명령줄을 조립 $cmd = "BaseStart-$payload-BaseEnd" # 3. 제작한 명령줄로 PowerShell 실행 $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`"" # 4. 명령 실행 (이것은 calc.exe를 실행할 것입니다) Invoke-Expression $fullCommand -
정리 명령: 필요 시 모든 아티팩트를 제거하고 생성된 프로세스를 종료합니다.
# 정리 – 여전히 실행 중인 계산기를 닫고 명령 기록 지우기 Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force # 선택적으로 PowerShell 기록 지우기 (현재 세션만) Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue
SOC Prime의 Detection as Code 플랫폼에 가입하세요 귀사의 비즈니스에 가장 중요한 위협에 대한 가시성을 개선하세요. 시작을 돕고 즉각적인 가치를 제공하기 위해 지금 SOC Prime 전문가와의 회의를 예약하세요.
Cookie Settings
You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.
| Name | Descripiton |
|---|---|
| PHPSESSID | Preserves user session state across page requests. Cookie generated by applications based on the PHP language. This is a general purpose identifier used to maintain user session variables. It is normally a random generated number, how it is used can be specific to the site, but a good example is maintaining a logged-in status for a user between pages. |
| sp_i | Used to store information about authenticated User. |
| sp_r | Used to store information about authenticated User. |
| sp_a | Used to store information about authenticated User. |
All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
| Name | Descripiton |
|---|---|
| tuuid | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded. |
| tuuid_last_update | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded. |
| um | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded. |
| umeh | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded. |
| na_sc_x | Used by the social sharing platform AddThis to keep a record of parts of the site that has been visited in order to recommend other parts of the site. |
| APID | Collects anonymous data related to the user's visits to the website. |
| IDSYNC | Collects anonymous data related to the user's visits to the website. |
| _cc_aud | Collects anonymous statistical data related to the user's website visits, such as the number of visits, average time spent on the website and what pages have been loaded. The purpose is to segment the website's users according to factors such as demographics and geographical location, in order to enable media and marketing agencies to structure and understand their target groups to enable customised online advertising. |
| _cc_cc | Collects anonymous statistical data related to the user's website visits, such as the number of visits, average time spent on the website and what pages have been loaded. The purpose is to segment the website's users according to factors such as demographics and geographical location, in order to enable media and marketing agencies to structure and understand their target groups to enable customised online advertising. |
| _cc_dc | Collects anonymous statistical data related to the user's website visits, such as the number of visits, average time spent on the website and what pages have been loaded. The purpose is to segment the website's users according to factors such as demographics and geographical location, in order to enable media and marketing agencies to structure and understand their target groups to enable customised online advertising. |
| _cc_id | Collects anonymous statistical data related to the user's website visits, such as the number of visits, average time spent on the website and what pages have been loaded. The purpose is to segment the website's users according to factors such as demographics and geographical location, in order to enable media and marketing agencies to structure and understand their target groups to enable customised online advertising. |
| dpm | Via a unique ID that is used for semantic content analysis, the user's navigation on the website is registered and linked to offline data from surveys and similar registrations to display targeted ads. |
| acs | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads. |
| clid | Collects anonymous data related to the user's visits to the website, such as the number of visits, average time spent on the website and what pages have been loaded, with the purpose of displaying targeted ads. |
| KRTBCOOKIE_# | Registers a unique ID that identifies the user's device during return visits across websites that use the same ad network. The ID is used to allow targeted ads. |
| PUBMDCID | Registers a unique ID that identifies the user's device during return visits across websites that use the same ad network. The ID is used to allow targeted ads. |
| PugT | Registers a unique ID that identifies the user's device during return visits across websites that use the same ad network. The ID is used to allow targeted ads. |
| ssi | Registers a unique ID that identifies a returning user's device. The ID is used for targeted ads. |
| _tmid | Registers a unique ID that identifies the user's device upon return visits. The ID is used to target ads in video clips. |
| wam-sync | Used by the advertising platform Weborama to determine the visitor's interests based on pages visits, content clicked and other actions on the website. |
| wui | Used by the advertising platform Weborama to determine the visitor's interests based on pages visits, content clicked and other actions on the website. |
| AFFICHE_W | Used by the advertising platform Weborama to determine the visitor's interests based on pages visits, content clicked and other actions on the website. |
| B | Collects anonymous data related to the user's website visits, such as the number of visits, average time spent on the website and what pages have been loaded. The registered data is used to categorise the users' interest and demographical profiles with the purpose of customising the website content depending on the visitor. |
| 1P_JAR | These cookies are used to gather website statistics, and track conversion rates. |
| APISID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| HSID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| NID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| SAPISID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| SID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| SIDCC | Security cookie to protect users data from unauthorised access. |
| SSID | Google set a number of cookies on any page that includes a Google reCAPTCHA. While we have no control over the cookies set by Google, they appear to include a mixture of pieces of information to measure the number and behaviour of Google reCAPTCHA users. |
| __utmx | This cookie is associated with Google Website Optimizer, a tool designed to help site owners improve their wbesites. It is used to distinguish between two varaitions a webpage that might be shown to a visitor as part of an A/B split test. This helps site owners to detemine which version of a page performs better, and therefore helps to improve the website. |
| __utmxx | This cookie is associated with Google Website Optimizer, a tool designed to help site owners improve their wbesites. It is used to distinguish between two varaitions a webpage that might be shown to a visitor as part of an A/B split test. This helps site owners to detemine which version of a page performs better, and therefore helps to improve the website. |
If you do not allow these cookies then some or all of these services may not function properly.
| Name | Descripiton |
|---|---|
| _hjid | Hotjar cookie. This cookie is set when the customer first lands on a page with the Hotjar script. It is used to persist the random user ID, unique to that site on the browser. This ensures that behavior in subsequent visits to the same site will be attributed to the same user ID. |
| _hjIncludedInSample | This cookie is associated with web analytics functionality and services from Hot Jar, a Malta based company. It uniquely identifies a visitor during a single browser session and indicates they are included in an audience sample. |
| intercom-id-[xxx] | This cookie is used by Intercom as a session so that users can continue a chat as they move through the site. |
| intercom-session-[xxx] | Used to keeping track of sessions and remember logins and conversations. |
| demdex | Via a unique ID that is used for semantic content analysis, the user's navigation on the website is registered and linked to offline data from surveys and similar registrations to display targeted ads. |
| CookieConsent | Stores the user's cookie consent state for the current domain. |
| __cfduid | Used by the content network, Cloudflare, to identify trusted web traffic. |
| ss | These cookies enable the website to provide enhanced functionality and
personalisation . They may be set by us or by third party providers whose
services we have added to our pages. These services may include the Live Chat facility, Contact Us form(s), the Product Quotation forms and submission process, and the Email Newsletter sign up functionality . |
They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.
| Name | Descripiton |
|---|---|
| _ga | This cookie name is asssociated with Google Universal Analytics - which is a significant update to Google's more commonly used analytics service. This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier. It is included in each page. Registers a unique ID that is used to generate statistical data on how the visitor uses the website. request in a site and used to calculate visitor, session and campaign data for the sites analytics reports. By default it is set to expire after 2 years, although this is customisable by website owners. |
| _gat | Used by Google Analytics to throttle request rate. This cookie name is associated with Google Universal Analytics, according to documentation it is used to throttle the request rate - limiting the collection of data on high traffic sites. It expires after 10 minutes. |
| _gid | This cookie name is asssociated with Google Universal Analytics. This appears to be a new cookie and as of Spring 2017 no information is available from Google. It appears to store and update a unique value for each page visited. Registers a unique ID that is used to generate statistical data on how the visitor uses the website. |
| IDE | Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user. |
| r/collect | Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user. |
| test_cookie | Used to check if the user's browser supports cookies. |
| collect | Used to send data to Google Analytics about the visitor's device and behaviour. Tracks the visitor across devices and marketing channels. |
| ads/user-lists/# | These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. |
| c | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |
| khaos | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |
| put_# | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |
| rpb | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |
| rpx | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |
| tap.php | Registers anonymised user data, such as IP address, geographical location, visited websites, and what ads the user has clicked, with the purpose of optimising ad display based on the user's movement on websites that use the same ad network. |