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

Pattern signatures:
$network_communication_p1 = {
            48 89 5C 24 ?? 4C 89 44 24 ?? 48 89 4C 24 ?? 55 56 57 41 54 41 55 41 56 41 57 48 83
            EC ?? 45 33 F6 4C 8B EA 45 8B FE 41 8B EE 41 8B FE 48 8B D9 48 8B 05 ?? ?? ?? ?? 44
            3B B8 ?? ?? ?? ?? 0F 83 ?? ?? ?? ?? 48 8B 88 ?? ?? ?? ?? 44 39 74 39 ?? 0F 84 ?? ??
            ?? ?? 48 8B 4C 39 ?? 41 FF C7 48 83 F9 ?? 0F 84 ?? ?? ?? ?? 49 8B D0 FF 15 ?? ?? ??
            ?? 85 C0 48 8B 05 ?? ?? ?? ?? 48 8B 88 ?? ?? ?? ?? 74 ?? 44 89 74 24 ?? 48 8D 84 24
            ?? ?? ?? ?? 44 89 B4 24 ?? ?? ?? ?? 4C 8D 4C 24 ?? 48 8B 4C 39 ?? BA ?? ?? ?? ?? 41
            B8 ?? ?? ?? ?? 48 89 44 24 ?? FF 15 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 41 B0 ?? 48 8B
            81 ?? ?? ?? ?? 44 88 74 07 ?? 8B C5 48 6B D0 ?? 48 03 91 ?? ?? ?? ?? E8 ?? ?? ?? ??
            E9 ?? ?? ?? ?? 48 8B 4C 39 ?? 49 8B D5 FF 15 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 85 C0
            74 ?? 4C 8B 81 ?? ?? ?? ?? 42 80 7C 07 ?? ?? 75 ?? 8B C5 48 6B D0 ?? 49 03 D0 E8 ??
          

Detection condition:
uint16(0) == 0x5A4D and
        (
            all of ($network_communication_p*)
        ) and
        (
            $get_system_information
        ) and
        (
            all of ($get_dns_servers_p*)
        ) and
        (
            all of ($get_network_interfaces_p*)
        )

Full rule:
rule Win64_Backdoor_BackConnect : tc_detection malicious
{
    meta:

        author              = "ReversingLabs"

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

        tc_detection_type   = "Backdoor"
        tc_detection_name   = "BackConnect"
        tc_detection_factor = 5

    strings:

        $network_communication_p1 = {
            48 89 5C 24 ?? 4C 89 44 24 ?? 48 89 4C 24 ?? 55 56 57 41 54 41 55 41 56 41 57 48 83
            EC ?? 45 33 F6 4C 8B EA 45 8B FE 41 8B EE 41 8B FE 48 8B D9 48 8B 05 ?? ?? ?? ?? 44
            3B B8 ?? ?? ?? ?? 0F 83 ?? ?? ?? ?? 48 8B 88 ?? ?? ?? ?? 44 39 74 39 ?? 0F 84 ?? ??
            ?? ?? 48 8B 4C 39 ?? 41 FF C7 48 83 F9 ?? 0F 84 ?? ?? ?? ?? 49 8B D0 FF 15 ?? ?? ??
            ?? 85 C0 48 8B 05 ?? ?? ?? ?? 48 8B 88 ?? ?? ?? ?? 74 ?? 44 89 74 24 ?? 48 8D 84 24
            ?? ?? ?? ?? 44 89 B4 24 ?? ?? ?? ?? 4C 8D 4C 24 ?? 48 8B 4C 39 ?? BA ?? ?? ?? ?? 41
            B8 ?? ?? ?? ?? 48 89 44 24 ?? FF 15 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 41 B0 ?? 48 8B
            81 ?? ?? ?? ?? 44 88 74 07 ?? 8B C5 48 6B D0 ?? 48 03 91 ?? ?? ?? ?? E8 ?? ?? ?? ??
            E9 ?? ?? ?? ?? 48 8B 4C 39 ?? 49 8B D5 FF 15 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 85 C0
            74 ?? 4C 8B 81 ?? ?? ?? ?? 42 80 7C 07 ?? ?? 75 ?? 8B C5 48 6B D0 ?? 49 03 D0 E8 ??
            ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B 89 ?? ?? ?? ?? 49 8B D5 48 8B 4C 39 ?? FF 15 ??
            ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D3 44 8B E0 48 8B 89 ?? ?? ?? ?? 48 8B 4C 39 ??
            FF 15 ?? ?? ?? ?? 48 8B 35 ?? ?? ?? ?? 44 8B F0 48 8B 9E ?? ?? ?? ?? 48 03 DF 83 7B
            ?? ?? 0F 84 ?? ?? ?? ?? 33 C9 E8 ?? ?? ?? ?? 80 7B ?? ?? 75 ?? 48 2B 43 ?? 48 83 F8
            ?? 7E ?? 48 83 4B ?? ?? 45 33 F6 44 89 73 ?? 41 B8 ?? ?? ?? ?? E9