├── README.md └── Yara ├── APT └── APT_Bitter_T-APT-17.yar ├── Dropper ├── Vjw0rm.yar ├── agent_tesla.yar ├── asyncrat.yar ├── njrat.yar ├── unknown.yar ├── valyria.yar └── wshrat.yar ├── Filetypes ├── MALWARE_OneNote_Delivery_Jan23.yar ├── SUS_Unsigned_APPX_MSIX_Installer_Feb23.yar ├── SUS_Unsigned_APPX_MSIX_Manifest_Feb23.yar ├── exe.yar ├── iso.yar ├── lnk.yar ├── powershell.yar └── vbs.yar ├── Hunting └── HUNT_RTF_CVE_2023_21716.yar ├── Malware ├── MALWARE_Emotet_OneNote_Delivery_wsf_Mar23.yar ├── MALWARE_PlugX_USB_Delivery_Jun21.yar ├── RANSOM_ESXiArgs_Ransomware_Bash_Feb23.yar ├── RANSOM_ESXiArgs_Ransomware_Encrypt_Feb23.yar ├── RANSOM_ESXiArgs_Ransomware_Python_Feb23.yar ├── RANSOM_Lockbit_Black_Packer.yar ├── RANSOM_Magniber_ISO_Jan23.yar ├── RANSOM_Magniber_LNK_Jan23.yar ├── RANSOM_MedusaLocker_July22.yar └── formbook.yar ├── Misc └── suspicious_sites.yar ├── Obfuscation ├── javascript_obfuscation.yar ├── powershell_obfuscation.yar └── vbs_obfuscation.yar ├── PowerShell_Misc └── download_variations.yar ├── RAT ├── asyncrat.yar ├── n-w0rm.yar ├── njrat.yar └── wshrat.yar ├── Stealer └── redline_stealer.yar └── Windows └── windows_misc.yar /README.md: -------------------------------------------------------------------------------- 1 | # About 2 | 3 | This repository contains detection rules and IOCs that we were able to extract and use in the context of our DFIR projects and malware analyses. 4 | 5 | # Contact 6 | 7 | Follow us on Twitter: https://twitter.com/SI_FalconTeam 8 | -------------------------------------------------------------------------------- /Yara/APT/APT_Bitter_T-APT-17.yar: -------------------------------------------------------------------------------- 1 | /* 2 | Yara Rule Set 3 | Author: SECUINFRA Falcon Team 4 | Date: 2022-06-23 5 | Identifier: 0x03-yara_win-Bitter_T-APT-17 6 | Reference: "https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh" 7 | */ 8 | 9 | /* Rule Set ----------------------------------------------------------------- */ 10 | 11 | rule APT_Bitter_Maldoc_Verify { 12 | 13 | meta: 14 | description = "Detects Bitter (T-APT-17) shellcode in oleObject (CVE-2018-0798)" 15 | author = "SECUINFRA Falcon Team (@SI_FalconTeam)" 16 | tlp = "WHITE" 17 | reference = "https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh" 18 | date = "2022-06-01" 19 | hash0 = "0c7158f9fc2093caf5ea1e34d8b8fffce0780ffd25191fac9c9b52c3208bc450" 20 | hash1 = "bd0d25194634b2c74188cfa3be6668590e564e6fe26a6fe3335f95cbc943ce1d" 21 | hash2 = "3992d5a725126952f61b27d43bd4e03afa5fa4a694dca7cf8bbf555448795cd6" 22 | 23 | strings: 24 | // This rule is meant to be used for verification of a Bitter Maldoc 25 | // rather than a hunting rule since the oleObject it is matching is 26 | // compressed in the doc zip 27 | 28 | $xor_string0 = "LoadLibraryA" xor 29 | $xor_string1 = "urlmon.dll" xor 30 | $xor_string2 = "Shell32.dll" xor 31 | $xor_string3 = "ShellExecuteA" xor 32 | $xor_string4 = "MoveFileA" xor 33 | $xor_string5 = "CreateDirectoryA" xor 34 | $xor_string6 = "C:\\Windows\\explorer" xor 35 | $padding = {000001128341000001128341000001128342000001128342} 36 | 37 | condition: 38 | 3 of ($xor_string*) 39 | and $padding 40 | } 41 | 42 | rule APT_Bitter_ZxxZ_Downloader { 43 | 44 | meta: 45 | description = "Detects Bitter (T-APT-17) ZxxZ Downloader" 46 | author = "SECUINFRA Falcon Team (@SI_FalconTeam)" 47 | TLP = "WHITE" 48 | reference = " https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh" 49 | date = "2022-06-01" 50 | hash0 = "91ddbe011f1129c186849cd4c84cf7848f20f74bf512362b3283d1ad93be3e42" 51 | hash1 = "90fd32f8f7b494331ab1429712b1735c3d864c8c8a2461a5ab67b05023821787" 52 | hash2 = "69b397400043ec7036e23c225d8d562fdcd3be887f0d076b93f6fcaae8f3dd61" 53 | hash3 = "3fdf291e39e93305ebc9df19ba480ebd60845053b0b606a620bf482d0f09f4d3" 54 | hash4 = "fa0ed2faa3da831976fee90860ac39d50484b20bee692ce7f0ec35a15670fa92" 55 | 56 | strings: 57 | // old ZxxZ samples / decrypted strings 58 | $old0 = "MsMp" ascii 59 | $old1 = "SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion" ascii 60 | $old2 = "&&user=" ascii 61 | $old3 = "DN-S" ascii 62 | $old4 = "RN_E" ascii 63 | 64 | // new ZxxZ samples 65 | $c2comm0 = "GET /" ascii 66 | $c2comm1 = "profile" ascii 67 | $c2comm2 = ".php?" ascii 68 | $c2comm3 = "data=" ascii 69 | $c2comm4 = "Update" ascii 70 | $c2comm5 = "TTT" ascii 71 | 72 | condition: 73 | uint16(0) == 0x5a4d 74 | and filesize > 39KB // Size on Disk/1.5 75 | and filesize < 2MB // Size of Image*1.5 76 | and (all of ($old*)) or (all of ($c2comm*)) 77 | } 78 | 79 | import "pe" 80 | import "dotnet" 81 | 82 | rule APT_Bitter_Almond_RAT { 83 | 84 | meta: 85 | description = "Detects Bitter (T-APT-17) Almond RAT (.NET)" 86 | author = "SECUINFRA Falcon Team (@SI_FalconTeam)" 87 | tlp = "WHITE" 88 | reference = " https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh" 89 | date = "2022-06-01" 90 | hash = "55901c2d5489d6ac5a0671971d29a31f4cdfa2e03d56e18c1585d78547a26396" 91 | 92 | strings: 93 | $function0 = "GetMacid" ascii 94 | $function1 = "StartCommWithServer" ascii 95 | $function2 = "sendingSysInfo" ascii 96 | 97 | $dbg0 = "*|END|*" wide 98 | $dbg1 = "FILE>" wide 99 | $dbg2 = "[Command Executed Successfully]" wide 100 | 101 | condition: 102 | uint16(0) == 0x5a4d 103 | and dotnet.version == "v4.0.30319" 104 | and filesize > 12KB // Size on Disk/1.5 105 | and filesize < 68KB // Size of Image*1.5 106 | and any of ($function*) 107 | and any of ($dbg*) 108 | } 109 | 110 | rule APT_Bitter_PDB_Paths { 111 | 112 | meta: 113 | description = "Detects Bitter (T-APT-17) PDB Paths" 114 | author = "SECUINFRA Falcon Team (@SI_FalconTeam)" 115 | tlp = "WHITE" 116 | reference = "https://www.secuinfra.com/en/techtalk/whatever-floats-your-boat-bitter-apt-continues-to-target-bangladesh" 117 | date = "2022-06-22" 118 | hash0 = "55901c2d5489d6ac5a0671971d29a31f4cdfa2e03d56e18c1585d78547a26396" 119 | 120 | strings: 121 | // Almond RAT 122 | $pdbPath0 = "C:\\Users\\Window 10 C\\Desktop\\COMPLETED WORK\\" ascii 123 | $pdbPath1 = "stdrcl\\stdrcl\\obj\\Release\\stdrcl.pdb" 124 | 125 | // found by Qi Anxin Threat Intellingence Center 126 | // reference: https://mp.weixin.qq.com/s/8j_rHA7gdMxY1_X8alj8Zg 127 | $pdbPath2 = "g:\\Projects\\cn_stinker_34318\\" 128 | $pdbPath3 = "renewedstink\\renewedstink\\obj\\Release\\stimulies.pdb" 129 | 130 | condition: 131 | uint16(0) == 0x5a4d 132 | and any of ($pdbPath*) 133 | } 134 | -------------------------------------------------------------------------------- /Yara/Dropper/Vjw0rm.yar: -------------------------------------------------------------------------------- 1 | 2 | rule DROPPER_Vjw0rm_Stage_1: JavaScript Dropper Vjw0rm { 3 | meta: 4 | author = "SECUINFRA Falcon Team" 5 | reference = "https://bazaar.abuse.ch/browse.php?search=tag%3AVjw0rm" 6 | date = "19.02.2022" 7 | version = "0.1" 8 | 9 | strings: 10 | $a1 = "$$$" 11 | $a2 = "microsoft.xmldom" 12 | $a3 = "eval" 13 | $a4 = "join(\"\")" 14 | 15 | condition: 16 | (uint16(0) == 0x7566 or uint16(0) == 0x6176 or uint16(0) == 0x0a0d or uint16(0) == 0x660a) 17 | and filesize < 60KB 18 | and all of ($a*) 19 | } -------------------------------------------------------------------------------- /Yara/Dropper/agent_tesla.yar: -------------------------------------------------------------------------------- 1 | rule MAL_AgentTesla_Stage_1 : JavaScript AgentTesla ObfuscatorIO { 2 | meta: 3 | author = "SECUINFRA Falcon Team" 4 | hash = "bd257d674778100639b298ea35550bf3bcb8b518978c502453e9839846f9bbec" 5 | reference = "https://bazaar.abuse.ch/sample/bd257d674778100639b298ea35550bf3bcb8b518978c502453e9839846f9bbec/" 6 | description = "Detects the first stage of AgentTesla (JavaScript)" 7 | 8 | strings: 9 | $mz = "TVq" 10 | 11 | $a1 = ".jar" 12 | $a2 = "bin.base64" 13 | $a3 = "appdata" 14 | $a4 = "skype.exe" 15 | 16 | condition: 17 | filesize < 500KB and $mz and 3 of ($a*) 18 | } -------------------------------------------------------------------------------- /Yara/Dropper/asyncrat.yar: -------------------------------------------------------------------------------- 1 | 2 | rule DROPPER_Asyncrat_VBS_February_2022_1 { 3 | meta: 4 | author = "SECUINFRA Falcon Team" 5 | date = "21.02.2022" 6 | reference = "https://bazaar.abuse.ch/sample/06cd1e75f05d55ac1ea77ef7bee38bb3b748110b79128dab4c300f1796a2b941/" 7 | 8 | strings: 9 | $a1 = "http://3.145.46.6/" 10 | 11 | $b1 = "Const HIDDEN_WINDOW = 0" 12 | $b2 = "GetObject(\"winmgmts:\\\\" 13 | 14 | $c = "replace(" 15 | 16 | condition: 17 | filesize < 10KB and ($a1 or (all of ($b*) and #c > 10)) 18 | } -------------------------------------------------------------------------------- /Yara/Dropper/njrat.yar: -------------------------------------------------------------------------------- 1 | 2 | rule DROPPER_njrat_VBS : vbs njrat dropper { 3 | meta: 4 | author = "SECUINFRA Falcon Team" 5 | date = "27.02.2022" 6 | reference = "https://bazaar.abuse.ch/sample/daea0b5dfcc3e20b75292df60fe5f0e16a40735254485ff6cc7884697a007c0d/" 7 | 8 | strings: 9 | $a1 = "[System.Convert]::FromBase64String( $Codigo.replace(" wide 10 | $a2 = "WDySjnçIJwGnYGadvbOQBvKzlNzWDDgUqgGlLKÇQvvkKPNjaUIdApxgqHTfDLUkfOKsXOKçDcQtltyXDXhNNbGNNPACgAzWRtuLt" wide 11 | 12 | $b1 = "CreateObject(\"WScript.Shell\")" wide 13 | $b2 = "\"R\" + \"e\" + \"p\" + \"l\" + \"a\" + \"c\" + \"e\"" wide 14 | $b3 = "BBBB\" + \"BBBBBBB\" + \"BBBBBBB\" + \"BBBBBBBB" wide 15 | $b4 = "& DGRP & NvWt & DGRP &" wide 16 | $b5 = "= ogidoC$" wide 17 | 18 | condition: 19 | filesize < 300KB 20 | and ( 21 | (1 of ($a*)) or (2 of ($b*)) 22 | ) 23 | } -------------------------------------------------------------------------------- /Yara/Dropper/unknown.yar: -------------------------------------------------------------------------------- 1 | rule DROPPER_Unknown_1 : Dropper HTA { 2 | meta: 3 | author = "SECUINFRA Falcon Team" 4 | hash = "1749f4127bba3f7204710286b1252e14" 5 | reference = "https://bazaar.abuse.ch/sample/c2bf8931028e0a18eeb8f1a958ade0ab9d64a00c16f72c1a3459f160f0761348/" 6 | description = "Detects unknown HTA Dropper" 7 | date = "10.02.2022" 8 | 9 | strings: 10 | $a1 = "