SYMBOLCOMMON_NAMEaka. SYNONYMS
win.olympic_destroyer (Back to overview)

Olympic Destroyer

aka: SOURGRAPE
VTCollection    

Malware which seems to have no function other than to disrupt computer systems related to the 2018 Winter Olympic event.

References
2024-04-16MandiantAlden Wahlstrom, Anton Prokopenkov, Dan Black, Dan Perez, Gabby Roncone, John Wolfram, Lexie Aytes, Nick Simonian, Ryan Hall, Tyler McLellan
APT44: Unearthing Sandworm
VPNFilter BlackEnergy CaddyWiper EternalPetya HermeticWiper Industroyer INDUSTROYER2 Olympic Destroyer PartyTicket RoarBAT Sandworm
2022-08-13YoutTube (Blue Team Village)Seongsu Park
Attribution and Bias: My terrible mistakes in threat intelligence attribution
AppleJeus Olympic Destroyer
2022-08-12CrowdStrikeIoan Iacob, Iulian Madalin Ionita
The Anatomy of Wiper Malware, Part 1: Common Techniques
Apostle CaddyWiper DEADWOOD DistTrack DoubleZero DUSTMAN HermeticWiper IsaacWiper IsraBye KillDisk Meteor Olympic Destroyer Ordinypt Petya Sierra(Alfa,Bravo, ...) StoneDrill WhisperGate ZeroCleare
2022-04-28FortinetGergely Revay
An Overview of the Increasing Wiper Malware Threat
AcidRain CaddyWiper DistTrack DoubleZero EternalPetya HermeticWiper IsaacWiper Olympic Destroyer Ordinypt WhisperGate ZeroCleare
2020-11-12YouTube (Tomorrow Unlocked)Tomorrow Unlocked
They wanted us to point the finger in the wrong direction!
Olympic Destroyer
2020-11-12YouTube (Tomorrow Unlocked)Tomorrow Unlocked
Those hackers wanted to be found!
Olympic Destroyer
2020-11-12YouTube (Tomorrow Unlocked)Tomorrow Unlocked
Who hacked the 2018 Winter Games?
Olympic Destroyer
2020-10-19Riskint BlogCurtis
Revisited: Fancy Bear's New Faces...and Sandworms' too
BlackEnergy EternalPetya Industroyer Olympic Destroyer
2020-10-19WiredAndy Greenberg
US Indicts Sandworm, Russia's Most Destructive Cyberwar Unit
EternalPetya Olympic Destroyer
2020-07-29Kaspersky LabsGReAT
APT trends report Q2 2020
PhantomLance Dacls Penquin Turla elf.wellmess AppleJeus Dacls AcidBox Cobalt Strike Dacls EternalPetya Godlike12 Olympic Destroyer PlugX shadowhammer ShadowPad Sinowal VHD Ransomware Volgmer WellMess X-Agent XTunnel
2019-10-17WiredAndy Greenberg
The Untold Story of the 2018 Olympics Cyberattack, the Most Deceptive Hack in History
Olympic Destroyer
2019-08-01Kaspersky LabsGReAT
APT trends report Q2 2019
ZooPark magecart POWERSTATS Chaperone COMpfun EternalPetya FinFisher RAT HawkEye Keylogger HOPLIGHT Microcin NjRAT Olympic Destroyer PLEAD RokRAT Triton Zebrocy
2019-05-08Verizon Communications Inc.Verizon Communications Inc.
2019 Data Breach Investigations Report
BlackEnergy Cobalt Strike DanaBot Gandcrab GreyEnergy Mirai Olympic Destroyer SamSam
2018-06-19Kaspersky LabsGReAT
Hades, the actor behind Olympic Destroyer is still alive
Olympic Destroyer
2018-03-28Robert Michel
Dissecting Olympic Destroyer – a walk-through
Olympic Destroyer
2018-03-09Lastlinelastline Labs Team
From Russia(?) with Code
Olympic Destroyer
2018-03-08Kaspersky LabsGReAT
The devil’s in the Rich header
Olympic Destroyer
2018-03-08Kaspersky LabsGReAT
OlympicDestroyer is here to trick the industry
Olympic Destroyer
2018-02-26Cisco TalosMartin Lee, Paul Rascagnères
Who Wasn’t Responsible for Olympic Destroyer?
Olympic Destroyer
2018-02-21LastlineAlexander Sevtsov, Stefano Ortolani
Olympic Destroyer: A new Candidate in South Korea
Olympic Destroyer
2018-02-15MBSDSatoshi Sugawara, Takashi Yoshikawa
Olympic Destroyer
Olympic Destroyer
2018-02-13EndgameDevon Kerr
Stopping Olympic Destroyer: New Process Injection Insights
Olympic Destroyer
2018-02-12CiscoBen Baker, Matthew Molyett, Paul Rascagnères, Warren Mercer
Olympic Destroyer Takes Aim At Winter Olympics
Olympic Destroyer
2018-01-01Virus BulletinPaul Rascagnères, Warren Mercer
VB2018 paper: Who wasn’t responsible for Olympic Destroyer
Olympic Destroyer
2017-05-31MITREMITRE ATT&CK
Sandworm Team
CyclopsBlink Exaramel BlackEnergy EternalPetya Exaramel GreyEnergy KillDisk MimiKatz Olympic Destroyer Sandworm
Yara Rules
[TLP:WHITE] win_olympic_destroyer_auto (20241030 | Detects win.olympic_destroyer.)
rule win_olympic_destroyer_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2024-10-31"
        version = "1"
        description = "Detects win.olympic_destroyer."
        info = "autogenerated rule brought to you by yara-signator"
        tool = "yara-signator v0.6.0"
        signator_config = "callsandjumps;datarefs;binvalue"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.olympic_destroyer"
        malpedia_rule_date = "20241030"
        malpedia_hash = "26e26953c49c8efafbf72a38076855d578e0a2e4"
        malpedia_version = "20241030"
        malpedia_license = "CC BY-SA 4.0"
        malpedia_sharing = "TLP:WHITE"

    /* DISCLAIMER
     * The strings used in this rule have been automatically selected from the
     * disassembly of memory dumps and unpacked files, using YARA-Signator.
     * The code and documentation is published here:
     * https://github.com/fxb-cocacoding/yara-signator
     * As Malpedia is used as data source, please note that for a given
     * number of families, only single samples are documented.
     * This likely impacts the degree of generalization these rules will offer.
     * Take the described generation method also into consideration when you
     * apply the rules in your use cases and assign them confidence levels.
     */


    strings:
        $sequence_0 = { 56 33c0 89542414 57 }
            // n = 4, score = 200
            //   56                   | push                esi
            //   33c0                 | xor                 eax, eax
            //   89542414             | mov                 dword ptr [esp + 0x14], edx
            //   57                   | push                edi

        $sequence_1 = { 89442448 e8???????? 83c404 85c0 0f84e1010000 8d842494000000 }
            // n = 6, score = 100
            //   89442448             | mov                 dword ptr [esp + 0x48], eax
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   85c0                 | test                eax, eax
            //   0f84e1010000         | je                  0x1e7
            //   8d842494000000       | lea                 eax, [esp + 0x94]

        $sequence_2 = { c70424???????? e8???????? bb???????? c70424???????? e8???????? bb???????? }
            // n = 6, score = 100
            //   c70424????????       |                     
            //   e8????????           |                     
            //   bb????????           |                     
            //   c70424????????       |                     
            //   e8????????           |                     
            //   bb????????           |                     

        $sequence_3 = { 83c620 3b442418 72ba 8b742420 817c242403010000 }
            // n = 5, score = 100
            //   83c620               | add                 esi, 0x20
            //   3b442418             | cmp                 eax, dword ptr [esp + 0x18]
            //   72ba                 | jb                  0xffffffbc
            //   8b742420             | mov                 esi, dword ptr [esp + 0x20]
            //   817c242403010000     | cmp                 dword ptr [esp + 0x24], 0x103

        $sequence_4 = { 83f807 77c4 ff248571335400 8bce e8???????? }
            // n = 5, score = 100
            //   83f807               | cmp                 eax, 7
            //   77c4                 | ja                  0xffffffc6
            //   ff248571335400       | jmp                 dword ptr [eax*4 + 0x543371]
            //   8bce                 | mov                 ecx, esi
            //   e8????????           |                     

        $sequence_5 = { 8bd6 897c2418 8906 e8???????? 83c404 85c0 7470 }
            // n = 7, score = 100
            //   8bd6                 | mov                 edx, esi
            //   897c2418             | mov                 dword ptr [esp + 0x18], edi
            //   8906                 | mov                 dword ptr [esi], eax
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   85c0                 | test                eax, eax
            //   7470                 | je                  0x72

        $sequence_6 = { 68???????? ba???????? e8???????? 83c418 85c0 0f84eb000000 a1???????? }
            // n = 7, score = 100
            //   68????????           |                     
            //   ba????????           |                     
            //   e8????????           |                     
            //   83c418               | add                 esp, 0x18
            //   85c0                 | test                eax, eax
            //   0f84eb000000         | je                  0xf1
            //   a1????????           |                     

        $sequence_7 = { 50 6a02 8bcf e8???????? 8b451c }
            // n = 5, score = 100
            //   50                   | push                eax
            //   6a02                 | push                2
            //   8bcf                 | mov                 ecx, edi
            //   e8????????           |                     
            //   8b451c               | mov                 eax, dword ptr [ebp + 0x1c]

        $sequence_8 = { 50 6a01 ff7510 e8???????? 83c41c 8bf0 807f4500 }
            // n = 7, score = 100
            //   50                   | push                eax
            //   6a01                 | push                1
            //   ff7510               | push                dword ptr [ebp + 0x10]
            //   e8????????           |                     
            //   83c41c               | add                 esp, 0x1c
            //   8bf0                 | mov                 esi, eax
            //   807f4500             | cmp                 byte ptr [edi + 0x45], 0

        $sequence_9 = { 50 6a03 e8???????? 8b542440 }
            // n = 4, score = 100
            //   50                   | push                eax
            //   6a03                 | push                3
            //   e8????????           |                     
            //   8b542440             | mov                 edx, dword ptr [esp + 0x40]

        $sequence_10 = { 6a28 50 ff15???????? 56 56 6a10 8d45ec }
            // n = 7, score = 100
            //   6a28                 | push                0x28
            //   50                   | push                eax
            //   ff15????????         |                     
            //   56                   | push                esi
            //   56                   | push                esi
            //   6a10                 | push                0x10
            //   8d45ec               | lea                 eax, [ebp - 0x14]

        $sequence_11 = { 50 6a02 ff75e4 ff15???????? 85c0 74c0 }
            // n = 6, score = 100
            //   50                   | push                eax
            //   6a02                 | push                2
            //   ff75e4               | push                dword ptr [ebp - 0x1c]
            //   ff15????????         |                     
            //   85c0                 | test                eax, eax
            //   74c0                 | je                  0xffffffc2

        $sequence_12 = { 8d442424 ba09000000 50 8d4c2420 }
            // n = 4, score = 100
            //   8d442424             | lea                 eax, [esp + 0x24]
            //   ba09000000           | mov                 edx, 9
            //   50                   | push                eax
            //   8d4c2420             | lea                 ecx, [esp + 0x20]

        $sequence_13 = { 68???????? bb???????? e8???????? bb???????? c70424???????? e8???????? bb???????? }
            // n = 7, score = 100
            //   68????????           |                     
            //   bb????????           |                     
            //   e8????????           |                     
            //   bb????????           |                     
            //   c70424????????       |                     
            //   e8????????           |                     
            //   bb????????           |                     

        $sequence_14 = { 8d85c0f9ffff 50 ffd7 85c0 747a ffb590f9ffff e8???????? }
            // n = 7, score = 100
            //   8d85c0f9ffff         | lea                 eax, [ebp - 0x640]
            //   50                   | push                eax
            //   ffd7                 | call                edi
            //   85c0                 | test                eax, eax
            //   747a                 | je                  0x7c
            //   ffb590f9ffff         | push                dword ptr [ebp - 0x670]
            //   e8????????           |                     

        $sequence_15 = { 6aff 6a04 6aff ff75ec 8945f0 }
            // n = 5, score = 100
            //   6aff                 | push                -1
            //   6a04                 | push                4
            //   6aff                 | push                -1
            //   ff75ec               | push                dword ptr [ebp - 0x14]
            //   8945f0               | mov                 dword ptr [ebp - 0x10], eax

        $sequence_16 = { 50 6a05 6a00 ff742444 ff742438 }
            // n = 5, score = 100
            //   50                   | push                eax
            //   6a05                 | push                5
            //   6a00                 | push                0
            //   ff742444             | push                dword ptr [esp + 0x44]
            //   ff742438             | push                dword ptr [esp + 0x38]

        $sequence_17 = { c744241cd0f25500 894c2424 c744242c00000000 751b }
            // n = 4, score = 100
            //   c744241cd0f25500     | mov                 dword ptr [esp + 0x1c], 0x55f2d0
            //   894c2424             | mov                 dword ptr [esp + 0x24], ecx
            //   c744242c00000000     | mov                 dword ptr [esp + 0x2c], 0
            //   751b                 | jne                 0x1d

        $sequence_18 = { 0f85f5feffff ffb58cf9ffff ff15???????? 8b4df8 5f 5e 33cd }
            // n = 7, score = 100
            //   0f85f5feffff         | jne                 0xfffffefb
            //   ffb58cf9ffff         | push                dword ptr [ebp - 0x674]
            //   ff15????????         |                     
            //   8b4df8               | mov                 ecx, dword ptr [ebp - 8]
            //   5f                   | pop                 edi
            //   5e                   | pop                 esi
            //   33cd                 | xor                 ecx, ebp

        $sequence_19 = { 56 8d85e4efffff 50 6a01 8d85f8efffff 50 }
            // n = 6, score = 100
            //   56                   | push                esi
            //   8d85e4efffff         | lea                 eax, [ebp - 0x101c]
            //   50                   | push                eax
            //   6a01                 | push                1
            //   8d85f8efffff         | lea                 eax, [ebp - 0x1008]
            //   50                   | push                eax

        $sequence_20 = { 50 6a01 ff742424 e8???????? 83c40c 8b7f08 }
            // n = 6, score = 100
            //   50                   | push                eax
            //   6a01                 | push                1
            //   ff742424             | push                dword ptr [esp + 0x24]
            //   e8????????           |                     
            //   83c40c               | add                 esp, 0xc
            //   8b7f08               | mov                 edi, dword ptr [edi + 8]

        $sequence_21 = { 8d542404 56 8bf1 e8???????? 85c0 7416 }
            // n = 6, score = 100
            //   8d542404             | lea                 edx, [esp + 4]
            //   56                   | push                esi
            //   8bf1                 | mov                 esi, ecx
            //   e8????????           |                     
            //   85c0                 | test                eax, eax
            //   7416                 | je                  0x18

        $sequence_22 = { 50 6a04 e8???????? 8b45fc 33d2 }
            // n = 5, score = 100
            //   50                   | push                eax
            //   6a04                 | push                4
            //   e8????????           |                     
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]
            //   33d2                 | xor                 edx, edx

    condition:
        7 of them and filesize < 1392640
}
Download all Yara Rules