SYMBOLCOMMON_NAMEaka. SYNONYMS
win.uroburos (Back to overview)

Uroburos

aka: Snake

Actor(s): Turla Group


Uroburos is a driver for Windows, including a bypass of PatchGuard. According to Andrzej Dereszowski and Matthieu Kaczmarek, "the techniques used demonstrate [their] excellent knowledge of Windows kernel internals."

References
2022-05-11ExaTrackTristan Pourcelot
@techreport{pourcelot:20220511:tricephalic:d8d6265, author = {Tristan Pourcelot}, title = {{Tricephalic Hellkeeper: a tale of a passive backdoor}}, date = {2022-05-11}, institution = {ExaTrack}, url = {https://exatrack.com/public/Tricephalic_Hellkeeper.pdf}, language = {English}, urldate = {2022-05-25} } Tricephalic Hellkeeper: a tale of a passive backdoor
BPFDoor Bvp47 Uroburos
2020SecureworksSecureWorks
@online{secureworks:2020:iron:de2007f, author = {SecureWorks}, title = {{IRON HUNTER}}, date = {2020}, organization = {Secureworks}, url = {https://www.secureworks.com/research/threat-profiles/iron-hunter}, language = {English}, urldate = {2020-05-23} } IRON HUNTER
Agent.BTZ Cobra Carbon System LightNeuron Mosquito Nautilus Neuron Skipper Uroburos Turla Group
2018-11-22nccgroupBen Humphrey
@online{humphrey:20181122:turla:de7f30a, author = {Ben Humphrey}, title = {{Turla PNG Dropper is back}}, date = {2018-11-22}, organization = {nccgroup}, url = {https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2018/november/turla-png-dropper-is-back/}, language = {English}, urldate = {2019-11-21} } Turla PNG Dropper is back
Uroburos Turla Group
2018-03CrySyS LabBoldizsar Bencsath
@techreport{bencsath:201803:territorial:04343bb, author = {Boldizsar Bencsath}, title = {{Territorial Dispute – NSA’s perspective on APT landscape}}, date = {2018-03}, institution = {CrySyS Lab}, url = {https://www.crysys.hu/publications/files/tedi/ukatemicrysys_territorialdispute.pdf}, language = {English}, urldate = {2020-05-07} } Territorial Dispute – NSA’s perspective on APT landscape
9002 RAT Agent.BTZ DuQu EYService Flame FlowerShop Stuxnet Uroburos
2018-02-09ExaTrackStéfan Le Berre
@techreport{berre:20180209:hey:8be9a1c, author = {Stéfan Le Berre}, title = {{Hey Uroburos! What's up ?}}, date = {2018-02-09}, institution = {ExaTrack}, url = {https://exatrack.com/public/Uroburos_EN.pdf}, language = {English}, urldate = {2022-05-25} } Hey Uroburos! What's up ?
Uroburos
2017-08-18vmwareJared Myers
@online{myers:20170818:threat:6ee2607, author = {Jared Myers}, title = {{Threat Analysis: Carbon Black Threat Research Dissects PNG Dropper}}, date = {2017-08-18}, organization = {vmware}, url = {https://www.carbonblack.com/2017/08/18/threat-analysis-carbon-black-threat-research-dissects-png-dropper/}, language = {English}, urldate = {2020-01-09} } Threat Analysis: Carbon Black Threat Research Dissects PNG Dropper
Uroburos
2014-11-11G DataG Data
@online{data:20141111:uroburos:8dce097, author = {G Data}, title = {{The Uroburos case: new sophisticated RAT identified}}, date = {2014-11-11}, organization = {G Data}, url = {https://www.gdatasoftware.com/blog/2014/11/23937-the-uroburos-case-new-sophisticated-rat-identified}, language = {English}, urldate = {2020-01-08} } The Uroburos case: new sophisticated RAT identified
Agent.BTZ Uroburos
2014-08-07Kaspersky LabsGReAT
@online{great:20140807:epic:f8b0803, author = {GReAT}, title = {{The Epic Turla Operation}}, date = {2014-08-07}, organization = {Kaspersky Labs}, url = {https://securelist.com/analysis/publications/65545/the-epic-turla-operation/}, language = {English}, urldate = {2021-07-02} } The Epic Turla Operation
Cobra Carbon System Uroburos Wipbot Turla Group
2014-06-02G DataG Data
@online{data:20140602:analysis:1038a5f, author = {G Data}, title = {{Analysis of Uroburos, using WinDbg}}, date = {2014-06-02}, organization = {G Data}, url = {https://www.gdatasoftware.com/blog/2014/06/23953-analysis-of-uroburos-using-windbg}, language = {English}, urldate = {2020-01-09} } Analysis of Uroburos, using WinDbg
Uroburos
2014-05-13G DataG Data
@online{data:20140513:uroburos:a8b1175, author = {G Data}, title = {{Uroburos rootkit: Belgian Foreign Ministry stricken}}, date = {2014-05-13}, organization = {G Data}, url = {https://www.gdatasoftware.com/blog/2014/05/23958-uroburos-rootkit-belgian-foreign-ministry-stricken}, language = {English}, urldate = {2019-10-27} } Uroburos rootkit: Belgian Foreign Ministry stricken
Uroburos
2014-03-12Blog (Artem Baranov)Andrzej Dereszowski, Matthieu Kaczmarek
@techreport{dereszowski:20140312:uroburos:789e718, author = {Andrzej Dereszowski and Matthieu Kaczmarek}, title = {{Uroburos: the snake rootkit}}, date = {2014-03-12}, institution = {Blog (Artem Baranov)}, url = {https://artemonsecurity.com/uroburos.pdf}, language = {English}, urldate = {2022-05-25} } Uroburos: the snake rootkit
Uroburos
2014-03-07G DataG Data
@online{data:20140307:uroburos:22ddc69, author = {G Data}, title = {{Uroburos – Deeper travel into kernel protection mitigation}}, date = {2014-03-07}, organization = {G Data}, url = {https://www.gdatasoftware.com/blog/2014/03/23966-uroburos-deeper-travel-into-kernel-protection-mitigation}, language = {English}, urldate = {2019-11-23} } Uroburos – Deeper travel into kernel protection mitigation
Uroburos
2014-02-28G Data BlogG Data
@online{data:20140228:uroburos:f6fdb48, author = {G Data}, title = {{Uroburos - highly complex espionage software with Russian roots}}, date = {2014-02-28}, organization = {G Data Blog}, url = {https://www.gdatasoftware.com/blog/2014/02/23968-uroburos-highly-complex-espionage-software-with-russian-roots}, language = {English}, urldate = {2019-11-28} } Uroburos - highly complex espionage software with Russian roots
Uroburos
2014circl.luCIRCL
@online{circl:2014:tr25:97f9b0e, author = {CIRCL}, title = {{TR-25 Analysis - Turla / Pfinet / Snake/ Uroburos}}, date = {2014}, organization = {circl.lu}, url = {https://www.circl.lu/pub/tr-25/}, language = {English}, urldate = {2020-07-01} } TR-25 Analysis - Turla / Pfinet / Snake/ Uroburos
Cobra Carbon System Uroburos Turla Group
Yara Rules
[TLP:WHITE] win_uroburos_auto (20220411 | Detects win.uroburos.)
rule win_uroburos_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2022-04-08"
        version = "1"
        description = "Detects win.uroburos."
        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.uroburos"
        malpedia_rule_date = "20220405"
        malpedia_hash = "ecd38294bd47d5589be5cd5490dc8bb4804afc2a"
        malpedia_version = "20220411"
        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 = { 7526 85d2 7411 8b493c }
            // n = 4, score = 300
            //   7526                 | jne                 0x28
            //   85d2                 | test                edx, edx
            //   7411                 | je                  0x13
            //   8b493c               | mov                 ecx, dword ptr [ecx + 0x3c]

        $sequence_1 = { 8b5d08 56 8b750c 09f6 }
            // n = 4, score = 300
            //   8b5d08               | mov                 ebx, dword ptr [ebp + 8]
            //   56                   | push                esi
            //   8b750c               | mov                 esi, dword ptr [ebp + 0xc]
            //   09f6                 | or                  esi, esi

        $sequence_2 = { 83fe03 7526 57 56 53 e8???????? 09c0 }
            // n = 7, score = 300
            //   83fe03               | cmp                 esi, 3
            //   7526                 | jne                 0x28
            //   57                   | push                edi
            //   56                   | push                esi
            //   53                   | push                ebx
            //   e8????????           |                     
            //   09c0                 | or                  eax, eax

        $sequence_3 = { a1???????? 09c0 7408 57 56 53 }
            // n = 6, score = 300
            //   a1????????           |                     
            //   09c0                 | or                  eax, eax
            //   7408                 | je                  0xa
            //   57                   | push                edi
            //   56                   | push                esi
            //   53                   | push                ebx

        $sequence_4 = { 750c 09c0 7537 57 50 53 }
            // n = 6, score = 300
            //   750c                 | jne                 0xe
            //   09c0                 | or                  eax, eax
            //   7537                 | jne                 0x39
            //   57                   | push                edi
            //   50                   | push                eax
            //   53                   | push                ebx

        $sequence_5 = { 8b442408 09c0 750e 3905???????? }
            // n = 4, score = 300
            //   8b442408             | mov                 eax, dword ptr [esp + 8]
            //   09c0                 | or                  eax, eax
            //   750e                 | jne                 0x10
            //   3905????????         |                     

        $sequence_6 = { e8???????? 09f6 7405 83fe03 7526 }
            // n = 5, score = 300
            //   e8????????           |                     
            //   09f6                 | or                  esi, esi
            //   7405                 | je                  7
            //   83fe03               | cmp                 esi, 3
            //   7526                 | jne                 0x28

        $sequence_7 = { c20c00 55 54 5d 53 8b5d08 56 }
            // n = 7, score = 300
            //   c20c00               | ret                 0xc
            //   55                   | push                ebp
            //   54                   | push                esp
            //   5d                   | pop                 ebp
            //   53                   | push                ebx
            //   8b5d08               | mov                 ebx, dword ptr [ebp + 8]
            //   56                   | push                esi

        $sequence_8 = { 50 5f 09ff 59 751e 56 }
            // n = 6, score = 300
            //   50                   | push                eax
            //   5f                   | pop                 edi
            //   09ff                 | or                  edi, edi
            //   59                   | pop                 ecx
            //   751e                 | jne                 0x20
            //   56                   | push                esi

        $sequence_9 = { 8bc2 4881c108010000 483bc1 7211 }
            // n = 4, score = 200
            //   8bc2                 | add                 ecx, 0x108
            //   4881c108010000       | dec                 eax
            //   483bc1               | cmp                 eax, ecx
            //   7211                 | jb                  0x13

        $sequence_10 = { 4d 8bc6 0f845c010000 4c }
            // n = 4, score = 200
            //   4d                   | dec                 ebp
            //   8bc6                 | mov                 eax, esi
            //   0f845c010000         | je                  0x162
            //   4c                   | dec                 esp

        $sequence_11 = { 89542434 8b0d???????? ebd3 e8???????? 49 890424 85ff }
            // n = 7, score = 200
            //   89542434             | mov                 dword ptr [esp + 0x34], edx
            //   8b0d????????         |                     
            //   ebd3                 | jmp                 0xffffffd5
            //   e8????????           |                     
            //   49                   | dec                 ecx
            //   890424               | mov                 dword ptr [esp], eax
            //   85ff                 | test                edi, edi

        $sequence_12 = { 7503 4c8b3e 488b0e 498bd7 }
            // n = 4, score = 200
            //   7503                 | mov                 dword ptr [esp + 0x30], ebx
            //   4c8b3e               | xor                 edx, edx
            //   488b0e               | inc                 esp
            //   498bd7               | lea                 eax, dword ptr [edx + 0x68]

        $sequence_13 = { 4c 8978e8 48 8d4c2420 }
            // n = 4, score = 200
            //   4c                   | dec                 esp
            //   8978e8               | mov                 dword ptr [eax - 0x18], edi
            //   48                   | dec                 eax
            //   8d4c2420             | lea                 ecx, dword ptr [esp + 0x20]

        $sequence_14 = { e8???????? 4c 8b5c2458 48 }
            // n = 4, score = 200
            //   e8????????           |                     
            //   4c                   | dec                 esp
            //   8b5c2458             | mov                 ebx, dword ptr [esp + 0x58]
            //   48                   | dec                 eax

        $sequence_15 = { 895c2430 e9???????? 33d2 448d4268 }
            // n = 4, score = 200
            //   895c2430             | cmp                 eax, ecx
            //   e9????????           |                     
            //   33d2                 | mov                 ecx, dword ptr [ecx + 0x3c]
            //   448d4268             | mov                 eax, edx

        $sequence_16 = { 85c0 7405 e9???????? 448bc7 }
            // n = 4, score = 200
            //   85c0                 | arpl                word ptr [eax + 0x3c], ax
            //   7405                 | inc                 edx
            //   e9????????           |                     
            //   448bc7               | cmp                 dword ptr [eax + eax], 0x4550

        $sequence_17 = { 7506 4883c078 eb06 480588000000 }
            // n = 4, score = 200
            //   7506                 | jne                 0xc
            //   4883c078             | mov                 eax, 0x21590067
            //   eb06                 | dec                 ecx
            //   480588000000         | mov                 dword ptr [eax], esi

        $sequence_18 = { 8be9 b90a020000 498bf0 488bda }
            // n = 4, score = 200
            //   8be9                 | inc                 esp
            //   b90a020000           | mov                 eax, ecx
            //   498bf0               | jne                 0x28
            //   488bda               | test                edx, edx

        $sequence_19 = { 3bdd 7ce3 48 8b6c2438 48 8b5c2430 }
            // n = 6, score = 200
            //   3bdd                 | cmp                 ebx, ebp
            //   7ce3                 | jl                  0xffffffe5
            //   48                   | dec                 eax
            //   8b6c2438             | mov                 ebp, dword ptr [esp + 0x38]
            //   48                   | dec                 eax
            //   8b5c2430             | mov                 ebx, dword ptr [esp + 0x30]

        $sequence_20 = { 750a 8d43ff e9???????? 33db }
            // n = 4, score = 200
            //   750a                 | jne                 0xc
            //   8d43ff               | lea                 eax, dword ptr [ebx - 1]
            //   e9????????           |                     
            //   33db                 | xor                 ebx, ebx

        $sequence_21 = { 750a b867005921 e9???????? 498930 448bc1 }
            // n = 5, score = 200
            //   750a                 | dec                 eax
            //   b867005921           | add                 ecx, 0x108
            //   e9????????           |                     
            //   498930               | dec                 eax
            //   448bc1               | cmp                 eax, ecx

        $sequence_22 = { 7459 48 8bcb e8???????? 85c0 }
            // n = 5, score = 200
            //   7459                 | je                  0x5b
            //   48                   | dec                 eax
            //   8bcb                 | mov                 ecx, ebx
            //   e8????????           |                     
            //   85c0                 | test                eax, eax

        $sequence_23 = { c1e320 4c 0bdf 4d }
            // n = 4, score = 200
            //   c1e320               | shl                 ebx, 0x20
            //   4c                   | dec                 esp
            //   0bdf                 | or                  ebx, edi
            //   4d                   | dec                 ebp

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