AmateraStealer Malware Analysis

AmateraStealer Malware Analysis

August 31, 2025
Fuad Aliyev
Malware Analysis
Reverse Engineering
Stealer
RAT

What is Amatera?

"Amatera is a stealer written in C++. It conducts anti-sandbox analysis before enumerating browsers, exfiltrating found cryptocurrency files/wallets and possibly credentials." -malpedia

Static Analysis

Headers

Starting out with analysis, I use CFF explorer to find out some capabilities. It is a 64 bit PE compiled using Visual Studio, written in C/C++. NX (non-executable stack) is on for this executable. Sections: .text, .rdata, .data, .pdata, .reloc. One important finding was imports of the executable, it only imports 2 functions from KERNEL32.dll: LoadLibraryW and GetProcAddress, we already know it resolves API dynamically

Strings

Looking at the strings, it can be seen, some of them are encrypted, which might need to let malware execute and decrypt them by itself. But there are still some clear strings, which exposes some functionalities of malware:

Anti-Debug/Anti-VM Detection Functions

AddressStringDescription
14000a020IsDebuggerPresentDetects if debugger is attached
14000a038GetCurrentProcessGets current process handle
14000a050CheckRemoteDebuggerPresentChecks for remote debugging

Virtualization/Sandbox Detection Strings

AddressStringDescription
14000a070VirtualBoxVM detection string
14000a07cVMwareVM detection string
14000a098Hyper-VVM detection string
14000a0a0MicrosoftVM vendor detection

Registry Access Functions

AddressStringDescription
14000a0e8RegGetValueARegistry value retrieval (ANSI)
14000a138RegGetValueARegistry value retrieval (ANSI)
14000a188RegGetValueARegistry value retrieval (ANSI)
14000a2a8RegGetValueWRegistry value retrieval (Unicode)
14000a318RegGetValueWRegistry value retrieval (Unicode)
14000ae50RegOpenKeyExWOpens registry key (Unicode)
14000ae78RegGetValueWRegistry value retrieval (Unicode)
14000aea0RegGetValueWRegistry value retrieval (Unicode)
14000aec0RegCloseKeyCloses registry key
14000b448RegOpenKeyExWOpens registry key (Unicode)
14000b458RegEnumKeyExWEnumerates registry keys
14000b480RegGetValueWRegistry value retrieval (Unicode)
14000b4a8RegGetValueWRegistry value retrieval (Unicode)
14000b4d0RegCloseKeyCloses registry key

Registry Keys - System Information

AddressStringDescription
14000a0c0HARDWARE\DESCRIPTION\System\BIOSBIOS information registry path
14000a110HARDWARE\DESCRIPTION\System\BIOSBIOS information registry path
14000a160HARDWARE\DESCRIPTION\System\BIOSBIOS information registry path
14000ae10SOFTWARE\Microsoft\CryptographyCryptography registry path
14000af50SOFTWARE\Microsoft\Windows NT\CurrentVersionWindows version registry path
14000afe0SOFTWARE\Microsoft\Windows NT\CurrentVersionWindows version registry path
14000b080SOFTWARE\Microsoft\Windows NT\CurrentVersionWindows version registry path
14000b240HARDWARE\DESCRIPTION\System\CentralProcessor\0CPU information registry path
14000b2e0HARDWARE\DESCRIPTION\System\CentralProcessor\0CPU information registry path
14000b3e0SOFTWARE\Microsoft\Windows\CurrentVersion\UninstallInstalled software registry path

Registry Values - System Information

AddressStringDescription
14000a0b0BIOSVendorBIOS vendor registry value
14000a0f8SystemProductNameSystem product name registry value
14000a148SystemManufacturerSystem manufacturer registry value
14000ae60MachineGuidMachine GUID registry value
14000ae88MachineGuidMachine GUID registry value
14000af30ProductNameProduct name registry value
14000afc0ProductNameProduct name registry value
14000b060InstallDateInstallation date registry value
14000b210ProcessorNameStringProcessor name registry value
14000b2b0ProcessorNameStringProcessor name registry value
14000b468DisplayNameDisplay name registry value
14000b490DisplayNameDisplay name registry value

Network Communication

AddressStringDescription
14000a1c0Authorization:HTTP authorization header
14000a1d8/core/createSessionAPI endpoint for session creation
14000a1f0afdprox.icuC&C server domain
14000a208/core/sendPartAPI endpoint for data transmission
14000a220afdprox.icuC&C server domain

Internet/HTTP Functions

AddressStringDescription
14000a9d0InternetOpenAOpens internet connection
14000a9e0InternetConnectAConnects to internet server
14000a9f8HttpOpenRequestAOpens HTTP request
14000aa10HttpSendRequestASends HTTP request
14000aa28InternetReadFileReads internet file
14000aa40InternetCloseHandleCloses internet handle
14000aa58InternetCloseHandleCloses internet handle
14000aa70InternetCloseHandleCloses internet handle

Application Paths - Steam

AddressStringDescription
14000a240InstallPathSteam installation path value
14000a260SOFTWARE\WOW6432Node\Valve\SteamSteam registry path
14000a2b8InstallPathSteam installation path value
14000a2d0SOFTWARE\WOW6432Node\Valve\SteamSteam registry path
14000a328\configSteam config directory
14000a338*.vdfSteam VDF files pattern
14000a348SteamSteam identifier

Application Paths - Telegram

AddressStringDescription
14000a360%appdata%\Telegram Desktop\tdataTelegram data directory
14000a3b0dumpsTelegram dumps directory
14000a3c0emojiTelegram emoji directory
14000a3d0tdummyTelegram dummy files
14000a3e0tempTelegram temp directory
14000a3f0user_dataTelegram user data
14000a408TelegramTelegram identifier

Browser Data Paths

AddressStringDescription
14000a420applicationsBrowser applications
14000a440\Local StateBrowser local state file
14000a460state_keyBrowser state key
14000a478filesBrowser files
14000a488chromium_appsChromium applications
14000a4a8\Local StateBrowser local state file
14000a4c8state_keyBrowser state key
14000a4f0app_bound_keyBrowser app-bound key
14000a518\Local Extension Settings\Browser extension settings path
14000a558filesBrowser files
14000a568extensionsBrowser extensions
14000a580profilesBrowser profiles
14000a598chromiumChromium identifier
14000a958\ProfilesBrowser profiles directory
14000a978geckoGecko browser engine

Cryptographic Functions

AddressStringDescription
14000a5b0CryptUnprotectDataWindows DPAPI decryption
14000a5c8LocalFreeFrees local memory
14000a5d8"encrypted_key":"JSON key for encrypted data
14000a658"app_bound_encrypted_key":"JSON key for app-bound encrypted data

Process Management Functions

AddressStringDescription
14000a5f0CreateToolhelp32SnapshotCreates process snapshot
14000a610Process32FirstWGets first process
14000a620OpenProcessOpens process handle
14000a630TerminateProcessTerminates process
14000a648Process32NextWGets next process
14000a678CreateProcessWCreates new process
14000a688msedge.exeMicrosoft Edge executable
14000aa88OpenProcessOpens process handle
14000ab00CloseHandleCloses handle
14000ab10WaitForSingleObjectWaits for object
14000b4e0CreateToolhelp32SnapshotCreates process snapshot
14000b500Process32FirstWGets first process
14000b510Process32NextWGets next process
14000b520CloseHandleCloses handle

Memory Management Functions

AddressStringDescription
14000a998HeapAllocAllocates heap memory
14000a9a8HeapReAllocReallocates heap memory
14000a9b8HeapFreeFrees heap memory
14000aa98VirtualAllocExAllocates virtual memory in process
14000aaa8VirtualFreeExFrees virtual memory in process
14000aab8WriteProcessMemoryWrites to process memory
14000aad0ReadProcessMemoryReads from process memory
14000aae8CreateRemoteThreadCreates thread in remote process
14000ac40GetProcessHeapGets process heap

File System Functions

AddressStringDescription
14000a850FindFirstFileWFinds first file
14000a870FindNextFileWFinds next file
14000a888FindFirstFileWFinds first file
14000a8b0FindNextFileWFinds next file
14000a8d0FindFirstFileWFinds first file
14000a8f0FindNextFileWFinds next file
14000a900GetFileSizeGets file size
14000a910CreateFileWCreates/opens file
14000a920CloseHandleCloses handle
14000a930ReadFileReads from file
14000a940GetFileAttributesWGets file attributes

System Information Functions

AddressStringDescription
14000a198GetPhysicallyInstalledSystemMemoryGets installed RAM
14000aed0GetComputerNameWGets computer name
14000af08GetUserNameWGets username
14000b110GetUserDefaultLocaleNameGets system locale
14000b140GetDynamicTimeZoneInformationGets timezone info
14000b1a0EnumDisplaySettingsWGets display settings
14000b1d8EnumDisplayDevicesWEnumerates display devices
14000b368GetPhysicallyInstalledSystemMemoryGets installed RAM
14000b3a8GetModuleFileNameWGets module filename
14000b550EnumDisplaySettingsWGets display settings

Screenshot and Clipboard Functions

AddressStringDescription
14000b568GetDCGets device context
14000b570CreateCompatibleDCCreates compatible DC
14000b588CreateCompatibleBitmapCreates compatible bitmap
14000b5a0SelectObjectSelects object into DC
14000b5b0BitBltBit block transfer
14000b5b8GetObjectAGets object information
14000b5c8GetDIBitsGets bitmap bits
14000b5f0SelectObjectSelects object into DC
14000b600DeleteObjectDeletes object
14000b610DeleteDCDeletes device context
14000b620ReleaseDCReleases device context
14000b630OpenClipboardOpens clipboard
14000b640GetClipboardDataGets clipboard data
14000b658CloseClipboardCloses clipboard
14000b668GlobalLockLocks global memory
14000b678CloseClipboardCloses clipboard
14000b6a0GlobalUnlockUnlocks global memory
14000b6b0CloseClipboardCloses clipboard

String Conversion Functions

AddressStringDescription
14000a6a0MultiByteToWideCharConverts multibyte to wide char
14000a6b8WideCharToMultiByteConverts wide char to multibyte
14000a6d0WideCharToMultiByteConverts wide char to multibyte
14000b6d8ExpandEnvironmentStringsWExpands environment variables

Environment Functions

AddressStringDescription
14000a768APPDATAAPPDATA environment variable
14000a778GetEnvironmentVariableWGets environment variable
14000a7b0GetEnvironmentVariableWGets environment variable
14000a7e8GetEnvironmentVariableWGets environment variable
14000a818GetEnvironmentVariableWGets environment variable

Dynamic Loading Functions

AddressStringDescription
14000ab28GetModuleHandleAGets module handle
14000ab40RtlInitUnicodeStringInitializes Unicode string
14000ab58LdrLoadDllLoads DLL
14000b99cLoadLibraryWLoads library (Unicode)
14000b98aGetProcAddressGets procedure address
14000d4e6GetProcAddressGets procedure address
14000d4f8LoadLibraryALoads library (ANSI)

System DLLs

AddressStringDescription
14000ab68Kernel32.dllWindows kernel library
14000ab88Crypt32.dllCryptography library
14000aba0User32.dllUser interface library
14000abb8Advapi32.dllAdvanced Windows API
14000abd8Wininet.dllWindows internet library
14000abf0Gdi32.dllGraphics device interface
14000ac08Ole32.dllObject linking and embedding
14000ac20OleAut32.dllOLE automation library
14000b9aaKERNEL32.dllWindows kernel library
14000d21cole32.dllObject linking and embedding
14000d27coleaut32.dllOLE automation library
14000d506KERNEL32.dllWindows kernel library

COM Functions

AddressStringDescription
14000d22cCoInitializeExInitializes COM library
14000d23cCoUninitializeUninitializes COM library
14000d24cCoCreateInstanceCreates COM object instance
14000d264CoSetProxyBlanketSets COM proxy security
14000d28cSysAllocStringByteLenAllocates BSTR
14000d2a4SysFreeStringFrees BSTR

Configuration/Target Data

AddressStringDescription
14000ac50session_idSession identifier
14000ac60grabber_rulesData grabbing rules
14000ac88gecko_pathsFirefox browser paths
14000aca0gecko_filesFirefox browser files
14000acb8chromium_browsersChromium-based browsers
14000ad38chromium_filesChromium browser files
14000ad50chromium_extensionsChromium extensions
14000ad70chromium_appsChromium applications
14000ada8applicationsApplications target
14000add8desktop_walletsDesktop wallet applications
14000a6e8desktop_walletsDesktop wallet applications

System Information Fields

AddressStringDescription
14000aeb0guidMachine GUID
14000aee8computer_nameComputer name
14000af18usernameUsername
14000b050os_nameOperating system name
14000b0f0install_dateOS installation date
14000b130localeSystem locale
14000b160timezone_nameTimezone name
14000b180timezone_biasTimezone bias
14000b1c0resolutionScreen resolution
14000b1f0video_card_nameGraphics card name
14000b350cpu_nameCPU name
14000b390total_ramTotal RAM
14000b3c0start_pathExecutable start path
14000b4b8softwareInstalled software
14000b530process_listRunning processes
14000b5d8screenshotScreenshot data
14000b688clipboardClipboard content
14000b6c0system_infoSystem information

Miscellaneous

AddressStringDescription
14000a1fcSleepSleep function
14000a22cSleepSleep function
14000a4e0NONENone value
14000a708ExitProcessExit process function
14000a718b0b12e32-2f73-41fc-9031-307e8fdbc5d4GUID identifier
14000a740test_5Test identifier
14000a750build_idBuild identifier
14000a988grabberGrabber identifier
14000ad98trueBoolean true value
14000adc8trueBoolean true value
14000adf8trueBoolean true value
14000d478ElevatorShell.exeExecutable name
14000d48a?pData@@3PEAXEAC++ mangled symbol

Section Names

AddressStringDescription
14000c9fb.rdataRead-only data section
14000ca4c.pdataException handling data
14000d340.rdataRead-only data section
14000d350.rdata$voltmdCompiler metadata
14000d390.edataExport data section
14000d3f0.dataData section
14000d400.pdataException handling data

Disassembly/Decompilation

To statically analyze executable, I will use ghidra.

Starting out, the first (custom) function that executable calls loads all libraries needed:

1|700

As LoadLibraryW returns handles to these DLLs, later on as you can see, it can use these handles to call functions, for example in this case it is "GetProcessHeap". TO have understanding of how it looks like:

1|700

It is simple, get address of function and call it, there are also other functions (different for each function) to handle arguments too.

Moving on, malware calls another (custom) function that tries to create session with "afdprox.ciu" domain using authorization key of: "b0b12e32-2f73-41fc-9031-307e8fdbc5d4"

1|700

param_2 is "b0b12e32-2f73-41fc-9031-307e8fdbc5d4" and it sleeps for 10000ms (10 secs) and waits for an answer (it has to return 0).

and it tries to read 0x7ff bytes of data, which I would expect it to be either strings or a file dropped by malware later for some functionalities.

1|700

Dynamic Analysis

Sadly, as the domain this malware uses is down right now, it will not be possible to see full functionality of malware but as I listed strings before, nearly all of them explain whole purpose of malware, starting with:

  1. Check if executable is being debugged.
  2. Check if currently inside of a VM (checking registry keys)
  3. Create session using hardcoded authorization key
  4. Steal data such as Steam, telegram, chromium, gecko (firefox)
  5. Other information that malware looks for: Computer name, Username, ProductName, Os_Name, InstallDate, timezone, resolution, video card name, cpu name etc. it checks all these using registry.
  6. Another functionality of malware is taking screenshot:
1|700

(function is a little bit longer), this is just part of the screenshot to show it retrives information about graphic modes.

  1. It can get Clipboard data:
1|700
  1. And at the end, sends all these data parts by sending POST request to /core/sendPart to afdprox.icu domain.