MVISION Insights: Analysis of the BHUNT Stealer
Technical Articles ID:
KB95717
Last Modified: 6/8/2022
Last Modified: 6/8/2022
Environment
IMPORTANT: This Knowledge Base article discusses a specific threat that is being automatically tracked by MVISION Insights technology. The content is intended for use by MVISION Insights users, but is provided for general knowledge to all customers. Contact us for more information about MVISION Insights.
Summary
Description of Campaign
The BHUNT modular stealer was used to gather and exfiltrate wallet files, clipboard data, and sensitive information including credentials stored in web browsers. To make analysis difficult, files were packed with Themida and VMProtect. The malicious files were also digitally signed to appear legitimate. The operation targeted entities across the world, but didn't focus on a specific sector.
Our ATR Team gathers and analyzes information from multiple open and closed sources before disseminating intelligence reports. This campaign was researched by Bitdefender and shared publicly.
How to use this article:Threat Hunting
This Knowledge Base article discusses a specific threat that's being tracked. The list of IOCs will change over time; check MVISION Insights for the latest IOCs.
Campaign IOC
Minimum Content Versions
Detection Summary
Minimum set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Endpoint Security - Advanced Threat Protection:
Aggressive set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Host Intrusion Prevention:
The BHUNT modular stealer was used to gather and exfiltrate wallet files, clipboard data, and sensitive information including credentials stored in web browsers. To make analysis difficult, files were packed with Themida and VMProtect. The malicious files were also digitally signed to appear legitimate. The operation targeted entities across the world, but didn't focus on a specific sector.
Our ATR Team gathers and analyzes information from multiple open and closed sources before disseminating intelligence reports. This campaign was researched by Bitdefender and shared publicly.
How to use this article:
- If a Threat Hunting table has been created, use the rules contained to search for malware related to this campaign.
- Review the product detection table and confirm that your environment is at least on the specified content version.
To download the latest content versions, go to the Security Updates page. - Scroll down and review the "Product Countermeasures" section of this article. Consider implementing them if they are not already in place.
- Review
KB91836 - Countermeasures for entry vector threats . - Review KB87843 - Dynamic Application Containment rules and best practices.
- Review KB82925 - Identify what rule corresponds to an Adaptive Threat Protection and Threat Intelligence Exchange event.
meta: author = "ditekSHen" description = "Detects executables packed with VMProtect." snort2_sid = "930049-930051" snort3_sid = "930017" strings: $s1 = ".vmp0" fullword ascii $s2 = ".vmp1" fullword ascii condition: uint16(0) == 0x5a4d and all of them or for any i in (0 .. pe.number_of_sections) : ( ( pe.sections[i].name == ".vmp0" or pe.sections[i].name == ".vmp1" ) ) } |
|
meta: author = "ditekSHen" description = "Detects executables referencing many cryptocurrency mining wallets or apps. Observed in information stealers" strings: $app1 = "Ethereum" nocase ascii wide $app2 = "Bitcoin" nocase ascii wide $app3 = "Litecoin" nocase ascii wide $app4 = "NavCoin4" nocase ascii wide $app5 = "ByteCoin" nocase ascii wide $app6 = "PotCoin" nocase ascii wide $app7 = "Gridcoin" nocase ascii wide $app8 = "VERGE" nocase ascii wide $app9 = "DogeCoin" nocase ascii wide $app10 = "FlashCoin" nocase ascii wide $app11 = "Sia" nocase ascii wide $app12 = "Reddcoin" nocase ascii wide $app13 = "Electrum" nocase ascii wide $app14 = "Emercoin" nocase ascii wide $app15 = "Exodus" nocase ascii wide $app16 = "BBQCoin" nocase ascii wide $app17 = "Franko" nocase ascii wide $app18 = "IOCoin" nocase ascii wide $app19 = "Ixcoin" nocase ascii wide $app20 = "Mincoin" nocase ascii wide $app21 = "YACoin" nocase ascii wide $app22 = "Zcash" nocase ascii wide $app23 = "devcoin" nocase ascii wide $app24 = "Dash" nocase ascii wide $app25 = "Monero" nocase ascii wide $app26 = "Riot Games\\" nocase ascii wide $app27 = "qBittorrent\\" nocase ascii wide $app28 = "Battle.net\\" nocase ascii wide $app29 = "Steam\\" nocase ascii wide $app30 = "Valve\\Steam\\" nocase ascii wide $app31 = "Anoncoin" nocase ascii wide $app32 = "DashCore" nocase ascii wide $app33 = "DevCoin" nocase ascii wide $app34 = "DigitalCoin" nocase ascii wide $app35 = "Electron" nocase ascii wide $app36 = "ElectrumLTC" nocase ascii wide $app37 = "FlorinCoin" nocase ascii wide $app38 = "FrancoCoin" nocase ascii wide $app39 = "JAXX" nocase ascii wide $app40 = "MultiDoge" ascii wide $app41 = "TerraCoin" ascii wide $app42 = "Electrum-LTC" ascii wide $app43 = "ElectrumG" ascii wide $app44 = "Electrum-btcp" ascii wide $app45 = "MultiBitHD" ascii wide $app46 = "monero-project" ascii wide $app47 = "Bitcoin-Qt" ascii wide $app48 = "BitcoinGold-Qt" ascii wide $app49 = "Litecoin-Qt" ascii wide $app50 = "BitcoinABC-Qt" ascii wide $app51 = "Exodus Eden" ascii wide $app52 = "myether" ascii wide $app53 = "factores-Binance" ascii wide $app54 = "metamask" ascii wide $app55 = "kucoin" ascii wide $app56 = "cryptopia" ascii wide $app57 = "binance" ascii wide $app58 = "hitbtc" ascii wide $app59 = "litebit" ascii wide $app60 = "coinEx" ascii wide $app61 = "blockchain" ascii wide $app62 = "\\Armory" ascii wide $app63 = "\\Atomic" ascii wide $app64 = "\\Bytecoin" ascii wide $app65 = "simpleos" ascii wide $app66 = "WalletWasabi" ascii wide $app67 = "atomic\\" ascii wide $app68 = "Guarda\\" ascii wide $app69 = "Neon\\" ascii wide $app70 = "Blockstream\\" ascii wide $app71 = "GreenAddress Wallet\\" ascii wide $app72 = "bitpay\\" ascii wide $ne1 = "C:\\src\\pgriffais_incubator-w7\\Steam\\main\\src\\external\\libjingle-0.4.0\\talk/base/scoped_ptr.h" fullword wide $ne2 = "\"%s\\bin\\%slauncher.exe\" -hproc %x -hthread %x -baseoverlayname %s\\%s" fullword ascii condition: uint16(0) == 0x5a4d and (not any of ($ne*) and 6 of them) } |
This Knowledge Base article discusses a specific threat that's being tracked. The list of IOCs will change over time; check MVISION Insights for the latest IOCs.
Minimum Content Versions
Detection Summary
Minimum set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Endpoint Security - Advanced Threat Protection:
Rule ID: 4 Use GTI file reputation to identify trusted or malicious files
Aggressive set of Manual Rules to improve protection to block this campaign:
IMPORTANT: Always follow best practices when you enable new rules and signatures.
When you implement new rules or signatures, always set them to Report mode first and check the alerts generated. Resolve any issues that arise and then set the rules to Block. This step mitigates against triggering false positives and allows you to refine your configuration.
For more information, see KB87843 - List of and best practices for Endpoint Security Dynamic Application Containment rules.
Host Intrusion Prevention:
Rule ID: 1148 CMD Tool Access by a Network Aware Application
Rule ID: 6011 Generic Application Invocation Protection
Rule ID: 6010 Generic Application Hooking Protection
Rule ID: 6011 Generic Application Invocation Protection
Rule ID: 6010 Generic Application Hooking Protection