YARA · Volexity threat-intel
VOLEXITY_Apt_Malware_Js_Sharpext
A malicious Chrome browser extension used by the SharpPine threat actor to steal Gmail data from a victim.
- Author
- threatintel@volexity.com
- Date
- 2021-09-14
- Modified
- 2025-05-21
- Score / Quality
- 75 / 80
What this rule detects
A malicious Chrome browser extension used by the SharpPine threat actor to steal Gmail data from a victim.
It defines 19 patterns (19 text, 0 hex, 0 regex).
Summary generated from the rule's metadata and condition.
Rule source
rule VOLEXITY_Apt_Malware_Js_Sharpext : SHARPPINE FILE MEMORY
{
meta:
= "A malicious Chrome browser extension used by the SharpPine threat actor to steal Gmail data from a victim."
= "threatintel@volexity.com"
= "61b5176a-ff73-5fce-bc70-c9e09bb5afed"
= "2021-09-14"
= "2025-05-21"
= "https://github.com/volexity/threat-intel"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/2022/2022-07-28 SharpTongue SharpTongue Deploys Clever Mail-Stealing Browser Extension SHARPEXT/yara.yar#L1-L52"
= "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
= "1c9664513fe226beb53268b58b11dacc35b80a12c50c22b76382304badf4eb00"
= "6025c66c2eaae30c0349731beb8a95f8a5ba1180c5481e9a49d474f4e1bb76a4"
= "6594b75939bcdab4253172f0fa9066c8aee2fa4911bd5a03421aeb7edcd9c90c"
= "0ed58c8646582ee36aeac650fac02d1e4962d45c0f6a24783c021d9267bed192"
= 75
= 80
= "SHARPPINE, FILE, MEMORY"
= "all"
= "all"
= "file,memory"
= "critical"
= "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
= 5916
= 5
strings:
$s1 = "\"mode=attach&name=\"" ascii
$s2 = "\"mode=new&mid=\"" ascii
$s3 = "\"mode=attlist\"" ascii
$s4 = "\"mode=list\"" ascii
$s5 = "\"mode=domain\"" ascii
$s6 = "\"mode=black\"" ascii
$s7 = "\"mode=newD&d=\"" ascii
$mark1 = "chrome.runtime.onMessage.addListener" ascii
$mark2 = "chrome.webNavigation.onCompleted.addListener" ascii
$enc1 = "function BSue(string){" ascii
$enc2 = "function BSE(input){" ascii
$enc3 = "function bin2hex(byteArray)" ascii
$xhr1 = ".send(\"mode=cd1" ascii
$xhr2 = ".send(\"mode=black" ascii
$xhr3 = ".send(\"mode=domain" ascii
$xhr4 = ".send(\"mode=list" ascii
$manifest1 = "\"description\":\"advanced font\"," ascii
$manifest2 = "\"scripts\":[\"bg.js\"]" ascii
$manifest3 = "\"devtools_page\":\"dev.html\"" ascii
condition:
(5 of ( $s* ) and all of ( $mark* ) ) or all of ( $enc* ) or 3 of ( $xhr* ) or 2 of ( $manifest* )
}
Strings (19 patterns)
| Identifier | Type | Value | Modifiers |
|---|---|---|---|
| $s1 | text | "\"mode=attach&name=\"" | ascii |
| $s2 | text | "\"mode=new&mid=\"" | ascii |
| $s3 | text | "\"mode=attlist\"" | ascii |
| $s4 | text | "\"mode=list\"" | ascii |
| $s5 | text | "\"mode=domain\"" | ascii |
| $s6 | text | "\"mode=black\"" | ascii |
| $s7 | text | "\"mode=newD&d=\"" | ascii |
| $mark1 | text | "chrome.runtime.onMessage.addListener" | ascii |
| $mark2 | text | "chrome.webNavigation.onCompleted.addListener" | ascii |
| $enc1 | text | "function BSue(string){" | ascii |
| $enc2 | text | "function BSE(input){" | ascii |
| $enc3 | text | "function bin2hex(byteArray)" | ascii |
| $xhr1 | text | ".send(\"mode=cd1" | ascii |
| $xhr2 | text | ".send(\"mode=black" | ascii |
| $xhr3 | text | ".send(\"mode=domain" | ascii |
| $xhr4 | text | ".send(\"mode=list" | ascii |
| $manifest1 | text | "\"description\":\"advanced font\"," | ascii |
| $manifest2 | text | "\"scripts\":[\"bg.js\"]" | ascii |
| $manifest3 | text | "\"devtools_page\":\"dev.html\"" | ascii |
Condition
(5 of ( $s* ) and all of ( $mark* ) ) or all of ( $enc* ) or 3 of ( $xhr* ) or 2 of ( $manifest* )In plain words (Heuristic)
- All patterns in ( $mark* ) must match.
- All patterns in ( $enc* ) must match.
- At least 5 patterns in ( $s* ) must match.
- At least 3 patterns in ( $xhr* ) must match.
- At least 2 patterns in ( $manifest* ) must match.
Test this rule in your browser
Drop a file to scan it with this rule using YARA-X compiled to WebAssembly. Nothing is uploaded.
References
Sample hashes
Hashes of samples the author lists in the rule's meta (look them up in your threat-intelligence platform).
- 1c9664513fe226beb53268b58b11dacc35b80a12c50c22b76382304badf4eb00
- 6025c66c2eaae30c0349731beb8a95f8a5ba1180c5481e9a49d474f4e1bb76a4
- 6594b75939bcdab4253172f0fa9066c8aee2fa4911bd5a03421aeb7edcd9c90c
Licence & attribution
Author: threatintel@volexity.com
Source repository: Volexity threat-intel @ 3a9d0b5245
Licence: BSD 2-Clause License (stated in the rule's own meta)
“See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt”
Copyright notice: Copyright 2022 by Volexity, Inc.
Mirrored via YARA Forge 20260927, which prefixes rule names with the source and adds normalised meta fields.
Rule id: 61b5176a-ff73-5fce-bc70-c9e09bb5afed
Metadata
| os | all |
|---|---|
| os_arch | all |
| scan_context | file,memory |
| severity | critical |
| rule_id | 5916 |
| version | 5 |
Related rules
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2024-07-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-07-21
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-08-17
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2023-03-30
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-02
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03
- APT / threat actorVolexity threat-intel· threatintel@volexity.com· 2022-11-03