Detecting IcedID… Could It Be A Trickbot Copycat? – Marketscreener.com

twitter MS fdnoir ProxyEgg Detecting IcedID... Could It Be A Trickbot Copycat? - Marketscreener.com

IcedID is a banking trojan, it is designed to be stealthy and built to collect financial information. IcedID harvests user credentials and banking sessions to commit financial crimes, including carding, money laundering, and transferring of funds to foreign financial institutions. In recent research published by Splunk Threat Research Team (STRT) the inclusion of cryptocurrency exchange information was also included by Trickbot in the web inject code. IcedID shares many of the same payloads featured in Emotet or Trickbot and in some cases, IcedID has been observed downloading Emotet or Trickbot, as a way to provide operators a way to use diverse carriers as well.

IcedID targets financial institutions across different countries including banks, payment card providers, and e-commerce sites. IcedID has also been observed deployed in conjunction with other malware payloads such as Valak, Qakbot, Conti Ransomware. It is clear from studying past campaigns that the actors behind IcedID have expanded beyond banking information in order to extend similar features and coverage as other popular carriers such as Emotet or trickbot and by doing so current iterations of IcedID look more like a copycat or maybe even a successor.

Spear Phishing Documents

In a recent campaign, malicious actors were observed using a document builder to simulate legitimate DocuSign documents and embedding exploitation code for CVE-2017-8570 to trigger the installation of IcedID. These documents were delivered via spear-phishing technique.

Below is the screenshot of the phishing campaign (Word and Excel) that will download the IcedID downloader as soon as the user runs the malicious macro document in the targeted host.

This malicious document will download the IcedID loader then drop it as a “.sys” or “.jpg” file and execute it using regsvr32.exe windows application with “-s” parameter like the screenshot below.

Other exploitation vectors include running an obfuscated HTML application (.hta) to download the DLL loader as a .jpg file then execute it with rundll32.exe windows application with the “PluginInit” parameter. Below is the screenshot of the macro code that executes the .hta file and the de-obfuscated .hta script shows how it downloads and executes the first payload.

IcedID Initial Downloader (Stage 1)

The initial IceID loader binary will decrypt another .dll file in memory to download the 2nd stage payload (png or .dat) files. This is done by initially connecting to aws.amazon.com to check the internet connection and to prepare its initial C2 communication.

IcedID Payload Loader – PhotoLoader and “License.dat” decrypter) (Stage 2)

Once the second stage payload is downloaded, It will load a shellcode or headless executable file which is the main IcedID bot. This shellcode can be extracted either in .png file format (payload obfuscated by steganography) or gzip payload format containing a “license.dat” file.

The next code snippet below shows the .dll in memory locating the .png payload in a randomly generated directory based on the user name of the compromised machine created in either %appdata% or “C:Programdata”. If the .png file payload is found in either of those two folder paths, it will decrypt the shellcode from the image file if not it tries to download from the C&C server.

For the gzip file, It uses a similar code to locate the “license.dat” payload, aside from having an additional parameter check “/i” in the syntax line, as seen in the screenshot below.

IcedID .PNG Steganography and “License.dat” Payload

The PNG payload uses steganography to hide the shellcode inside the PNG. The encrypted shellcode and the 8 bytes rc4 decryption keys are placed in the IDAT chunk type structure of the PNG header file. A python script was developed (IceIdPNGShellcodeExtractor.py) to automatically extract the shellcode on the said payload.

For the “license.dat” IcedID payload, it will decrypt it using its customized decryption algorithm using its last 16 bytes as the decryption key. In this case, the IceIdDecrypt.py tool can be used to decrypt license.dat and do a static analysis of the file.

IcedID Core/Main Bot (Stage 3)

The shellcode or the core IcedID BOT will be injected in either spawned svchost.exe system processor in msiexec.exe or within the memory space of a rundll32 process that loads the .dll shellcode decryptor. After that, it will hook some native API, create a mutex as a mark of its infection, and make sure only one instance is running. Below are other notable behaviors seen in this main bot.

Hook Browser:

This shellcode will try to hook common browsers like firefox and chrome to steal credentials, cookies, and sessions saved. The screenshot below shows what it looks like in firefox and chrome browsers in the compromised machine.

Desktop Screenshots:

This code displays the ability to take screenshots of the desktop window of the compromised host. This bitmap image file format will be saved in the temp folder with a .tmp file extension to blend on normal .tmp files activities.

Passff.tar and cookie.tar

It will also create files named “passff.tar” for the browser history and “cookie.tar” for the browser cookies that may contain stolen browser information.

Stealing Browser Information

IcedID will also download and load a “sqlite64.dll” in the %temp% folder that will be needed for parsing firefox and chrome browser database to extract information. Below are SQLite commands decrypted in the shellcode to harvest autofill information from browser .db like cookies, password, company_name, street_address, city, state, zip code, country_code, phone number, user full name, and credit card information.

SELECT host_key, path, is_secure, (case expires_utc when 0 then 0 else (expires_utc / 1000000) – 11644473600 end), name, length(encrypted_value), encrypted_value FROM cookies

SELECT name, value FROM autofill

SELECT guid, company_name, street_address, city, state, zipcode, country_code FROM autofill_profiles

SELECT guid, number FROM autofill_profile_phones

SELECT guid, first_name, middle_name, last_name, full_name FROM autofill_profile_names

SELECT card_number_encrypted, length(card_number_encrypted), name_on_card, expiration_month || “/” ||expiration_year FROM credit_cards

SELECT origin_url,username_value,length(password_value),password_value FROM logins WHERE username_value <> ”

SELECT host, path, isSecure, expiry, name, value FROM moz_cookies

SELECT fieldname, value FROM moz_formhistory

UAC Bypass

The following are two functions to Bypass UAC (User Account Control). The Eventvwr and the fodhelper UAC bypass technique.

Harvest Email/Outlook Information and Browser Password Storage

Exfiltration tasks also include querying several registry keys related to email client Microsoft Outlook to steal user profiles, email signatures, and stored password folders through registry and ActiveMail Partners. “%u” is the outlook version installed in the machine.

HKCUSoftwareMicrosoftOffice%u.0OutlookProfiles

HKCUSoftwareMicrosoftWindows NTCurrentVersionWindows Messaging SubsystemProfilesOutlook9375CFF0413111d3B88A00104B2A6676

HKCUSoftwareMicrosoftActiveSyncPartners

HKCUSoftwareMicrosoftInternet ExplorerIntelliFormsStorage2

Recon AV Product

The following PowerShell commands detect Antivirus Product information.

WMIC /Node:localhost /Namespace:\rootSecurityCenter2 Path AntiVirusProduct Get * /Format:List

Other Execution and RemoteThread Execution

We also found chcp command execution and passage of the result to a created pipe. The result of this command line may give the locale country region of the compromised host base on its result. For example, the 437 result means “default code page in the US”.

Another regsvr32 execution with “/s” parameter to execute DLL payload downloaded from its C2 server, copy of itself or decrypted DLL that was dropped in the compromised host.

Code injection into a cmd.exe process.

Persistence

IcedID creates a scheduled task entry to download the file that will decrypt and load the license.dat file using a process spawned via the Rundll32 application, as seen in the screenshot below.

In addition to using scheduled tasks for spawning processes, the main bot is also capable of creating a regrun entry for its DLL payload using SHSetValueA API. This will ensure that the DLL will be loaded every time a user logs on.

Create Self Signed Certificate

IcedID will also add certificates into the certificate store that will be saved in the %temp% folder as part of its possible proxy communication to its C2 server bound to IP 127.0.0.1 port 54245. The screenshot below shows the decrypted certificate format that IcedID will add to the certificate store in a .tmp file. This proxy function also compliments the web inject vector as an alternative way to capture traffic and credentials.

The screenshot below shows how IcedID setup proxy from IP 127.0.0.1 port 54245 by listening on the created socket relative to the IP and port mentioned above.

The following are several detection methods created by STRT to address IcedID. All these detections are encompassed in an Analytic story released in our content updates.

Detections

Suspicious Rundll32 Plugininit (New)

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime from datamodel=Endpoint.Processes where Processes.process_name=rundll32.exe Processes.process=*PluginInit* by Processes.process_name Processes.process Processes.parent_process_name Processes.parent_process Processes.process_id Processes.parent_process_id Processes.dest Processes.user

| `drop_dm_object_name(Processes)`

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Suspicious IcedID Rundll32 Cmdline (New)

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)

as lastTime from datamodel=Endpoint.Processes where Processes.process_name=rundll32.exe

Processes.process=*/i:* by Processes.process_name Processes.process

Processes.parent_process_name Processes.parent_process Processes.process_id

Processes.parent_process_id Processes.dest Processes.user

| `drop_dm_object_name(Processes)`

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Rundll32 DNSQuery (New)

`sysmon` EventCode=22 process_name=”rundll32.exe”

| stats count min(_time) as firstTime max(_time) as lastTime

by Image QueryName QueryStatus ProcessId direction Computer

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Rundll32 Process Creating Exe Dll Files (New)

`sysmon` EventCode=11 process_name=”rundll32.exe” TargetFilename IN (“*.exe”, “*.dll”,)

| stats count min(_time) as firstTime max(_time) as lastTime

by Image TargetFilename ProcessGuid dest user_id

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Suspicious IcedID Regsvr32 Cmdline (New)

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)

as lastTime from datamodel=Endpoint.Processes where Processes.process_name=regsvr32.exe

Processes.process=*-s* by Processes.process_name Processes.process Processes.parent_process_name

Processes.parent_process Processes.process_id Processes.parent_process_id Processes.dest Processes.user

| `drop_dm_object_name(Processes)`

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Rundll32 CreateRemoteThread In-Browser (New)

`sysmon` EventCode=8 SourceImage = “*\rundll32.exe” TargetImage IN (“*\firefox.exe”, “*\chrome.exe”)

| stats count min(_time) as firstTime max(_time) as lastTime

by SourceImage TargetImage TargetProcessId SourceProcessId StartAddress EventCode Computer

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Office Application Spawn Regsvr32 process (new)

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time) as lastTime

from datamodel=Endpoint.Processes where (Processes.parent_process_name = “winword.exe” OR Processes.parent_process_name

= “excel.exe” OR Processes.parent_process_name = “powerpnt.exe” OR Processes.parent_process_name = “outlook.exe”)

Processes.process_name=regsvr32.exe by Processes.parent_process_name Processes.parent_process Processes.process_name

Processes.process Processes.process_id Processes.process_guid Processes.user Processes.dest

| `drop_dm_object_name(“Processes”)`

| `security_content_ctime(firstTime)`

|`security_content_ctime(lastTime)`

Recon AVProduct Through Pwh or WMI (Modified)

`powershell` EventCode=4104 (Message = “*SELECT*” OR Message = “*WMIC*”) AND (Message = “*AntiVirusProduct*” OR Message = “*AntiSpywareProduct*”) | stats count min(_time) as firstTime max(_time) as lastTime by EventCode Message ComputerName User | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)`

CHCP Command Execution (New)

| tstats `security_content_summariesonly` count min(_time) as firstTime max(_time)

as lastTime from datamodel=Endpoint.Processes

where Processes.process_name=chcp.com Processes.parent_process_name = cmd.exe

Processes.parent_process=*/c* by Processes.process_name Processes.process

Processes.parent_process_name Processes.parent_process Processes.process_id Processes.parent_process_id Processes.dest Processes.user

| `drop_dm_object_name(Processes)`

| `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

Create Remote Thread In Shell Application (New)

`sysmon` EventCode=8 TargetImage IN (“*\cmd.exe”, “*\powershell*”)

| stats count min(_time) as firstTime max(_time) as lastTime

by TargetImage TargetProcessId SourceProcessId EventCode StartAddress SourceImage Computer | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`

Drop IcedID License.dat (New)

`sysmon` EventCode= 11 TargetFilename = “*\license.dat” AND (TargetFilename=”*\appdata\*” OR TargetFilename=”*\programdata\*”)

|stats count min(_time) as firstTime max(_time) as lastTime by TargetFilename EventCode process_id process_name Computer | `security_content_ctime(firstTime)`

| `security_content_ctime(lastTime)`

IcedID Exfiltrated Archived File Creation (New)

`sysmon` EventCode= 11 (TargetFilename = “*\passff.tar” OR TargetFilename = “*\cookie.tar”)

|stats count min(_time) as firstTime max(_time) as lastTime by TargetFilename EventCode process_id process_name Computer | `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`

SQLite Module In Temp Folder (New)

`sysmon` EventCode= 11 (TargetFilename = “*\sqlite32.dll” OR TargetFilename = “*\sqlite64.dll”) (TargetFilename = “*\temp\*”)

|stats count min(_time) as firstTime max(_time) as lastTime by process_name TargetFilename EventCode ProcessId Image process_id process_name Computer

| `security_content_ctime(firstTime)` | `security_content_ctime(lastTime)`

Detection

Techniques ID

Tactics

Description

Defense Tactics & Techniques

Previously seen command line arguments (Existing)

T1059

Execution

Detects for command line arguments where `cmd.exe /c` is used

to execute a program

Detect

D3-SEA

Script Execution Analysis

Eventvwr UAC Bypass (Existing)

T1548.002

Privilege Escalation, Defense Evasion

Detects uac bypass using eventvwr

Detect:

D3-ANET / D3-AZET

Authentication/Authorization Event Thresholding

FodHelper UAC Bypass (Existing)

T1548.002

Privilege Escalation, Defense Evasion

Detects uac bypass using fodhelper

Detect:

D3-ANET / D3-AZET

Authentication/Authorization Event Thresholding

Mshta spawning Rundll32 OR Regsvr32 Process (Existing)

T1218.005

Defense Evasion

Detects suspicious child process of mshta parent process

Detect:

Dynamic Analysis

D3-FAPA

File Access Pattern

D3-PSA

Process Spawn Analysis

Office Application Spawn rundll32 process (Existing)

T1566.001

Initial Access

Detects suspicious rundll32 child process of MS office application

Detect:

File Analysis

D3-DA

Identifier Analysis

D3-HD

URL Analysis

D3-UA

Message Analysis

Sender MTA Reputation

D3-SMRA

Sender Reputation

D3-SRA

Office Document Executing Macro Code (Existing)

T1566.001

Initial Access

Detects suspicious MS office app running macro code

Detect:

File Analysis

D3-DA

Identifier Analysis

D3-HD

URL Analysis

D3-UA

Message Analysis

Sender MTA Reputation

D3-SMRA

Sender Reputation

D3-SRA

Office Product Spawning MSHTA (Existing)

T1566.001

Initial Access

Detects suspicious mshta child process of MS office application

Detect:

File Analysis

D3-DA

Identifier Analysis

D3-HD

URL Analysis

D3-UA

Message Analysis

Sender MTA Reputation

D3-SMRA

Sender Reputation

D3-SRA

Registry Keys Used For Persistence (Existing)

T1547.001

Persistence, Privilege Escalation

Detects modifications to registry keys that can be used

to launch an application or service at system startup

N/A

Schedule Task with Rundll32 Command Trigger (Existing)

T1053

Execution, Persistence, Privilege Escalation

Detects suspicious scheduled task with rundll32 command

Detect

D3-OSM

OS Monitoring

D3-SJA

Scheduled Job Analysis

D3-OSM

Operating System Monitoring

WinEvent Scheduled Task Created Within Public Path (Existing)

T1053

Execution, Persistence, Privilege Escalation

Detects suspicious scheduled task created in a suspicious file path

Detect

D3-OSM

OS Monitoring

D3-SJA

Scheduled Job Analysis

D3-OSM

Operating System Monitoring

Suspicious Regsvr32 Register Suspicious Path (Existing)

T1218.010

Defense Evasion

Detects regsvr32 execution with suspicious DLL file path

Detect:

Dynamic Analysis

D3-FAPA

File Access Pattern

D3-PSA

Process Spawn Analysis

Account Discovery With Net App (Existing)

T1087.002

Discovery

detects a potential account discovery through a series of commands.

N/A

NLTest Domain Trust Discovery (Existing)

T1482

Discovery

Detects execution of `nltest.exe` with suspicious parameter

N/A

Recon AVProduct Through Pwh or WMI(Modified)

T1592

Reconnaissance

Detects command to gather AV product info

N/A

Suspicious Rundll32 Plugininit (New)

T1218.011

Defense Evasion

Detects PluginInit parameter of Rundll32 process

N/A

Suspicious IcedID Rundll32 Cmdline (New)

T1218.011

Defense Evasion

Detects known IcedID rundll32 parameter.

N/A

Rundll32 DNSQuery (New)

T1218.011

Defense Evasion

Detects DNS query from rundll32 process

N/A

Rundll32 Process Creating Exe Dll Files (New)

T1218.011

Defense Evasion

Detects rundll32 process dropping executable files

N/A

Suspicious IcedID Regsvr32 Cmdline (New)

T1218.010

Defense Evasion

Detects regsvr32 process with known “-s” parameter

N/A

Rundll32 CreateRemoteThread In Browser (New)

T1055

Defense Evasion, Privilege Escalation

Detects Process Injection to a browser from rundll32 process

N/A

Office Application Spawn Regsvr32 process (new)

T1566.001

Initial Access

Detects suspicious regsvr32 child process of office application

Detect:

File Analysis

D3-DA

Identifier Analysis

D3-HD

URL Analysis

D3-UA

Message Analysis

Sender MTA Reputation

D3-SMRA

Sender

Rundll32 Create Remote Thread To A Process (New)

T1055

Defense Evasion, Privilege Escalation

Detects process Injection made by rundll32

N/A

CHCP Command Execution (New)

T1059

Execution

Detects chcp.com execution

Detect

D3-SEA

Script Execution Analysis

Create Remote Thread In Shell Application (New)

T1055

Defense Evasion, Privilege Escalation

Detects Process Injection in Shell Application

N/A

Drop IcedID License dat (New)

T1204.002

Execution

Detects suspicious license.dat file creation

Detect:

File Analysis

D3-DA

Identifier Analysis

D3-HD

IcedID Exfiltrated Archived File Creation (New)

T1560.001

Collection

Detects creation of archived files related to IcedID data collection

Detect:

File Content Rules

D3-FCR

File Hashing

D3-FH

Sqlite Module In Temp Folder (New)

T1005

Collection

Detects the creation of sqlite module in %temp% folder

N/A

Hashes Contributors

We would like to thank the following for their contributions to this post: Teoderick Contreras and Rod Soto.

Attachments

Disclaimer

Splunk Inc. published this content on 04 November 2021 and is solely responsible for the information contained therein. Distributed by Public, unedited and unaltered, on 04 November 2021 15:54:09 UTC.

Source of this news: https://www.marketscreener.com/quote/stock/SPLUNK-INC-10454129/news/Detecting-IcedID-Could-It-Be-A-Trickbot-Copycat-36904598/

Related posts:

Saturday Night Live Recap: Nick Jonas Dreams of Post-COVID Life - Vulture
Saturday Night Live Nick Jonas Season 46 Episode 14 Editor’s Rating 3 stars *** Photo: NBC/Will Heath/NBC Though still primarily known as a pop star and one of the (reuni...
Xbox Error 0x97DD001E when connecting to Xbox Live on Console or PC - TWCN Tech News
You may encounter the Xbox error code 0x97DD001E when you try connecting to Xbox Live on your Xbox console or Windows 11 or Windows 10 computer. This post is intended to help affected gamers with the...
Li-Cycle Strengthens IP Position Receiving Two Additional U.S. Patents - Yahoo Finance
Li-Cycle continues to build technology presence in United States with granted patents from the U.S. Patent and Trademark Office relating to the processing and recovery of critical, finite materials f...
Fix Ubisoft Connect app not working on Windows PC - TheWindowsClub
This guide features different workarounds you can try if the Ubisoft Connect app is not working on Windows 11/10. Ubisoft Connect is an ecosystem for Ubisoft games and helps different players to conn...
How To Use The Board: A Tutorial - FanGraphs
[embedded content] 0:00 Introduction0:45 How To Access The Board1:20 Three Ways To View The Board We have a great many data and research tools on FanGraphs. Some people are well-suited to clicking ar...
Microsoft Exchange server being hacked through ProxyShell exploit - Illinoisnewstoday.com
An attacker has exploited a vulnerability in ProxyShell to aggressively exploit a Microsoft Exchange server and install a backdoor for later access. ProxyShell is the name of an attack that uses thre...
How to use iCloud Private Relay following iOS 15 update - HITC - Football, Gaming, Movies, TV, Music
Find out how to use iCloud Private Relay following the latest iOS 15 update which enables you to hide your IP address in Safari and more. In this article, we unpick Apple’s latest feature which makes...
Dallas Invents: 109 Patents Granted for Week of Nov. 30 » Dallas Innovates - dallasinnovates.com
Dallas Invents is a weekly look at U.S. patents granted with a connection to the Dallas-Fort Worth-Arlington metro area. Listings include patents granted to local assignees and/or those with a N...
Is Your Mobile Provider Tracking Your Location? This New Technology Could Stop It. - USC Viterbi | S...
To receive service, our phones reveal personal identifiers to cell towers owned by major network operators. This has led to vast and largely unregulated data-harvesting industries. Now, researchers h...
CNCF Announces Linkerd Graduation - Container Journal
The Cloud Native Computing Foundation (CNCF) has announced the graduation of Linkerd, the popular open source service mesh lauded for its fast performance and ultralight footprint. Linkerd now joins ...
Trickbot updates its VNC element for high-value targets to BleepingComputer
Finally the Trickbot botnet malware that distributes various ransomware higher-level, continues to be the most prevalent threars as its developers update the particular VNC module used for contro...
A database of global coastal conditions | Scientific Data - Nature.com
1.Horning, N., Robinson, J. A., Sterling, E. J., Turner, W. & Spector, S. Remote sensing for ecology and conservation. Techniques in Ecology & Conservation Series (Oxford University Press, 20...
Facebook proxy servers for the gaming publication rack - GLYFE Nation
Within the last few decade, the lack of privacy plus security on the web has become a widely used topic for advocates associated humane technology and mysterious internet. The leaps people make...
Valley National Bancorp to Acquire Bank Leumi USA Creating a Premier Commercial Bank With ... - KULR...
NEW YORK, Sept. 23, 2021 (GLOBE NEWSWIRE) -- Valley National Bancorp (“Valley”) (NASDAQ: VLY) and Bank Leumi Le-Israel Corporation (“Leumi”) announced today that they have entered into a definitive ...
IoT Cyberattacks Escalate in 2021, According to Kaspersky - IoT World Today
Few 1 . 51 billion IoT breaches occurred from The month of january to June, most when telnet remote access project. IoT cyberattacks more than doubled year-on-year during the first 50 % of 2...
Jump Announces General Availability of Fiddler Jam | News | bakersfield. com - Each Bakersfield Cali...
BEDFORD, General., Oct. 20, 2021 (GLOBE NEWSWIRE) -- Progress  (NASDAQ: PRGS), the most common provider of products to develop, release and manage high-impact jobs, today announced the g...
Windows Server Update Services Users Getting Proxy-Use Change This Month - Redmondmag.com
News Windows Server Update Services Users Getting Proxy-Use Change This Month By Kurt Mackie01/13/2021 Microsoft on Tuesday notified Windows Server Update Services (WSUS) users that it's no longe...
Headphones not working in Windows 11? Fix it with ease - WindowsReport.com
by Vlad Turiceanu Editor-in-Chief Passionate about technology, Windows, and everything that has a power button, he spent most of his time developing new skills and learning more about th...

IP Rotating Proxy Onsale

SPECIAL LIMITED TIME OFFER

00
Months
00
Days
00
Hours
00
Minutes
00
Seconds
First month free with coupon code FREE30