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

Pattern signatures:
$send_result_to_peer_v1_p1 = {
            55 89 E5 57 56 53 81 EC ?? ?? ?? ?? 8B 45 ?? 8B 55 ?? 66 89 85 ?? ?? ?? ?? 66 89 95
            ?? ?? ?? ?? 8D 95 ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 44 24 ?? C7 44 24 ?? ?? ?? ?? ?? 89
            14 24 E8 ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? 66 81 BD ?? ?? ?? ?? ?? ?? 77 ?? 0F B7 8D
            ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 8B 55 ?? 89 C7 89 D6 FC F3 A4 EB ?? 8D 85 ?? ?? ?? ??
            8B 55 ?? 89 C1 B8 ?? ?? ?? ?? 89 44 24 ?? 89 54 24 ?? 89 0C 24 E8 ?? ?? ?? ?? 8D 85
            ?? ?? ?? ?? 89 45 ?? 8B 45 ?? 8B 40 ?? 89 45 ?? 8B 45 ?? 8B 50 ?? 8B 45 ?? 89 50 ??
            8B 55 ?? 8B 45 ?? 89 42 ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ?? 89 C2 8D 85 ?? ?? ??
            ?? 01 D0 89 45 ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ?? 0F B7 40 ?? 66 89 45 ?? 8B 45
            ?? 0F B7 10 8B 45 ?? 66 89 50 ?? 8B 55 ?? 0F B7 45 ?? 66 89 02 8B 45 ?? 89 C2 8D 85
            ?? ?? ?? ?? 01 D0 89 45 ?? 8B 45 ?? C6 40 ?? ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ??
         

Detection condition:
uint32(0) == 0x464C457F and
        (
            (
                (
                    all of ($send_result_to_peer_v1_p*)
                ) and
                (
                    $execute_remote_command_v1
                ) and
                (
                    all of ($send_reply_v1_p*)


Full rule:
rule Linux_Backdoor_GTPDOOR : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Backdoor"
        tc_detection_name   = "GTPDOOR"
        tc_detection_factor = 5

    strings:

        $send_result_to_peer_v1_p1 = {
            55 89 E5 57 56 53 81 EC ?? ?? ?? ?? 8B 45 ?? 8B 55 ?? 66 89 85 ?? ?? ?? ?? 66 89 95
            ?? ?? ?? ?? 8D 95 ?? ?? ?? ?? B8 ?? ?? ?? ?? 89 44 24 ?? C7 44 24 ?? ?? ?? ?? ?? 89
            14 24 E8 ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ?? 66 81 BD ?? ?? ?? ?? ?? ?? 77 ?? 0F B7 8D
            ?? ?? ?? ?? 8D 85 ?? ?? ?? ?? 8B 55 ?? 89 C7 89 D6 FC F3 A4 EB ?? 8D 85 ?? ?? ?? ??
            8B 55 ?? 89 C1 B8 ?? ?? ?? ?? 89 44 24 ?? 89 54 24 ?? 89 0C 24 E8 ?? ?? ?? ?? 8D 85
            ?? ?? ?? ?? 89 45 ?? 8B 45 ?? 8B 40 ?? 89 45 ?? 8B 45 ?? 8B 50 ?? 8B 45 ?? 89 50 ??
            8B 55 ?? 8B 45 ?? 89 42 ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ?? 89 C2 8D 85 ?? ?? ??
            ?? 01 D0 89 45 ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ?? 0F B7 40 ?? 66 89 45 ?? 8B 45
            ?? 0F B7 10 8B 45 ?? 66 89 50 ?? 8B 55 ?? 0F B7 45 ?? 66 89 02 8B 45 ?? 89 C2 8D 85
            ?? ?? ?? ?? 01 D0 89 45 ?? 8B 45 ?? C6 40 ?? ?? 8B 45 ?? 83 C0 ?? 89 45 ?? 8B 45 ??
            89 C2 8D 85 ?? ?? ?? ?? 01 D0 89 45 ?? 8B 45 ?? 66 C7 40 ?? ?? ?? 66 81 BD ?? ?? ??
            ?? ?? ?? 76 ?? 8B 45 ?? 83 C0 ?? BA ?? ?? ?? ?? 89 44 24 ?? C7 44 24 ?? ?? ?? ?? ??
            8B 45 ?? 89 44 24 ?? C7 44 24 ?? ?? ?? ?? ?? 89 14 24 E8 ?? ?? ?? ?? C7 04 24 ?? ??
            ?? ?? E8 ?? ?? ?? ?? 89 C2 8B 45 ?? 66 89 50 ?? 8B 45 ?? 66 C7 40 ?? ?? ?? EB ?? 8B
            45 ?? 83 C0 ?? 0F B7 95 ?? ?? ?? ?? B9 ?? ?? ?? ?? 89 44 24 ?? 89 54 24 ?? 8B 45