YARA Detection Rule: Win32_Ransomware_Teslacrypt
Repository: reversinglabs/reversinglabs-yara-rules
Detects: Yara rule that detects Teslacrypt ransomware.
Malware family: TESLACRYPT
Author: ReversingLabs

Pattern signatures:
$file_search_0_3_1_1 = {
            B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 C4 89 84 24 ?? ?? ?? ?? 55 56 8B B4 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 84 
            24 ?? ?? ?? ?? 6A ?? 50 66 C7 84 24 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 56 8D 8C 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 51 E8 ?? ?? 
            ?? ?? 68 ?? ?? ?? ?? 8D 94 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 52 E8 ?? ?? ?? ?? 83 C4 ?? 8D 44 24 ?? 50 8D 8C 24 ?? ?? ?? ?? 
            51 FF 15 ?? ?? ?? ?? 8B E8 83 FD ?? 0F 84 B5 01 00 00 53 8B 1D ?? ?? ?? ?? 57 8B BC 24 ?? ?? ?? ?? 8D A4 24 ?? ?? ?? ?? 
            83 3D ?? ?? ?? ?? ?? 0F 85 89 01 00 00 F6 44 24 ?? ?? 0F 84 D2 00 00 00 8D 4C 24 ?? B8 ?? ?? ?? ?? 66 8B 10 66 3B 11 75 
            1E 66 85 D2 74 15 66 8B 50 ?? 66 3B 51 ?? 75 0F 83 C0 ?? 83 C1 ?? 66 85 D2 75 DE 33 C0 EB 05 1B C0 83 D8 ?? 85 C0 0F 84 
            29 01 00 00 8D 4C 24 ?? B8 ?? ?? ?? ?? 8D 49 ?? 66 8B 10 66 3B 11 75 1E 66 85 D2 74 15 66 8B 50 ?? 66 3B 51 ?? 75 0F 83 
            C0 ?? 83 C1 ?? 66 85 D2 75 DE 33

Detection condition:
uint16(0) == 0x5A4D and
        (($file_search_0_3_1_1 and $file_search_0_3_1_2 and $encrypt_file_0_2_6a_1 and $encrypt_file_0_2_6a_2 and $server_communication_0_2_6a_1 and $server_communication_0_2_6a_2) or
        ($file_search_0_3_1_1 and $file_search_0_3_1_2 and $encrypt_file_0_3_1 and $server_c

Full rule:
rule Win32_Ransomware_Teslacrypt : tc_detection malicious
{
    meta:

        author            = "ReversingLabs"

        source              = "ReversingLabs"
        status              = "RELEASED"
        sharing             = "TLP:WHITE"
        category            = "MALWARE"
        malware             = "TESLACRYPT"
        description         = "Yara rule that detects Teslacrypt ransomware."

        tc_detection_type = "Ransomware"
        tc_detection_name = "Teslacrypt"

    strings:
        $file_search_0_3_1_1 = {
            B8 ?? ?? ?? ?? E8 ?? ?? ?? ?? A1 ?? ?? ?? ?? 33 C4 89 84 24 ?? ?? ?? ?? 55 56 8B B4 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 84 
            24 ?? ?? ?? ?? 6A ?? 50 66 C7 84 24 ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? 56 8D 8C 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 51 E8 ?? ?? 
            ?? ?? 68 ?? ?? ?? ?? 8D 94 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 52 E8 ?? ?? ?? ?? 83 C4 ?? 8D 44 24 ?? 50 8D 8C 24 ?? ?? ?? ?? 
            51 FF 15 ?? ?? ?? ?? 8B E8 83 FD ?? 0F 84 B5 01 00 00 53 8B 1D ?? ?? ?? ?? 57 8B BC 24 ?? ?? ?? ?? 8D A4 24 ?? ?? ?? ?? 
            83 3D ?? ?? ?? ?? ?? 0F 85 89 01 00 00 F6 44 24 ?? ?? 0F 84 D2 00 00 00 8D 4C 24 ?? B8 ?? ?? ?? ?? 66 8B 10 66 3B 11 75 
            1E 66 85 D2 74 15 66 8B 50 ?? 66 3B 51 ?? 75 0F 83 C0 ?? 83 C1 ?? 66 85 D2 75 DE 33 C0 EB 05 1B C0 83 D8 ?? 85 C0 0F 84 
            29 01 00 00 8D 4C 24 ?? B8 ?? ?? ?? ?? 8D 49 ?? 66 8B 10 66 3B 11 75 1E 66 85 D2 74 15 66 8B 50 ?? 66 3B 51 ?? 75 0F 83 
            C0 ?? 83 C1 ?? 66 85 D2 75 DE 33 C0 EB 05 1B C0 83 D8 ?? 85 C0 0F 84 EA 00 00 00 56 8D 94 24 ?? ?? ?? ?? 68
        }

        $file_search_0_3_1_2 = { 
            52 E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 68 ?? ?? ?? ?? 50 E8 ?? ?? ?? ?? 8D 4C 24 ?? 51 8D 94 24 ?? ?? ?? 
            ?? 68 ?? ?? ?? ?? 52 E8 ?? ?? ?? ?? 8D 84 24 ?? ?? ?? ?? 57 50 E8 7E FE FF FF 83 C4 ?? E9 93 00 00 00 56 8D 8C 24 ?? ?? 
            ?? ?? 68 ?? ?? ?? ?? 51 E8 ?? ?? ?? ?? 68 ?? ?? ?? ?? 8D 94 24 ?? ?? ?? ?? 68 ?? ?? ?? ??