YARA Detection Rule: Linux_Backdoor_NoodRAT
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects NoodRAT backdoor.
Malware family: NOODRAT
Author: ReversingLabs

Pattern signatures:
$change_name_on_system_p1 = {
            41 56 41 55 41 54 55 53 48 81 EC ?? ?? ?? ?? 48 89 FB 48 8D BC 24 ?? ?? ?? ?? B8 ??
            ?? ?? ?? B9 ?? ?? ?? ?? F3 48 AB 48 8D BC 24 ?? ?? ?? ?? B1 ?? F3 48 AB C6 84 24 ??
            ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ??
            C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ??
            ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 48 8D AC 24 ?? ?? ?? ?? 0F B7 15
            ?? ?? ?? ?? 66 89 55 ?? 4C 8D 65 ?? 0F B7 D2 BE ?? ?? ?? ?? 4C 89 E7 E8 ?? ?? ?? ??
            48 8D 94 24 ?? ?? ?? ?? 0F B7 75 ?? 4C 89 E7 E8 ?? ?? ?? ?? 48 8D AC 24 ?? ?? ?? ??
            4C 89 E6 48 89 EF E8 ?? ?? ?? ?? 4C 8B 03 48 C7 C6 ?? ?? ?? ?? 4C 89 C7 B8 ?? ?? ??
            ?? 48 89 F1 F2 AE 48 F7 D1 48 8D 14 31 48 89 EF 48 89 F1 F2 AE 48 89 CE 48 F7 D6 48
            83 EE ?? 48 39 F2 72 ?? BE ?? ?? ?? ?? 4C 89 C7 E8 ?? ?? ?? ?? 48 89 EE 48 8B 3B E8
          

Detection condition:
uint32(0) == 0x464C457F and
        (
            (
                all of ($change_name_on_system_p*)
            ) and
            (
                all of ($decrypt_configuration_p*)
            ) and
            (
                $encrypt_and_send_data
            ) and
            (
           

Full rule:
rule Linux_Backdoor_NoodRAT : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

        source              = "ReversingLabs"
        status              = "RELEASED"
        sharing             = "TLP:WHITE"
        category            = "MALWARE"
        malware             = "NOODRAT"
        description         = "Yara rule that detects NoodRAT backdoor."

        tc_detection_type   = "Backdoor"
        tc_detection_name   = "NoodRAT"
        tc_detection_factor = 5

    strings:

        $change_name_on_system_p1 = {
            41 56 41 55 41 54 55 53 48 81 EC ?? ?? ?? ?? 48 89 FB 48 8D BC 24 ?? ?? ?? ?? B8 ??
            ?? ?? ?? B9 ?? ?? ?? ?? F3 48 AB 48 8D BC 24 ?? ?? ?? ?? B1 ?? F3 48 AB C6 84 24 ??
            ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ??
            C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ??
            ?? ?? ?? ?? 80 3D ?? ?? ?? ?? ?? 0F 84 ?? ?? ?? ?? 48 8D AC 24 ?? ?? ?? ?? 0F B7 15
            ?? ?? ?? ?? 66 89 55 ?? 4C 8D 65 ?? 0F B7 D2 BE ?? ?? ?? ?? 4C 89 E7 E8 ?? ?? ?? ??
            48 8D 94 24 ?? ?? ?? ?? 0F B7 75 ?? 4C 89 E7 E8 ?? ?? ?? ?? 48 8D AC 24 ?? ?? ?? ??
            4C 89 E6 48 89 EF E8 ?? ?? ?? ?? 4C 8B 03 48 C7 C6 ?? ?? ?? ?? 4C 89 C7 B8 ?? ?? ??
            ?? 48 89 F1 F2 AE 48 F7 D1 48 8D 14 31 48 89 EF 48 89 F1 F2 AE 48 89 CE 48 F7 D6 48
            83 EE ?? 48 39 F2 72 ?? BE ?? ?? ?? ?? 4C 89 C7 E8 ?? ?? ?? ?? 48 89 EE 48 8B 3B E8
            ?? ?? ?? ?? B8 ?? ?? ?? ?? E9 ?? ?? ?? ?? 48 8D BC 24 ?? ?? ?? ?? B8 ?? ?? ?? ?? B9
            ?? ?? ?? ?? F3 48 AB 48 8D BC 24 ?? ?? ?? ?? B1 ?? F3 48 AB C6 84 24 ?? ?? ?? ?? ??
            C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ??
            ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ??
            C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?? ?? ?? ?? ?? C6 84 24 ?