YARA Detection Rule: Linux_Backdoor_GobRAT
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects GobRAT backdoor.
Malware family: GOBRAT
Author: ReversingLabs

Pattern signatures:
$get_local_address_p1 = {
            49 3B 66 ?? 0F 86 ?? ?? ?? ?? 48 83 C4 ?? 48 89 6C 24 ?? 48 8D 6C 24 ?? 48 83 3D ??
            ?? ?? ?? ?? 75 ?? E8 ?? ?? ?? ?? 48 85 FF 75 ?? 48 85 DB 74 ?? 48 89 5C 24 ?? 31 C9
            EB ?? 48 8B 05 ?? ?? ?? ?? 48 8B 3D ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? 48 8B 35 ?? ??
            ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 6C 24 ?? 48 83 EC ?? C3 48 83
            C0 ?? 48 89 D1 48 8B 50 ?? 4C 8D 0D ?? ?? ?? ?? 4C 39 08 74 ?? BA ?? ?? ?? ?? 48 89
            4C 24 ?? 48 89 44 24 ?? 48 89 54 24 ?? 74 ?? 31 F6 EB ?? 48 8B 02 48 8B 5A ?? 48 8B
            4A ?? E8 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 44 24 ?? 48 8B 4C 24 ?? 48 8B 54 24 ?? 48 8B
            5C 24 ?? 4C 8D 0D ?? ?? ?? ?? 31 F6 EB ?? 48 8B 54 24 ?? 48 8B 02 48 8B 5A ?? 48 8B
            4A ?? E8 ?? ?? ?? ?? 83 F0 ?? 48 8B 4C 24 ?? 48 8B 54 24 ?? 48 8B 5C 24 ?? 4C 8D 0D
            ?? ?? ?? ?? 89 C6 48 8B 44 24 ?? 40 84 F6 74 ?? 4C 8B 12 4C 8B 5A ?? 4C 8B 62 ?? 49
            83

Detection condition:
uint32(0) == 0x464C457F and
        (
            all of ($get_local_address_p*)
        ) and
        (
            all of ($get_mac_address_p*)
        ) and
        (
            all of ($network_communication_tcp_p*)
        ) and
        (
            all of ($telnet_task_p*)
        )

Full rule:
rule Linux_Backdoor_GobRAT : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Backdoor"
        tc_detection_name   = "GobRAT"
        tc_detection_factor = 5

    strings:

        $get_local_address_p1 = {
            49 3B 66 ?? 0F 86 ?? ?? ?? ?? 48 83 C4 ?? 48 89 6C 24 ?? 48 8D 6C 24 ?? 48 83 3D ??
            ?? ?? ?? ?? 75 ?? E8 ?? ?? ?? ?? 48 85 FF 75 ?? 48 85 DB 74 ?? 48 89 5C 24 ?? 31 C9
            EB ?? 48 8B 05 ?? ?? ?? ?? 48 8B 3D ?? ?? ?? ?? 48 8B 1D ?? ?? ?? ?? 48 8B 35 ?? ??
            ?? ?? 48 8B 0D ?? ?? ?? ?? 4C 8B 05 ?? ?? ?? ?? 48 8B 6C 24 ?? 48 83 EC ?? C3 48 83
            C0 ?? 48 89 D1 48 8B 50 ?? 4C 8D 0D ?? ?? ?? ?? 4C 39 08 74 ?? BA ?? ?? ?? ?? 48 89
            4C 24 ?? 48 89 44 24 ?? 48 89 54 24 ?? 74 ?? 31 F6 EB ?? 48 8B 02 48 8B 5A ?? 48 8B
            4A ?? E8 ?? ?? ?? ?? 84 C0 74 ?? 48 8B 44 24 ?? 48 8B 4C 24 ?? 48 8B 54 24 ?? 48 8B
            5C 24 ?? 4C 8D 0D ?? ?? ?? ?? 31 F6 EB ?? 48 8B 54 24 ?? 48 8B 02 48 8B 5A ?? 48 8B
            4A ?? E8 ?? ?? ?? ?? 83 F0 ?? 48 8B 4C 24 ?? 48 8B 54 24 ?? 48 8B 5C 24 ?? 4C 8D 0D
            ?? ?? ?? ?? 89 C6 48 8B 44 24 ?? 40 84 F6 74 ?? 4C 8B 12 4C 8B 5A ?? 4C 8B 62 ?? 49
            83 FB ?? 75 ?? 4C 89 D6 EB ?? 49 83 FB ?? 75 ?? 31 F6 E9 ?? ?? ?? ?? 48 8D 51 ?? 48
            39 D3 0F 8F ?? ?? ?? ?? 0F 1F 40 ?? E9 ?? ?? ?? ?? 31 F6 48 85 F6 74 ?? 4C 89 D0 4C
            89 DB 4C 89 E1 E8 ?? ?? ?? ?? 48 8B 35 ?? ?? ?? ?? 48 8B 15 ?? ?? ?? ?? 48 8B 3D ??
            ?? ?? ?? 4C 8D 46 ?? 4C 39 C7 73 ?? 48 89 44 24 ?? 48 89 5C 24 ?? 48 8D 05 ?? ?? ??
            ?? 48 89 D3 48 89 F1 4C 89 C6 E8 ?? ?? ?? ?? 48 89 0D ?? ?? ?? ?? 83 3D ?? ?? ?? ??