|
| 1 | +rule SUSP_LNX_Sindoor_ELF_Obfuscation_Aug25 { |
| 2 | + meta: |
| 3 | + description = "Detects ELF obfuscation technique used by Sindoor dropper related to APT 36" |
| 4 | + author = "Pezier Pierre-Henri" |
| 5 | + date = "2025-08-29" |
| 6 | + score = 70 |
| 7 | + reference = "Internal Research" |
| 8 | + hash = "6879a2b730e391964afe4dbbc29667844ba0c29239be5503b7c86e59e7052443" |
| 9 | + strings: |
| 10 | + $s1 = "UPX!" |
| 11 | + condition: |
| 12 | + filesize < 10MB |
| 13 | + and uint16(0) == 0 |
| 14 | + and uint16(4) > 0 |
| 15 | + and $s1 in (0xc0..0x100) |
| 16 | +} |
| 17 | + |
| 18 | +rule SUSP_LNX_Sindoor_DesktopFile_Aug25 { |
| 19 | + meta: |
| 20 | + description = "Detects ELF obfuscation technique used by Sindoor dropper related to APT 36" |
| 21 | + author = "Pezier Pierre-Henri" |
| 22 | + date = "2025-08-29" |
| 23 | + score = 70 |
| 24 | + reference = "Internal Research" |
| 25 | + hash = "9943bdf1b2a37434054b14a1a56a8e67aaa6a8b733ca785017d3ed8c1173ac59" |
| 26 | + strings: |
| 27 | + $hdr = "[Desktop Entry]" |
| 28 | + $s1 = "printf '\\\\x7FELF' | dd of" |
| 29 | + $s2 = "Future_Note_Warfare_OpSindoor.pdf" |
| 30 | + condition: |
| 31 | + filesize < 100KB |
| 32 | + and $hdr |
| 33 | + and any of ($s*) |
| 34 | +} |
| 35 | + |
| 36 | +rule MAL_Sindoor_Decryptor_Aug25 { |
| 37 | + meta: |
| 38 | + description = "Detects AES decryptor used by Sindoor dropper related to APT 36" |
| 39 | + author = "Pezier Pierre-Henri" |
| 40 | + date = "2025-08-29" |
| 41 | + score = 80 |
| 42 | + reference = "Internal Research" |
| 43 | + hash = "9a1adb50bb08f5a28160802c8f315749b15c9009f25aa6718c7752471db3bb4b" |
| 44 | + strings: |
| 45 | + $s1 = "Go build" |
| 46 | + $s2 = "main.rc4EncryptDecrypt" |
| 47 | + $s3 = "main.processFile" |
| 48 | + $s4 = "main.deriveKeyAES" |
| 49 | + $s5 = "use RC4 instead of AES" |
| 50 | + condition: |
| 51 | + filesize < 100MB |
| 52 | + and ( |
| 53 | + (uint16(0) == 0x5a4d and pe.number_of_signatures == 0) // Windows |
| 54 | + or uint32be(0) == 0x7f454c46 // Linux |
| 55 | + or (uint32be(0) == 0xcafebabe and uint32be(4) < 0x20) // Universal mach-O App with dont-match-java-class-file hack |
| 56 | + or uint32(0) == 0xfeedface // 32-bit mach-O |
| 57 | + or uint32(0) == 0xfeedfacf // 64-bit mach-O |
| 58 | + ) |
| 59 | + and all of them |
| 60 | +} |
| 61 | + |
| 62 | +rule MAL_Sindoor_Downloader_Aug25 { |
| 63 | + meta: |
| 64 | + description = "Detects Sindoor downloader related to APT 36" |
| 65 | + author = "Pezier Pierre-Henri" |
| 66 | + date = "2025-08-29" |
| 67 | + score = 80 |
| 68 | + reference = "Internal Research" |
| 69 | + hash = "38b6b93a536cbab5c289fe542656d8817d7c1217ad75c7f367b15c65d96a21d4" |
| 70 | + strings: |
| 71 | + $s1 = "Go build" |
| 72 | + $s2 = "main.downloadFile.deferwrap" |
| 73 | + $s3 = "main.decrypt" |
| 74 | + $s4 = "main.HiddenHome" |
| 75 | + $s5 = "main.RealCheck" |
| 76 | + condition: |
| 77 | + filesize < 100MB |
| 78 | + and ( |
| 79 | + (uint16(0) == 0x5a4d and pe.number_of_signatures == 0) // Windows |
| 80 | + or uint32be(0) == 0x7f454c46 // Linux |
| 81 | + or (uint32be(0) == 0xcafebabe and uint32be(4) < 0x20) // Universal mach-O App with dont-match-java-class-file hack |
| 82 | + or uint32(0) == 0xfeedface // 32-bit mach-O |
| 83 | + or uint32(0) == 0xfeedfacf // 64-bit mach-O |
| 84 | + ) |
| 85 | + and all of them |
| 86 | +} |
| 87 | + |
0 commit comments