Skip to content

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.

APT / threat actorVolexity threat-intelBSD 2-Clause LicenseCompiles with YARA-X
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

apt-malware-js-sharpext.yarBSD 2-Clause License
rule VOLEXITY_Apt_Malware_Js_Sharpext : SHARPPINE FILE MEMORY
{
	meta:
		description = "A malicious Chrome browser extension used by the SharpPine threat actor to steal Gmail data from a victim."
		author = "threatintel@volexity.com"
		id = "61b5176a-ff73-5fce-bc70-c9e09bb5afed"
		date = "2021-09-14"
		modified = "2025-05-21"
		reference = "https://github.com/volexity/threat-intel"
		source_url = "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"
		license_url = "https://github.com/volexity/threat-intel/blob/3a9d0b52459877ee866a9a0ba06e60059b778c77/LICENSE.txt"
		hash = "1c9664513fe226beb53268b58b11dacc35b80a12c50c22b76382304badf4eb00"
		hash = "6025c66c2eaae30c0349731beb8a95f8a5ba1180c5481e9a49d474f4e1bb76a4"
		hash = "6594b75939bcdab4253172f0fa9066c8aee2fa4911bd5a03421aeb7edcd9c90c"
		logic_hash = "0ed58c8646582ee36aeac650fac02d1e4962d45c0f6a24783c021d9267bed192"
		score = 75
		quality = 80
		tags = "SHARPPINE, FILE, MEMORY"
		os = "all"
		os_arch = "all"
		scan_context = "file,memory"
		severity = "critical"
		license = "See license at https://github.com/volexity/threat-intel/blob/main/LICENSE.txt"
		rule_id = 5916
		version = 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)

IdentifierTypeValueModifiers
$s1text"\"mode=attach&name=\""ascii
$s2text"\"mode=new&mid=\""ascii
$s3text"\"mode=attlist\""ascii
$s4text"\"mode=list\""ascii
$s5text"\"mode=domain\""ascii
$s6text"\"mode=black\""ascii
$s7text"\"mode=newD&d=\""ascii
$mark1text"chrome.runtime.onMessage.addListener"ascii
$mark2text"chrome.webNavigation.onCompleted.addListener"ascii
$enc1text"function BSue(string){"ascii
$enc2text"function BSE(input){"ascii
$enc3text"function bin2hex(byteArray)"ascii
$xhr1text".send(\"mode=cd1"ascii
$xhr2text".send(\"mode=black"ascii
$xhr3text".send(\"mode=domain"ascii
$xhr4text".send(\"mode=list"ascii
$manifest1text"\"description\":\"advanced font\","ascii
$manifest2text"\"scripts\":[\"bg.js\"]"ascii
$manifest3text"\"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.

Drop a file here or click to chooseScanned locally with YARA-X. Files up to 200 MB.

Open in editor

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.

Original rule

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

osall
os_archall
scan_contextfile,memory
severitycritical
rule_id5916
version5

Tags:SHARPPINEFILEMEMORY