APT44: Unearthing Sandworm
Common Information
Type | Value |
---|---|
UUID | 6b576fe9-968e-46ac-b619-848c395714ea |
Fingerprint | efa07dc1a453623b70ec432b55bd7e2a61e23331a1d0cd95c7e8c20706166863 |
Analysis status | DONE |
Considered CTI value | 2 |
Text language | |
Published | April 17, 2024, 4:02 p.m. |
Added to db | April 18, 2024, 11:44 a.m. |
Last updated | Aug. 31, 2024, 1:19 a.m. |
Headline | APT44: Unearthing Sandworm |
Title | APT44: Unearthing Sandworm |
Detected Hints/Tags/Attributes | 284/3/235 |
Source URLs
Redirection | Url | |
---|---|---|
Details | Source | https://services.google.com/fh/files/misc/apt44-unearthing-sandworm.pdf |
URL Provider
Attributes
Details | Type | #Events | CTI | Value |
---|---|---|---|---|
Details | Mandiant Security Validation Actions | 2 | A106-440 |
|
Details | Mandiant Security Validation Actions | 1 | A107-008 |
|
Details | Mandiant Security Validation Actions | 1 | A102-576 |
|
Details | Mandiant Security Validation Actions | 1 | A102-796 |
|
Details | Mandiant Security Validation Actions | 1 | A102-797 |
|
Details | Mandiant Security Validation Actions | 1 | A102-798 |
|
Details | Mandiant Security Validation Actions | 1 | A102-788 |
|
Details | Mandiant Security Validation Actions | 1 | A102-789 |
|
Details | Mandiant Security Validation Actions | 1 | A102-790 |
|
Details | Mandiant Security Validation Actions | 1 | A102-791 |
|
Details | Mandiant Security Validation Actions | 1 | A102-792 |
|
Details | Mandiant Security Validation Actions | 1 | A102-793 |
|
Details | Mandiant Security Validation Actions | 1 | A102-794 |
|
Details | Mandiant Security Validation Actions | 1 | A102-795 |
|
Details | Mandiant Security Validation Actions | 1 | A105-313 |
|
Details | Mandiant Security Validation Actions | 1 | A103-624 |
|
Details | Mandiant Security Validation Actions | 1 | A103-613 |
|
Details | Mandiant Security Validation Actions | 1 | A101-388 |
|
Details | Mandiant Security Validation Actions | 1 | A101-389 |
|
Details | Mandiant Security Validation Actions | 1 | A106-990 |
|
Details | Mandiant Security Validation Actions | 1 | A107-018 |
|
Details | Mandiant Security Validation Actions | 1 | A107-029 |
|
Details | Mandiant Security Validation Actions | 1 | A107-043 |
|
Details | Mandiant Security Validation Actions | 1 | A103-166 |
|
Details | Mandiant Security Validation Actions | 1 | A103-167 |
|
Details | Mandiant Security Validation Actions | 1 | A103-168 |
|
Details | Mandiant Security Validation Actions | 1 | A103-169 |
|
Details | Mandiant Security Validation Actions | 2 | A106-442 |
|
Details | Mandiant Security Validation Actions | 1 | A107-009 |
|
Details | Mandiant Security Validation Actions | 1 | A102-993 |
|
Details | Mandiant Security Validation Actions | 1 | A107-012 |
|
Details | Mandiant Security Validation Actions | 1 | A107-011 |
|
Details | Mandiant Security Validation Actions | 1 | A101-887 |
|
Details | Mandiant Security Validation Actions | 1 | A101-390 |
|
Details | Mandiant Security Validation Actions | 1 | A102-573 |
|
Details | Mandiant Security Validation Actions | 1 | A102-574 |
|
Details | Mandiant Security Validation Actions | 1 | A102-662 |
|
Details | Mandiant Security Validation Actions | 1 | A106-995 |
|
Details | Mandiant Security Validation Actions | 1 | A105-426 |
|
Details | Mandiant Security Validation Actions | 1 | A105-427 |
|
Details | Mandiant Security Validation Actions | 1 | A105-428 |
|
Details | Mandiant Security Validation Actions | 1 | A105-429 |
|
Details | Mandiant Security Validation Actions | 1 | A102-663 |
|
Details | Mandiant Security Validation Actions | 1 | A103-614 |
|
Details | Mandiant Security Validation Actions | 1 | A107-023 |
|
Details | Mandiant Security Validation Actions | 1 | A107-019 |
|
Details | Mandiant Security Validation Actions | 1 | A106-009 |
|
Details | Mandiant Security Validation Actions | 1 | A106-546 |
|
Details | Mandiant Security Validation Actions | 1 | A106-547 |
|
Details | Mandiant Security Validation Actions | 1 | A107-030 |
|
Details | Mandiant Security Validation Actions | 1 | A102-579 |
|
Details | Mandiant Security Validation Actions | 1 | A102-580 |
|
Details | Mandiant Security Validation Actions | 1 | A102-581 |
|
Details | Mandiant Security Validation Actions | 1 | A101-287 |
|
Details | Mandiant Security Validation Actions | 1 | A106-997 |
|
Details | Mandiant Security Validation Actions | 1 | A106-988 |
|
Details | Mandiant Security Validation Actions | 1 | A107-035 |
|
Details | Mandiant Security Validation Actions | 1 | A107-034 |
|
Details | Mandiant Security Validation Actions | 1 | A107-039 |
|
Details | Mandiant Security Validation Actions | 1 | A107-022 |
|
Details | Mandiant Security Validation Actions | 1 | A107-032 |
|
Details | Mandiant Security Validation Actions | 1 | A107-044 |
|
Details | Mandiant Security Validation Actions | 1 | A107-014 |
|
Details | Mandiant Security Validation Actions | 1 | A107-042 |
|
Details | Mandiant Security Validation Actions | 1 | A107-036 |
|
Details | Mandiant Security Validation Actions | 1 | A101-158 |
|
Details | Mandiant Security Validation Actions | 1 | A103-626 |
|
Details | Mandiant Security Validation Actions | 1 | A107-041 |
|
Details | Mandiant Security Validation Actions | 1 | A107-007 |
|
Details | Mandiant Security Validation Actions | 1 | A107-020 |
|
Details | Mandiant Security Validation Actions | 1 | A105-030 |
|
Details | Mandiant Security Validation Actions | 2 | A106-437 |
|
Details | Mandiant Security Validation Actions | 1 | A107-002 |
|
Details | Mandiant Security Validation Actions | 1 | A106-989 |
|
Details | Mandiant Security Validation Actions | 1 | A107-004 |
|
Details | Mandiant Security Validation Actions | 1 | A106-107 |
|
Details | Mandiant Security Validation Actions | 1 | A107-005 |
|
Details | Mandiant Security Validation Actions | 1 | A105-346 |
|
Details | Mandiant Security Validation Actions | 1 | A105-143 |
|
Details | Mandiant Security Validation Actions | 1 | A105-349 |
|
Details | Mandiant Security Validation Actions | 1 | A105-350 |
|
Details | Mandiant Security Validation Actions | 1 | A107-028 |
|
Details | Mandiant Security Validation Actions | 1 | A107-021 |
|
Details | Mandiant Security Validation Actions | 1 | A107-003 |
|
Details | Mandiant Security Validation Actions | 1 | A107-040 |
|
Details | Mandiant Security Validation Actions | 1 | A107-015 |
|
Details | Mandiant Security Validation Actions | 1 | A107-025 |
|
Details | Mandiant Security Validation Actions | 1 | A106-104 |
|
Details | Mandiant Security Validation Actions | 1 | A107-017 |
|
Details | Mandiant Security Validation Actions | 1 | A107-037 |
|
Details | Mandiant Security Validation Actions | 1 | A104-979 |
|
Details | Mandiant Security Validation Actions | 1 | A106-987 |
|
Details | Mandiant Security Validation Actions | 1 | A105-015 |
|
Details | Mandiant Security Validation Actions | 1 | A106-105 |
|
Details | Mandiant Security Validation Actions | 1 | A106-010 |
|
Details | Mandiant Security Validation Actions | 1 | A107-006 |
|
Details | Mandiant Security Validation Actions | 1 | A106-992 |
|
Details | Mandiant Security Validation Actions | 1 | A106-991 |
|
Details | Mandiant Security Validation Actions | 1 | A106-371 |
|
Details | Mandiant Security Validation Actions | 1 | A106-372 |
|
Details | Mandiant Uncategorized Groups | 1 | UNC1908 |
|
Details | Mandiant Uncategorized Groups | 1 | UNC4209 |
|
Details | Pdb | 1 | c:\\users\\user\\desktop\\imageagent\\imageagent\\preagent\\src\\builder\\agent.pdb |
|
Details | Threat Actor Identifier - APT | 20 | APT44 |
|
Details | Threat Actor Identifier - APT | 783 | APT28 |
|
Details | Url | 4 | https://twitter.com/esetresearch/status/1496581903205511181 |
|
Details | Url | 1 | https://artikrh.github.io/posts/weevely-backdoor-analysis |
|
Details | Url | 1 | https://github.com/epinna/weevely3/tree/master/core |
|
Details | Yara rule | 1 | rule M_APT_Downloader_BACKORDER_1 { meta: author = "Mandiant" description = "This rule is designed to detect on events related to BACKORDER. BACKORDER is a downloader written in GoLang which download and executes a second stage payload from a remote server. BACKORDER is usually delivered within trojanized installer files and is hard coded to execute the original setup executable." strings: $go = "Go build ID:" ascii wide $a1 = "main.proc1esar" $a2 = "main.obt_zip" $a3 = "main.un1_zip" $a4 = "main.primer1_paso" condition: uint16(0) == 0x5a4d and filesize < 10MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Downloader_BACKORDER_2 { meta: author = "Mandiant" description = "Detects strings and sleep timer in the BACKORDER downloader" strings: $ = "data/setup.exe" $ = "http://" $ = { C7 04 ?? 00 CA 9A 3B C7 44 ?? 04 00 00 00 00 E8 } condition: uint16(0) == 0x5a4d and filesize < 10MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_NIKOWIPER_1 { meta: author = "Mandiant" description = "Detects code in NIKOWIPER" strings: $ = "SDelete" $ = "-accepteula -r -s -q " wide $ = { 68 ?? ?? 02 00 68 } condition: uint16(0) == 0x5a4d and filesize < 2MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_NIKOWIPER_2 { meta: author = "Mandiant" description = "NikoWiper unique strings" strings: $sdelete = "SDelete is set for %d pass" ascii wide $dlihost = { 77 00 73 00 [3] 5C 00 53 00 [3] 79 00 73 00 [3] 74 00 65 00 [3] 6D 00 33 00 [3] 32 00 5C 00 [3] 63 00 6D 00 [3] 64 00 2E 00 [3] 65 00 78 00 [3] 65 00 00 00 [3] 43 00 3A 00 [3] 5C 00 57 00 [3] 69 00 6E 00 [3] 64 00 6F 00 [3] 77 00 73 00 [3] 5C 00 64 00 [3] 6C 00 49 00 [3] 68 00 6F 00 [3] 73 00 74 00 [3] 2E 00 65 00 [3] 78 00 65 00 } condition: uint16(0) == 0x5a4d and filesize < 2MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_NIKOWIPER_MBR_1 { meta: author = "Mandiant" description = "Detects code in NIKOWIPER.MBR" strings: $ = { FF 37 FF 15 [4] 8B 4D F8 } $ = { 69 C0 60 EA 00 00 50 FF 15 } $ = { 8D 85 90 FB FF FF 68 00 02 00 00 50 E8 } $ = { 68 ?? ?? 02 00 68 [4] 56 FF 15 } $ = { 68 00 00 07 00 57 FF D0 } $ = { 8B B5 9C FB FF FF C1 E6 04 } condition: uint16(0) == 0x5a4d and filesize < 2MB and all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_Windows_Powershell_HTTPHeaderParsing_1 { meta: author = "Mandiant" description = "Finds powershell 1-liners typically used in webshells to decode an HTTP header variable and use it as a command" strings: $httpParser1 = /getstring\(convert\.frombase64string\(([\w\d_]+)?\(request\.headers\.get\(['"][\w\d_]+['"]/ ascii wide nocase condition: filesize < 2MB and all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_REGEORG_Tunneller_Generic_1 { meta: author = "Mandiant" strings: $s1 = "System.Net.IPEndPoint" $s2 = "Response.AddHeader" $s3 = "Request.InputStream.Read" $s4 = "Request.Headers.Get" $s5 = "Response.Write" $s6 = "System.Buffer.BlockCopy" $s7 = "Response.BinaryWrite" $s8 = "SocketException soex" condition: filesize < 1MB and 7 of them } |
|
Details | Yara rule | 1 | rule M_APT_Webshell_BRUSHPASS_1 { meta: author = "Mandiant" description = "Detects the string in the BRUSHPASS webshell" strings: $ = ".DataSource = " $ = "<%@ Page Language=" $ = "RedirectStandardOutput = true;" $ = "UseShellExecute = false;" $ = ".WindowStyle = ProcessWindowStyle.Hidden;" $ = " -Direction inbound -Profile Any -Action Allow -LocalPort" condition: filesize < 5MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Dropper_NEWRETURN_2 { meta: author = "Mandiant" description = "Detects strings in the NEWRETURN payloads" strings: $a1 = "GetLists" $a2 = "GetBuffer" $a3 = "Delays" $a4 = "InvokeMember" $a5 = "Array" $o1 = { 1F 8B 08 00 00 00 00 00 04 00 } $o2 = "http://" $a6 = "Form1" $a7 = "mscoree.dll" condition: all of ($a*) and ($o1 or $o2) } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_SPAREPART_Strings { meta: author = "Mandiant" description = "Detects the PDB and a struct used in SPAREPART" strings: $pdb = "c:\\Users\\user\\Desktop\\ImageAgent\\ImageAgent\\PreAgent\\src\\builder\\agent.pdb" ascii nocase $struct = { 44 89 AC ?? ?? ?? ?? ?? 4? 8B AC ?? ?? ?? ?? ?? 4? 83 C5 28 89 84 ?? ?? ?? ?? ?? 89 8C ?? ?? ?? ?? ?? 89 54 ?? ?? 44 89 44 ?? ?? 44 89 4C ?? ?? 44 89 54 ?? ?? 44 89 5C ?? ?? 89 5C ?? ?? 89 7C ?? ?? 89 74 ?? ?? 89 6C ?? ?? 44 89 74 ?? ?? 44 89 7C ?? ?? 44 89 64 ?? ?? 8B 84 ?? ?? ?? ?? ?? 44 8B C8 8B 84 ?? ?? ?? ?? ?? 44 8B C0 4? 8D 15 ?? ?? ?? ?? 4? 8B CD FF 15 ?? ?? ?? ?? } condition: (uint16(0) == 0x5A4D) and uint32(uint32(0x3C)) == 0x00004550 and $pdb and $struct and filesize < 20KB } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_SPAREPART_SleepGenerator { meta: author = "Mandiant" description = "Detects the algorithm used to determine the next sleep timer" strings: $ = { C1 E8 06 89 [5] C1 E8 02 8B } $ = { C1 E9 03 33 C1 [3] C1 E9 05 33 C1 83 E0 01 } $ = { 8B 80 FC 00 00 00 } $ = { D1 E8 [4] C1 E1 0F 0B C1 } condition: all of them } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_QUICKTOW_1 { meta: author = "Mandiant" description = "Hunting rule looking for QUICKTOW by strings." strings: $useragent = { 4D 6F 7A 69 6C 6C 61 2F 35 2E 30 20 28 57 69 6E 64 6F 77 73 20 4E 54 20 31 30 2E 30 3B 20 57 4F 57 36 34 29 20 41 70 70 6C 65 57 65 62 4B 69 74 2F 35 33 37 2E 33 36 20 28 4B 48 54 4D 4C 2C 20 6C 69 6B 65 20 47 65 63 6B 6F 29 20 43 68 72 6F 6D 65 2F 31 30 31 2E 30 2E 34 39 35 31 2E 35 34 20 53 61 66 61 72 69 2F 35 33 37 2E 33 36 } $s1 = "NewErgoClientSessions" ascii nocase $s2 = "SetDisconnected" ascii nocase $s3 = "IsDisconnected" ascii nocase $s4 = "getDelay" ascii nocase $s5 = "setDelay" ascii nocase $s6 = "getMessagesFromServer" ascii nocase $s7 = "getOneMessageFromServer" ascii nocase $s8 = "getMessagesFromServer" ascii nocase condition: ((uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) or uint16(0) == 0x457f) and filesize < 20MB and $useragent and (6 of ($s*)) } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_QUICKTOW_2 { meta: author = "Mandiant" description = "Function names matching QUICKTOW" strings: $go = "Go build" ascii wide $str1 = "main.(*Client).Auth" ascii wide $str2 = "main.(*Client).Disconnect" ascii wide $str3 = "main.(*Client).Disconnect.func1" ascii wide $str4 = "main.(*Client).IsDisconnected" ascii wide $str5 = "main.(*Client).MakeMessage" ascii wide $str6 = "main.(*Client).NewErgoClientSessions" ascii wide $str7 = "main.(*Client).NewHTTPHandler" ascii wide $str8 = "main.(*Client).NewSession" ascii wide $str9 = "main.(*Client).ProcessingMessages" ascii wide $str10 = "main.(*Client).RandomSleep" ascii wide $str11 = "main.(*Client).SetDisconnected" ascii wide $str12 = "main.(*Client).getDelay" ascii wide $str13 = "main.(*Client).getMessagesFromServer" ascii wide $str14 = "main.(*Client).getOneMessageFromServer" ascii wide $str15 = "main.(*Client).setDelay" ascii wide $str16 = "main.(*ErgoHTTPHandler).Lock" ascii wide $str17 = "main.(*ErgoHTTPHandler).Unlock" ascii wide $str18 = "main.(*ErgoHTTPHandler).doRequest" ascii wide $str19 = "main.(*Session).IsAlive" ascii wide $str20 = "main.(*Session).Lock" ascii wide $str21 = "main.(*Session).MakeMessage" ascii wide $str22 = "main.(*Session).ResetAlive" ascii wide $str23 = "main.(*Session).SetAlive" ascii wide $str24 = "main.(*Session).Unlock" ascii wide $str25 = "main.(*Session).getDelay" ascii wide $str26 = "main.(*Session).getMessagesForSession" ascii wide $str27 = "main.(*Session).getOneMessageForSession" ascii wide $str28 = "main.(*Session).handle" ascii wide $str29 = "main.(*Session).handle.func1" ascii wide $str30 = "main.(*Session).processingMessage" ascii wide $str31 = "main.(*Session).setDelay" ascii wide $str32 = "main.(*Sessions).Add" ascii wide $str33 = "main.(*Sessions).Range" ascii wide $str34 = "main.GetHash" ascii wide $str35 = "main.NewAddress" ascii wide $str36 = "main.NewClient" ascii wide condition: (uint16(0) == 0x5a4d or uint16(0) == 0x457f) and filesize < 20MB and $go and 30 of ($str*) } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_EARLYBLOOM_1 { meta: author = "Mandiant" description = "Code blocks indicative of EARLYBLOOM." strings: $code1 = { 8B 4D ?? 3B 4D ?? 73 24 8B 55 ?? 8B 45 ?? 8B 0A 33 48 ?? 8B 55 ?? 89 0A 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 4D ?? 83 C1 ?? 89 4D ?? EB CB } $code2 = { 83 7D ?? 00 7C 20 8B 45 ?? 83 E0 ?? 83 E8 ?? F7 D0 89 45 ?? 8B 4D ?? D1 E9 8B 55 ?? 23 55 ?? 33 CA 89 4D ?? EB D1 } condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Backdoor_EARLYBLOOM_2 { meta: author = "Mandiant" description = "Hunting rule looking for EARLYBLOOM, a backdoor written in C++ that communicates over HTTPS." strings: $a1 = "bsd.bst" xor $a2 = "bat.bdt" xor $a3 = "chkdsk.exe" xor $a4 = "Windows check disk" xor $a5 = "https://" xor condition: uint16(0) == 0x5a4d and uint32(uint32(0x3C)) == 0x00004550 and filesize < 300KB and 3 of ($a*) } |
|
Details | Yara rule | 1 | rule M_Hunting_TANKTRAP_XML_1 { meta: author = "Mandiant" description = "Strings associated TANKTRAP XML GPO policy" strings: $r1 = /ImmediateTask clsid=\"\{9F030D12-DDA3-4C26-8548-B7CE9151166A\}\" name=\"[a-zA-Z]{5}\"/ condition: filesize < 5MB and all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_TANKTRAP_PS1_1 { meta: author = "Mandiant" description = "Strings associated TANKTRAP PowerShell" strings: $s1 = "ImmediateTaskV2 clsid = \"{9756B581-76EC-4169-9AFC-0CA8D43ADB5F}\"" $s2 = "SharpGPOAbuse" $s3 = "GuidExtension \"AADCED64-746C-4633-A97C-D61349046527\"" $s4 = "ImmediateTaskV2 clsid = \"\"{9756B581-76EC-4169-9AFC-0CA8D43ADB5F}\"" condition: filesize < 5MB and 3 of them } |
|
Details | Yara rule | 1 | rule M_APT_Launcher_ARGUEPATCH_1 { meta: author = "Mandiant" description = "Identifies the code used by the sleep functionality in ARGUEPATCH" strings: $ = { 2B ?? 81 F? 00 2E 93 02 } $ = { 83 C0 18 6B C0 3C [5-12] 69 C0 60 EA 00 00 } $ = { 68 00 DD 6D 00 } condition: filesize < 5MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Launcher_ARGUEPATCH_2 { meta: description = "To detect executable with patched function used to load encrypted shellcode" author = "Mandiant" strings: $xor_loop = { 8A 01 33 D2 8B 7D ?? 32 04 57 42 88 01 83 FA 10 72 F2 FF 4D ?? 41 39 5D ?? 75 E5 } condition: (uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) and $xor_loop } |
|
Details | Yara rule | 1 | rule M_APT_Launcher_ARGUEPATCH_3 { meta: description = "arguepatch malware family" strings: $p00_0 = { 85 FF 74 ?? 83 FF ?? 75 ?? 33 DB 8B FB EB ?? A1 [4] 6A } $p00_1 = { 8A 06 46 84 C0 75 ?? 2B F2 3B F3 5E 73 ?? 51 } $p01_0 = { 2B C1 83 E0 ?? 3D [4] 72 ?? 8B 51 ?? 83 C0 ?? 2B CA 83 C1 ?? 83 F9 } $p01_1 = { 75 ?? EB ?? 80 3D [5] 74 ?? CC 68 [4] E8 [4] 80 3D [5] 74 } condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (($p00_0 in (92000 .. 99000) and $p00_1 in (640 .. 8300)) or ($p01_0 in (170000 .. 190000) and $p01_1 in (140000 .. 160000))) } |
|
Details | Yara rule | 1 | rule M_APT_Dropper_FREETOW_1 { meta: author = "Mandiant" strings: $hex49_add_arg_check = { 83 C1 49 88 08 FF D0 } $shell32_stack_string = { C7 ( 41 | 42 | 43 | 45 | 46 | 47 ) ?? 73 68 65 6C C7 ( 41 | 42 | 43 | 45 | 46 | 47 ) ?? 6C 33 32 2E C7 ( 41 | 42 | 43 | 45 | 46 | 47 ) ?? 64 6C 6C 00 } condition: filesize < 5MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Dropper_FREETOW_2 { meta: author = "Mandiant" strings: $push_ror13_api_hash_getcommandlinew = { 68 55 CE E0 2E } $push_ror13_api_hash_loadlibrary = { 68 4C 77 26 07 } $push_ror13_api_hash_virtualalloc = { 68 58 A4 53 E5 } $ror13_api_hash_commandlinetoargw = { 11 4B AF 1C } condition: filesize < 5MB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Dropper_FREETOW_3 { meta: author = "Mandiant" strings: $func_args1 = { 6A 40 68 00 10 00 00 6A 10 6A 00 } $func_args2 = { 6A 40 68 00 10 00 00 68 00 00 40 00 6A 00 } condition: all of them } |
|
Details | Yara rule | 1 | rule M_APT_Dropper_FREETOW_4 { meta: author = "Mandiant" description = "Patched ftp with shellcode, run with z option to launch." strings: $h1 = { 0F B7 09 83 C1 49 88 08 FF D0 } $h2 = { 80 CA FF 2A 11 88 11 41 3B C8 76 F4 } $s1 = "local-file:" $s2 = "xpsp2res.dll" $s3 = "anonymous" condition: uint16(0) == 0x5A4D and filesize < 50KB and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Worm_Win32_ITCHYSPARK_1 { meta: author = "Mandiant" description = "Looking for ITCHYSPARK samples based on opcode patterns observed on relevant functions." strings: $b1 = { 5? 5? 8B ?? 8B [2] 2B ?? C1 ?? 02 8D [2] 8D [2] 8D [2] 85 ?? 7? ?? 8B ?? 8D [2] 8B ?? 33 ?? 8B ?? 4? 89 ?? 8D ?? 85 ?? 7? ?? 8B ?? 81 ?? A3 B1 29 4A 5? 5? 5? C3 } $b2 = { 6A 01 5? 6A 00 FF ?? 83 F8 ?? 0F 8? [4] 8B [2] E8 [4] 8B ?? 85 ?? 0F 8? [4] 6A 01 8D [2] 5? 5? FF ?? 85 C0 0F 8? [4] 33 ?? 89 [2] 39 ?? 0F 8? [4] 8D [2] 89 [2] 83 [2] 02 0F 8? [4] 83 [2] 04 0F 8? } $b3 = { 5? 5? 5? 68 AE 00 00 00 6A 02 89 [2] 89 [2] FF ?? 83 ?? 6F 0F 8? [4] 8B [2] E8 [4] 8B ?? 89 [2] 85 ?? 0F 8? [4] 8D [2] 5? 5? 6A 00 68 AE 00 00 00 6A 02 FF ?? 85 ?? 0F 8? } $b4 = { 5? 6A 65 5? 89 [2] FF 15 [4] 85 C0 0F 8? [4] 8B [2] 85 C0 0F 8? [4] [4-12] 85 ?? 0F 8? [4] 81 ?? F4 01 00 00 7? } condition: (uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Worm_Win32_ITCHYSPARK_3 { meta: author = "Mandiant" description = "Looking for SMB spreader component of ITCHYSPARK (ITCHYSPARK.SMB) samples based on op code patterns observed on relevant functions." strings: $b1 = { E8 [4] 5? 84 C0 7? ?? 8D ?? 24 ?? 5? 68 02 02 00 00 FF 15 [4] 85 C0 7? ?? 8D ?? 24 ?? 8D ?? 24 ?? 4? FF 15 [4] 5? FF 15 } $b2 = { 80 ?? 01 7? ?? 80 ?? 02 7? ?? 33 ?? B? [4] 80 ?? 01 6A 04 5? 0F 45 ?? 0F B7 ?? 33 C0 80 F? 01 0F 45 ?? 80 F? 02 7? ?? 6A 02 5? B? [4] 33 ?? 33 ?? 66 3B ?? 7? ?? 8B [2] 0F B7 ?? 8B [2] 89 [2] E8 [4] 8B ?? 83 F? 12 7? ?? 4? 66 3B ?? 7? } $b3 = { ( 68 | FF ) [2-4] FF 7? ?? 68 [4] 5? E8 [4] A1 60 F0 04 10 8B ?? 89 45 ?? 66 A1 [4] 66 89 45 ?? [4-12] E8 [4] 6A 12 5? } $b4 = { 33 ?? 89 [2] 8B ?? 85 [4] 89 46 ?? 33 C0 89 [2] 66 39 45 ?? 7? ?? 8B [2] EB ?? 0F B7 ?? 4? 89 [2] 8B ?? 85 [4] 8B [2] [8-16] 85 ?? 7? ?? 6A 00 33 C0 4? 5? 6A 02 5? 5? FF } $b5 = { E8 [4] 3B ?? 7? ?? 8B [2] B? 06 02 FC 23 3B ?? 7? ?? 7? ?? 3? 05 01 28 0A 7? ?? 3? 05 02 CE 0E 7? ?? 3? 06 00 72 17 7? ?? 3? 06 01 B0 1D 7? ?? 3? 06 01 B1 1D 7? ?? 3? 06 02 F0 23 7? ?? [0-32] 3? 06 03 80 25 7? ?? 3? 0A 00 00 28 7? ?? 3? 0A 00 5A 29 7? ?? 3? 0A 00 39 38 7? ?? 3? 0A 00 D7 3A 7? ?? B? 9A 08 00 00 EB ?? } condition: (uint16(0) == 0x5A4D) and (uint32(uint32(0x3C)) == 0x00004550) and 3 of them } |
|
Details | Yara rule | 1 | rule M_APT_Tunneler_GOGETTER_1 { meta: author = "Mandiant" description = "Hunting for GOGETTER ELF files." strings: $g1 = "go.buildid" $g2 = "Go build ID:" $g3 = "Go buildinf:" $proxy1 = "proxy/pkg/client.(*Client)" $proxy2 = "proxy/pkg/" $yamux = "hashicorp/yamux" condition: filesize < 25MB and uint32(0) == 0x464c457f and any of ($g*) and all of ($proxy*) and $yamux } |
|
Details | Yara rule | 1 | rule M_APT_Tunneler_GOGETTER_2 { meta: author = "Mandiant" strings: $s1 = "\x00github.com/hashicorp/yamux.Client\x00" $s2 = "\x00github.com/hashicorp/yamux.(*Session).AcceptStream\x00" $sb1 = { 8D ?? 24 [1-5] 89 04 24 E8 [4-5] 8B 44 24 [1-2] 8B 4C 24 [4-32] 83 ?? 03 75 0D 66 81 3? 65 6E 75 06 80 7? 02 64 7? [1-2] C7 04 24 00 00 00 00 E8 } condition: (uint32(0) == 0x464c457f) and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Tunneler_GOGETTER_3 { meta: author = "Mandiant" strings: $sb1 = { 48 C7 ?? 24 [4] 00 10 00 00 48 C7 ?? 24 [4] 00 10 00 00 48 8D 15 [4] 48 89 ?? 24 [4] 48 8B ?? 24 ?? 48 89 ?? 24 [4] 48 C7 ?? 24 [4] FF FF FF FF 48 C7 ?? 24 [4] FF FF FF FF [32-150] 48 8D ?? 24 [4] 0F 1F 40 00 E8 [4] 48 8? ?? 0F 85 [4] 48 89 ?? 24 ?? 48 89 ?? 24 ?? 48 89 D9 48 89 C3 48 8D 44 24 ?? E8 [4] 48 89 ?? 24 ?? 48 89 ?? 24 ?? E8 [4] 48 8B 4C 24 ?? 0F 1F 40 00 48 3? ?? 7? ?? 48 8? ?? 48 8B 44 24 ?? E8 [4] 84 C0 } condition: (uint16(0) == 0x5A4D) and (uint32(uint32(0x3C)) == 0x00004550) and (uint16(uint32(0x3C) + 0x18) == 0x020B) and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Wiper_CADDYWIPER_1 { meta: author = "Mandiant" description = "Searches for the Physical Device call within CADDYWIPER" strings: $ = { 00 00 A0 00 } $ = { 43 3A 5C 55 C7 ?? ?? 73 65 72 73 } $ = { C7 45 FC 44 3A 5C 00 } condition: all of them } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_NEARTWIST_1 { meta: author = "Mandiant" strings: $mersenne_alg = { D1 EA 83 E1 01 69 C9 DF B0 08 99 33 CA } $s1 = "PhysicalDrive" wide fullword $wipe_drive = { 6A 00 6A 00 6A 03 6A 00 6A 03 68 00 00 00 C0 [0-32] FF 15 [4-64] 5? 6A 00 6A 00 6A 00 6A 00 68 18 00 09 00 5? FF 15 [4-256] 68 00 00 01 00 [0-32] FF 15 } $wipe_file = { 6A 00 6A 00 6A 03 6A 00 6A 03 68 00 00 00 C0 [0-32] FF 15 [4-64] 5? 5? FF 15 [4-32] 6A 00 68 00 00 01 00 5? 5? E8 } condition: (uint16(0) == 0x5A4D) and (uint32(uint32(0x3C)) == 0x00004550) and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Wiper_Win32_NEARTWIST_1 { meta: author = "Mandiant" description = "Looking for NEARTWIST samples based on opcode patterns observed on relevant functions." strings: $b1 = { 68 05 01 00 00 8D [4-6] 5? FF 15 [4] 85 C0 0F 8? [4] 3? 05 01 00 00 0F 8? [4] 8B 85 [4-5] 85 C0 0F 8? } $b2 = { FF 15 [4] 89 8? [4-6] B? 01 00 00 00 [4-32] C1 ?? 1E 33 ?? 69 ?? 65 89 07 6C 03 ?? 89 [6] 4? ( 3D | 81 FA ) 70 02 00 00 7? ?? B? 70 02 00 00 } $b3 = { 6A 00 5? 68 00 00 01 00 8D ?? 24 [4] 5? 5? FF 15 [4] 85 C0 7? ?? 8B 44 24 ?? 3D 00 00 01 00 7? ?? 2B ?? 83 ?? 00 E9 } condition: (uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Wiper_Win_NEARTWIST_1 { meta: author = "Mandiant" description = "Looking for NEARTWIST samples based on strings, imports, and constants for Mersenne Twister / ISAAC PRNG." strings: $b1 = { 65 89 07 6C } $b2 = { AD 58 3A FF } $b3 = { 8C DF FF FF } $i1 = "GetTickCount" $i2 = "DeviceIoControl" $i3 = "GetLogicalDrives" $i4 = "FindFirstFile" $i5 = "FindNextFile" $i6 = "WriteFile" $i7 = "GetDiskFreeSpaceEx" $i8 = "CreateThread" $i9 = "GetWindowsDirectory" $i10 = "GetTempFileName" $n1 = "Cleaner.exe" ascii wide fullword $n2 = "Cleaner.dll" ascii wide fullword $s1 = "PhysicalDrive" ascii wide fullword $s2 = "\\\\.\\" ascii wide fullword $s3 = "*.*" ascii wide fullword $s4 = "Tmf" ascii wide fullword $s5 = "Tmd" ascii wide fullword condition: (uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550) and any of ($n*) and all of ($s*) and all of ($i*) and all of ($b*) } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_PARTYTICKET_1 { meta: author = "Mandiant" description = "Looking for PARTYTICKET samples via strings." strings: $s1 = "/403forBiden/" ascii wide $s2 = "/wHiteHousE/" ascii wide $s3 = "partyTicket." ascii wide $s4 = "vote_result." ascii wide $s5 = ".encryptedJB" ascii wide $f1 = "/wHiteHousE.baggageGatherings" ascii wide $f2 = "/wHiteHousE.primaryElectionProcess" ascii wide $f3 = "/wHiteHousE.GoodOffice1" ascii wide $f4 = "/wHiteHousE.lookUp" ascii wide $f5 = "/wHiteHousE.init" ascii wide $m1 = "<p>Thank you for your vote! All your files, documents, photoes, videos, databases etc. have been successfully encrypted!</p>" ascii wide fullword $m2 = "<p>Now your computer has a special ID:<b> </b></p>" ascii wide fullword $m3 = "<p>NOTE: <i>Do not send file with sensitive content. In the email write us your computer's special ID (mentioned above).</i>" ascii wide fullword condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (3 of ($s*) or 3 of ($f*) or 2 of ($m*)) } |
|
Details | Yara rule | 1 | rule M_APT_Disrupt_PARTYTICKET_2 { meta: author = "Mandiant" description = "Looking for PARTYTICKET samples via opcode patterns observed on relevant functions." strings: $b1 = { 48 83 F8 1B 0F 8D [4] 48 89 [3] 48 89 [3] 48 89 [3] 48 8D 35 [4] 0F B6 3C 06 81 FF 80 00 00 00 0F 8? [4] 48 FF C0 [16-32] E8 [16-64] E8 [8-32] E8 [4] 48 8B 44 24 ?? 48 85 C0 7? ?? [8-24] E9 } $b2 = { 48 83 F8 37 0F 8D [24-32] E8 [16-32] E8 [16-32] 48 C1 E? 04 [8-16] 7? ?? 0F B6 44 24 ?? EB ?? [8-16] E8 [4] 0F B6 44 24 ?? 84 C0 7? ?? [4-8] B8 01 00 00 00 E9 } $b3 = { 3D 77 69 6E 64 0F 85 [4-12] 66 3D 6F 77 0F 85 [4-12] 3C 73 0F 85 [4] E8 [4] [8-24] 31 ?? EB } condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them } |
|
Details | Yara rule | 1 | rule M_APT_Distupt_NEARMISS_1 { meta: author = "Mandiant" strings: $code_fat_corruption = { 8B ?? 56 8B ?? 52 [1-64] 0F B? ?? 16 [1-32] 8B ?? 24 [0-32] 0F B? ?? 0D [1-32] 0F B? ?? 10 [1-32] 0F B? ?? 0E } $code_ntfs_corruption = { 0F B? ?? 0B 0F B? ?? 0D [1-64] FF ?? 34 FF ?? 30 [1-64] 0F B? ?? 0B [1-64] FF ?? 3C FF ?? 38 } $s1 = "\\\\.\\PhysicalDrive%u" wide fullword $s2 = "\\\\.\\EPMNTDRV\\%u" wide fullword $s3 = "DRV_X64" wide fullword $s4 = "DRV_X86" wide fullword $s5 = "DRV_XP_X64" wide fullword $s6 = "DRV_XP_X86" wide fullword $s7 = "$ATTRIBUTE_LIST" wide fullword $s8 = "$EA_INFORMATION" wide fullword $s9 = "$SECURITY_DESCRIPTOR" wide fullword $s10 = "$INDEX_ROOT" wide fullword $s11 = "$INDEX_ALLOCATION" wide fullword $s12 = "$LOGGED_UTILITY_STREAM" wide fullword condition: (uint16(0) == 0x5A4D) and (uint32(uint32(0x3C)) == 0x00004550) and (8 of ($s*) or all of ($code*)) } |
|
Details | Yara rule | 1 | rule M_Hunting_Win32_NEARMISS_1 { meta: author = "Mandiant" description = "Rule looks for code present in NEARMISS samples. Based on a rule generated by symhunt for symfunc/ cef8160083d485a3676d55b3fc5e1c42." strings: $c = { 55 8B EC 81 EC AC 08 ?? ?? 53 56 57 33 DB 89 4D E0 68 ?? ?? ?? ?? 8D 85 78 FC FF FF C7 45 DC ?? ?? ?? ?? 53 50 C7 45 E4 ?? ?? ?? ?? 89 5D F8 89 5D A4 E8 ?? ?? ?? ?? 83 C4 0C 68 ?? ?? ?? ?? FF ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 8B F8 8D 85 78 FC FF FF 68 ?? ?? ?? ?? 50 FF ?? ?? ?? ?? ?? 83 C4 0C 89 45 F0 85 FF 74 ?? 8B ?? ?? ?? ?? ?? 68 ?? ?? ?? ?? 57 FF D6 68 ?? ?? ?? ?? 57 8B D8 FF D6 68 ?? ?? ?? ?? 57 FF D6 8B F0 85 F6 74 ?? 8D 45 F8 50 FF } condition: filesize < 15MB and uint16(0) == 0x5a4d and uint32(uint32(0x3C)) == 0x00004550 and any of them } |
|
Details | Yara rule | 1 | rule M_Hunting_Win32_NEARMISS_2 { meta: author = "Mandiant" description = "Rule looks for a specific stackstring - mangled SeShutdownPrivilege - found in NEARMISS samples." strings: $s1 = { 53 00 65 00 [4] 53 00 68 00 [4] 75 00 74 00 [4] 64 00 6F 00 [4] 9A 02 00 00 [4] 00 00 00 00 } $s2 = { 77 00 6E 00 [7] 50 00 72 00 } condition: filesize < 15MB and uint16(0) == 0x5a4d and uint32(uint32(0x3C)) == 0x00004550 and all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_Win_WiperPaths_1 { meta: author = "Mandiant" description = "Detects notable wiper strings" reference = "https://twitter.com/ESETresearch/status/1496581903205511181" strings: $w1 = "\\\\.\\EPMNTDRV" wide fullword $w2 = "\\\\.\\PhysicalDrive" wide fullword $w3 = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced" wide fullword $w4 = "\\\\?\\C:\\Windows\\System32\\winevt\\Logs" wide fullword $w5 = "\\\\?\\C:\\Documents and Settings" wide fullword $w6 = "<<Obsolete>>" wide fullword condition: uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and (all of them) } |
|
Details | Yara rule | 1 | rule M_Webshell_PHP_WEEVELY_1 { meta: author = "Mandiant" description = "Weevely3 open source webshell detection from https://artikrh.github.io/posts/weevely-backdoor-analysis -- Webshell source code: https://github.com/epinna/weevely3/tree/master/core" strings: $php = "<?php" $rf1 = "$k" $rf2 = "$kh" $rf3 = "$kf" $rf4 = "$p" $rf5 = "$o" $rf6 = /\$\w{1,4}=str_replace\('\w{1,}','','/ condition: $php at 0 and all of ($rf*) and filesize > 500 and filesize < 1000 } |
|
Details | Yara rule | 1 | import "pe" rule M_Backdoor_DARKCRYSTALRAT_1 { meta: author = "Mandiant" description = "Detection for DARKCRYSTAL RAT's C2 checkin and CSharp compiling code" strings: $c1 = { 72 ?? ?? ?? ?? A2 25 19 07 A2 25 1A 72 ?? ?? ?? ?? A2 25 1B 11 ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1C 72 ?? ?? ?? ?? A2 25 1D 11 ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1E 72 ?? ?? ?? ?? A2 25 1F ?? 11 ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1F ?? 72 ?? ?? ?? ?? A2 25 1F ?? 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 16 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1F ?? 72 ?? ?? ?? ?? A2 25 1F ?? 07 A2 28 ?? ?? ?? ?? } $c2 = { 02 28 ?? ?? ?? ?? 00 00 00 04 28 ?? ?? ?? ?? 0A 04 28 ?? ?? ?? ?? 0B 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2D ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 2B ?? 17 0C 08 39 ?? ?? ?? ?? 00 14 0D 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 73 ?? ?? ?? ?? 0D 2B ?? 73 ?? ?? ?? ?? 0D 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 16 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 6F ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 17 8D ?? ?? ?? ?? 25 16 1F ?? 9D 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 09 11 ?? 17 8D ?? ?? ?? ?? 25 16 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? A2 6F ?? ?? ?? ?? 13 ?? 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 72 ?? ?? ?? ?? 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 2B ?? 11 ?? 6F ?? ?? ?? ?? 74 ?? ?? ?? ?? 13 ?? 1E 8D ?? ?? ?? ?? 25 16 11 ?? A2 25 17 72 ?? ?? ?? ?? A2 25 18 11 ?? 6F ?? ?? ?? ?? A2 25 19 72 ?? ?? ?? ?? A2 25 1A 11 ?? 6F ?? ?? ?? ?? 13 ?? 12 ?? 28 ?? ?? ?? ?? A2 25 1B 72 ?? ?? ?? ?? A2 25 1C 11 ?? 6F ?? ?? ?? ?? A2 25 1D 72 ?? ?? ?? ?? A2 28 ?? ?? ?? ?? 13 ?? 11 ?? 6F ?? ?? ?? ?? 2D ?? DE ?? 11 ?? 75 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 11 ?? 6F ?? ?? ?? ?? 00 DC 02 11 ?? 7D ?? ?? ?? ?? 02 17 7D ?? ?? ?? ?? DD ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 16 13 ?? 2B ?? 11 ?? 11 ?? 9A 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 11 ?? 11 ?? 14 6F ?? ?? ?? ?? 26 2B ?? 00 11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 1F ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 00 07 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? A5 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 17 6F ?? ?? ?? ?? 00 25 11 ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 2B ?? 00 73 ?? ?? ?? ?? 25 16 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 11 ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 00 00 11 ?? 28 ?? ?? ?? ?? 00 00 DE ?? 26 00 00 DE ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 1F ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 11 ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 11 ?? 28 ?? ?? ?? ?? 00 00 DE ?? 26 00 00 DE ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 02 16 7D ?? ?? ?? ?? 00 DE ?? 13 ?? 00 02 11 ?? 6F ?? ?? ?? ?? 7D ?? ?? ?? ?? 02 17 7D ?? ?? ?? ?? 00 DE ?? 2A } $c3 = { 73 ?? ?? ?? ?? 0D 2B ?? 73 ?? ?? ?? ?? 0D 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 16 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 6F ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 17 8D ?? ?? ?? ?? 25 16 1F ?? 9D 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 09 11 ?? 17 8D ?? ?? ?? ?? 25 16 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? A2 6F ?? ?? ?? ?? 13 ?? 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 72 ?? ?? ?? ?? 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 2B ?? 11 ?? 6F ?? ?? ?? ?? 74 ?? ?? ?? ?? 13 ?? 1E 8D ?? ?? ?? ?? 25 16 11 ?? A2 25 17 72 ?? ?? ?? ?? A2 25 18 11 ?? 6F ?? ?? ?? ?? A2 25 19 72 ?? ?? ?? ?? A2 25 1A 11 ?? 6F ?? ?? ?? ?? 13 ?? 12 ?? 28 ?? ?? ?? ?? A2 25 1B 72 ?? ?? ?? ?? A2 25 1C 11 ?? 6F ?? ?? ?? ?? A2 25 1D 72 ?? ?? ?? ?? A2 28 ?? ?? ?? ?? 13 ?? 11 ?? 6F ?? ?? ?? ?? 2D ?? DE ?? 11 ?? 75 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 11 ?? 6F ?? ?? ?? ?? 00 DC 02 11 ?? 7D ?? ?? ?? ?? 02 17 7D ?? ?? ?? ?? DD ?? ?? ?? ?? 11 ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 16 13 ?? 2B ?? 11 ?? 11 ?? 9A 13 ?? 00 11 ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 11 ?? 11 ?? 14 6F ?? ?? ?? ?? 26 2B ?? 00 11 ?? 17 58 13 ?? 11 ?? 11 ?? 8E 69 32 ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 1F ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 00 07 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? A5 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 17 6F ?? ?? ?? ?? 00 25 11 ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 2B ?? 00 73 ?? ?? ?? ?? 25 16 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 11 ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 00 00 11 ?? 28 ?? ?? ?? ?? 00 00 DE ?? 26 00 00 DE ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 39 ?? ?? ?? ?? 00 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 1F ?? 28 ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 28 ?? ?? ?? ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 11 ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 11 ?? 28 ?? ?? ?? ?? 00 00 DE ?? 26 00 00 DE ?? 00 38 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 13 ?? 11 ?? 2C ?? 00 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 00 25 28 ?? ?? ?? ?? 2D ?? 72 ?? ?? ?? ?? 2B ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 25 72 ?? ?? ?? ?? 06 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 13 ?? 11 ?? 28 ?? ?? ?? ?? 6F ?? ?? ?? ?? 00 00 02 16 7D ?? ?? ?? ?? 00 DE ?? 13 ?? 00 02 11 ?? 6F ?? ?? ?? ?? 7D ?? ?? ?? ?? 02 17 7D ?? ?? ?? ?? 00 DE ?? 2A } $c4 = { 00 73 ?? ?? ?? ?? 25 72 ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 0A 06 73 ?? ?? ?? ?? 0B 73 ?? ?? ?? ?? 25 17 6F ?? ?? ?? ?? 25 16 6F ?? ?? ?? ?? 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 25 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 26 0C 07 08 17 8D ?? ?? ?? ?? 25 16 02 7B ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 6F ?? ?? ?? ?? 0D 09 6F ?? ?? ?? ?? 6F ?? ?? ?? ?? 2C ?? 1F ?? 8D ?? ?? ?? ?? 25 16 7E ?? ?? ?? ?? A2 25 17 72 ?? ?? ?? ?? A2 25 18 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 19 72 ?? ?? ?? ?? A2 25 1A 7E ?? ?? ?? ?? A2 25 1B 72 ?? ?? ?? ?? A2 25 1C 72 ?? ?? ?? ?? 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1D 72 ?? ?? ?? ?? A2 25 1E 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 26 2B ?? 1F ?? 8D ?? ?? ?? ?? 25 16 7E ?? ?? ?? ?? A2 25 17 72 ?? ?? ?? ?? A2 25 18 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 19 72 ?? ?? ?? ?? A2 25 1A 7E ?? ?? ?? ?? A2 25 1B 72 ?? ?? ?? ?? A2 25 1C 72 ?? ?? ?? ?? 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1D 72 ?? ?? ?? ?? A2 25 1E 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 26 09 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 6F ?? ?? ?? ?? 72 ?? ?? ?? ?? 6F ?? ?? ?? ?? 13 ?? 11 ?? 11 ?? 14 6F ?? ?? ?? ?? 26 DE ?? 26 1F ?? 8D ?? ?? ?? ?? 25 16 7E ?? ?? ?? ?? A2 25 17 72 ?? ?? ?? ?? A2 25 18 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 19 72 ?? ?? ?? ?? A2 25 1A 7E ?? ?? ?? ?? A2 25 1B 72 ?? ?? ?? ?? A2 25 1C 72 ?? ?? ?? ?? 7E ?? ?? ?? ?? 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 25 1D 72 ?? ?? ?? ?? A2 25 1E 72 ?? ?? ?? ?? 28 ?? ?? ?? ?? A2 28 ?? ?? ?? ?? 28 ?? ?? ?? ?? 26 DE ?? 2A } condition: uint16(0) == 0x5a4d and pe.data_directories[pe.IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR].virtual_address != 0 and 1 of ($c*) } |
|
Details | Yara rule | 1 | rule M_Backdoor_Win_DARKCRYSTALRAT_Config_1 { meta: author = "Mandiant" description = "This rule looks for PE files containing part of DARKCRYSTALRAT configuration string. Configuration JSON is stored as base64 encoded, reversed, gzip compressed and again bas64 encoded string." strings: $s = { 48 00 34 00 73 00 49 00 41 00 41 00 41 00 41 00 41 00 41 00 41 00 45 00 41 00 46 00 32 00 54 00 58 00 58 00 75 00 69 00 4D 00 42 00 43 00 46 00 66 00 39 00 } condition: filesize < 15MB and uint16(0) == 0x5a4d and uint32(uint32(0x3C)) == 0x00004550 and $s } |
|
Details | Yara rule | 1 | rule M_Downloader_SHARPCOFFEE_1 { meta: author = "Mandiant" strings: $str1 = "ActiveXObject(\"WScript.Shell\").Run(\"powershell.exe" nocase $str2 = "new-object net.webclient;" nocase $str3 = ".downloaddata('http" nocase $str4 = ".uploaddata('http" nocase $str5 = "[System.Net.Dns]" nocase condition: all of them } |
|
Details | Yara rule | 1 | rule M_APT_Downloader_SHARPCOFFEEVBS_2 { meta: author = "Mandiant" description = "Detects SHARPCOFFE.VBS variant, a VBS script used to download and run a secondary payload, and upload the output of the secondary payload during the same script execution." strings: $vbs = "dim" ascii wide nocase $a1 = /\$\w{1,20}\.uploaddata\('http:\/\/.{1,20}\/page\d{1,3}',\$\w{1,10}\);/ $a2 = /=\$\w{1,20}\.downloaddata\('http:\/\/.{1,50}\/page\d{1,3}\/upgrade\.txt'\);if\(/ condition: filesize < 1MB and $vbs at 0 and any of ($a*) } |
|
Details | Yara rule | 1 | rule M_Dropper_COLDWELL_Permission_Arch_Check_1 { meta: author = "Mandiant" strings: $ = { C7 45 F? 00 05 50 C7 45 F? } $ = { C7 45 F? 00 00 00 00 C7 45 F? } $ = { 0F 95 C3 6A 04 83 C3 [7] F7 D8 6A 0A } condition: all of them } |
|
Details | Yara rule | 1 | rule M_Disrupt_ROARBAT_1 { meta: author = "Mandiant" strings: $ = "takeown /a /f \"%%" $ = "in (C:\\Users," $ = "a -df %" $ = "\" & del %" condition: all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_Backdoor_PowerShell_WILDDIME_Strings_1 { meta: author = "Mandiant" description = "Searching for PowerShell scripts with strings associated with WILDDIME." strings: $s1 = "GetEnviron" ascii wide nocase $s2 = "R64Encoder" ascii wide nocase $s3 = "R64Decoder" ascii wide nocase $s4 = "Send-HttpRequest" ascii wide nocase $s5 = "JVBERi0xLjcNCiW1tb" ascii wide nocase condition: filesize < 200KB and all of them } |
|
Details | Yara rule | 1 | rule M_Hunting_Downloader_SHARPENTRY_1 { meta: author = "Mandiant" description = "Detects code fragments connected to the payload decoding and mining routines found within SHARPENTRY." strings: $decode_routine = { 0F B6 ?? ?? 0F B6 ?? ?? 33 C2 88 ?? ?? 0F B6 ?? ?? 83 ?? 4D } $payload_mine = { 8B ?? ?? 03 ?? ?? 81 ?? 89 C3 81 C3 } condition: uint16(0) == 0x5A4D and $decode_routine and $payload_mine } |
|
Details | Yara rule | 1 | rule M_Hunting_Dropper_SHARPIVORY_Strings_1 { meta: author = "Mandiant" description = "Searching for executables containing strings references to the SHARPIVORY code family." strings: $s1 = "WriteAllBytes" $s2 = "FromBase64String" $w1 = "schtasks.exe" wide $w2 = "kernel32.dll" wide $w3 = "/create /tn" wide $w4 = "/sc minute /mo 20 /f" wide condition: filesize < 5MB and uint16(0) == 0x5A4D and uint32(uint32(0x3C)) == 0x00004550 and all of them } |
|
Details | CERT Ukraine | 6 | UAC-0099 |
|
Details | CVE | 60 | cve-2021-4034 |
|
Details | CVE | 23 | cve-2019-10149 |
|
Details | CVE | 172 | cve-2022-30190 |
|
Details | Domain | 339 | system.net |
|
Details | Domain | 3 | request.inputstream.read |
|
Details | Domain | 1 | x00github.com |
|
Details | Domain | 1373 | twitter.com |
|
Details | Domain | 1 | artikrh.github.io |
|
Details | Domain | 4127 | github.com |
|
Details | Domain | 372 | wscript.shell |
|
Details | Domain | 50 | cloud.google.com |
|
Details | File | 1 | sharpcoffee.vbs |
|
Details | File | 2 | meterpreter.py |
|
Details | File | 208 | setup.exe |
|
Details | File | 2 | response.bin |
|
Details | File | 68 | mscoree.dll |
|
Details | File | 14 | chkdsk.exe |
|
Details | File | 4 | xpsp2res.dll |
|
Details | File | 8 | cleaner.exe |
|
Details | File | 7 | cleaner.dll |
|
Details | File | 1 | whitehouse.ini |
|
Details | File | 1 | managers.dcr |
|
Details | File | 8 | pe.dat |
|
Details | File | 1208 | powershell.exe |
|
Details | File | 1 | sharpcoffe.vbs |
|
Details | File | 249 | schtasks.exe |
|
Details | File | 748 | kernel32.dll |
|
Details | Github username | 5 | hashicorp |
|
Details | Github username | 2 | epinna |
|
Details | md5 | 1 | cef8160083d485a3676d55b3fc5e1c42 |
|
Details | md5 | 1 | 0c245b2700e9417c0e1cbfd0f8d1aa70 |
|
Details | Mandiant Security Validation Actions | 1 | A101-165 |
|
Details | Mandiant Security Validation Actions | 1 | A101-166 |
|
Details | Mandiant Security Validation Actions | 1 | A102-517 |
|
Details | Mandiant Security Validation Actions | 1 | A107-038 |
|
Details | Mandiant Security Validation Actions | 1 | A106-188 |
|
Details | Mandiant Security Validation Actions | 1 | A107-010 |
|
Details | Mandiant Security Validation Actions | 1 | A105-312 |
|
Details | Mandiant Security Validation Actions | 1 | A105-407 |
|
Details | Mandiant Security Validation Actions | 1 | A105-408 |
|
Details | Mandiant Security Validation Actions | 1 | A107-026 |
|
Details | Mandiant Security Validation Actions | 1 | A106-106 |
|
Details | Mandiant Security Validation Actions | 1 | A107-024 |
|
Details | Mandiant Security Validation Actions | 1 | A107-027 |
|
Details | Mandiant Security Validation Actions | 1 | A107-033 |
|
Details | Mandiant Security Validation Actions | 1 | A107-013 |
|
Details | Mandiant Security Validation Actions | 1 | A107-016 |
|
Details | Mandiant Security Validation Actions | 1 | A107-031 |
|
Details | Mandiant Security Validation Actions | 1 | A106-103 |
|
Details | Mandiant Security Validation Actions | 1 | A106-102 |
|
Details | Mandiant Security Validation Actions | 1 | A106-008 |
|
Details | Mandiant Security Validation Actions | 1 | A107-001 |
|
Details | Mandiant Security Validation Actions | 1 | A106-994 |
|
Details | Mandiant Security Validation Actions | 1 | A106-996 |
|
Details | Mandiant Security Validation Actions | 1 | A106-998 |
|
Details | Mandiant Security Validation Actions | 1 | A106-999 |
|
Details | Mandiant Security Validation Actions | 1 | A104-850 |
|
Details | Mandiant Security Validation Actions | 1 | A106-193 |
|
Details | Mandiant Security Validation Actions | 2 | A106-439 |
|
Details | Mandiant Security Validation Actions | 2 | A106-446 |
|
Details | Mandiant Security Validation Actions | 2 | A106-438 |
|
Details | Mandiant Security Validation Actions | 1 | A104-623 |
|
Details | Mandiant Security Validation Actions | 1 | A106-993 |
|
Details | Mandiant Security Validation Actions | 1 | A103-029 |
|
Details | Mandiant Security Validation Actions | 1 | A103-873 |
|
Details | Mandiant Security Validation Actions | 1 | A102-519 |
|
Details | Mandiant Security Validation Actions | 1 | A102-518 |
|
Details | Mandiant Security Validation Actions | 1 | A107-000 |
|
Details | Mandiant Security Validation Actions | 1 | A102-582 |
|
Details | Mandiant Security Validation Actions | 1 | A102-583 |
|
Details | Mandiant Security Validation Actions | 1 | A102-584 |
|
Details | Mandiant Security Validation Actions | 1 | A102-585 |
|
Details | Mandiant Security Validation Actions | 1 | A106-190 |
|
Details | Mandiant Security Validation Actions | 1 | A106-189 |
|
Details | Mandiant Security Validation Actions | 1 | A103-030 |
|
Details | Mandiant Security Validation Actions | 1 | A102-784 |
|
Details | Mandiant Security Validation Actions | 1 | A103-615 |