SYMBOLCOMMON_NAMEaka. SYNONYMS
win.uroburos (Back to overview)

Uroburos

aka: Snake

Actor(s): Turla


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
2023-05-09CISACISA
@online{cisa:20230509:hunting:eee110d, author = {CISA}, title = {{Hunting Russian Intelligence “Snake” Malware}}, date = {2023-05-09}, organization = {CISA}, url = {https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-129a}, language = {English}, urldate = {2023-05-10} } Hunting Russian Intelligence “Snake” Malware
Agent.BTZ Cobra Carbon System Uroburos
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
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://research.nccgroup.com/2018/11/22/turla-png-dropper-is-back/}, language = {English}, urldate = {2023-06-19} } Turla PNG Dropper is back
Uroburos Turla
2018-11-22nccgroupMatt Lewis
@online{lewis:20181122:turla:99cb1b2, author = {Matt Lewis}, 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 = {2023-08-11} } Turla PNG Dropper is back
Uroburos
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
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-17BAE SystemsBAE Systems Applied Intelligence
@techreport{intelligence:20140317:snake:6d2f730, author = {BAE Systems Applied Intelligence}, title = {{Snake Campaign & Espionage Toolkit}}, date = {2014-03-17}, institution = {BAE Systems}, url = {https://artemonsecurity.com/snake_whitepaper.pdf}, language = {English}, urldate = {2022-10-20} } Snake Campaign & Espionage Toolkit
Agent.BTZ 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
Yara Rules
[TLP:WHITE] win_uroburos_auto (20230125 | Detects win.uroburos.)
rule win_uroburos_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2023-01-25"
        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 = "20230124"
        malpedia_hash = "2ee0eebba83dce3d019a90519f2f972c0fcf9686"
        malpedia_version = "20230125"
        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 = 400
            //   7526                 | jne                 0x28
            //   85d2                 | test                edx, edx
            //   7411                 | je                  0x13
            //   8b493c               | mov                 ecx, dword ptr [ecx + 0x3c]

        $sequence_1 = { 85d2 7406 8d4801 0fafcd }
            // n = 4, score = 300
            //   85d2                 | div                 ebp
            //   7406                 | test                edx, edx
            //   8d4801               | je                  0xa
            //   0fafcd               | mov                 eax, ecx

        $sequence_2 = { 09c9 7407 ffd1 a1???????? 832d????????04 3905???????? 73de }
            // n = 7, score = 300
            //   09c9                 | or                  ecx, ecx
            //   7407                 | je                  9
            //   ffd1                 | call                ecx
            //   a1????????           |                     
            //   832d????????04       |                     
            //   3905????????         |                     
            //   73de                 | jae                 0xffffffe0

        $sequence_3 = { 85c0 7405 e9???????? 448bc7 }
            // n = 4, score = 300
            //   85c0                 | add                 ecx, 0x108
            //   7405                 | dec                 eax
            //   e9????????           |                     
            //   448bc7               | cmp                 eax, ecx

        $sequence_4 = { 8b493c 8bc2 4881c108010000 483bc1 }
            // n = 4, score = 300
            //   8b493c               | imul                ecx, ebp
            //   8bc2                 | test                edx, edx
            //   4881c108010000       | je                  8
            //   483bc1               | lea                 ecx, [eax + 1]

        $sequence_5 = { 29c0 eb4e 57 56 }
            // n = 4, score = 300
            //   29c0                 | sub                 eax, eax
            //   eb4e                 | jmp                 0x50
            //   57                   | push                edi
            //   56                   | push                esi

        $sequence_6 = { 85c0 750d 48837c245000 0f95c0 8803 33c0 }
            // n = 6, score = 300
            //   85c0                 | cmp                 ecx, edx
            //   750d                 | jne                 7
            //   48837c245000         | dec                 ebp
            //   0f95c0               | test                eax, eax
            //   8803                 | test                eax, eax
            //   33c0                 | jne                 0xf

        $sequence_7 = { 895c2430 e9???????? 33d2 448d4268 }
            // n = 4, score = 300
            //   895c2430             | dec                 eax
            //   e9????????           |                     
            //   33d2                 | cmp                 dword ptr [esp + 0x50], 0
            //   448d4268             | setne               al

        $sequence_8 = { 09c0 7503 21450c 837d0c00 }
            // n = 4, score = 300
            //   09c0                 | or                  eax, eax
            //   7503                 | jne                 5
            //   21450c               | and                 dword ptr [ebp + 0xc], eax
            //   837d0c00             | cmp                 dword ptr [ebp + 0xc], 0

        $sequence_9 = { 83fe01 89450c 750c 09c0 7537 57 50 }
            // n = 7, score = 300
            //   83fe01               | cmp                 esi, 1
            //   89450c               | mov                 dword ptr [ebp + 0xc], eax
            //   750c                 | jne                 0xe
            //   09c0                 | or                  eax, eax
            //   7537                 | jne                 0x39
            //   57                   | push                edi
            //   50                   | push                eax

        $sequence_10 = { 54 5d 53 8b5d08 56 8b750c 09f6 }
            // n = 7, score = 300
            //   54                   | push                esp
            //   5d                   | pop                 ebp
            //   53                   | push                ebx
            //   8b5d08               | mov                 ebx, dword ptr [ebp + 8]
            //   56                   | push                esi
            //   8b750c               | mov                 esi, dword ptr [ebp + 0xc]
            //   09f6                 | or                  esi, esi

        $sequence_11 = { 5f 09ff 59 751e 56 ff15???????? 8d86e8030000 }
            // n = 7, score = 300
            //   5f                   | pop                 edi
            //   09ff                 | or                  edi, edi
            //   59                   | pop                 ecx
            //   751e                 | jne                 0x20
            //   56                   | push                esi
            //   ff15????????         |                     
            //   8d86e8030000         | lea                 eax, [esi + 0x3e8]

        $sequence_12 = { 40 c20c00 55 54 5d }
            // n = 5, score = 300
            //   40                   | inc                 eax
            //   c20c00               | ret                 0xc
            //   55                   | push                ebp
            //   54                   | push                esp
            //   5d                   | pop                 ebp

        $sequence_13 = { 7704 4183c220 4585c9 740a 453bca 7505 4d85c0 }
            // n = 7, score = 300
            //   7704                 | ja                  6
            //   4183c220             | inc                 ecx
            //   4585c9               | add                 edx, 0x20
            //   740a                 | inc                 ebp
            //   453bca               | test                ecx, ecx
            //   7505                 | je                  0xc
            //   4d85c0               | inc                 ebp

        $sequence_14 = { 8bc1 f7f5 85d2 7406 }
            // n = 4, score = 300
            //   8bc1                 | cmp                 eax, ecx
            //   f7f5                 | test                edx, edx
            //   85d2                 | je                  0x15
            //   7406                 | mov                 ecx, dword ptr [ecx + 0x3c]

        $sequence_15 = { 7433 eb13 8b0d???????? 8b09 09c9 7407 }
            // n = 6, score = 300
            //   7433                 | je                  0x35
            //   eb13                 | jmp                 0x15
            //   8b0d????????         |                     
            //   8b09                 | mov                 ecx, dword ptr [ecx]
            //   09c9                 | or                  ecx, ecx
            //   7407                 | je                  9

        $sequence_16 = { 48 8bf0 49 2bf5 4c }
            // n = 5, score = 200
            //   48                   | dec                 eax
            //   8bf0                 | mov                 esi, eax
            //   49                   | dec                 ecx
            //   2bf5                 | sub                 esi, ebp
            //   4c                   | dec                 esp

        $sequence_17 = { 83c601 49 83c508 41 3bdf 7c82 45 }
            // n = 7, score = 200
            //   83c601               | add                 esi, 1
            //   49                   | dec                 ecx
            //   83c508               | add                 ebp, 8
            //   41                   | inc                 ecx
            //   3bdf                 | cmp                 ebx, edi
            //   7c82                 | jl                  0xffffff84
            //   45                   | inc                 ebp

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

        $sequence_19 = { b901000000 e8???????? 48 85c0 48 8bd8 }
            // n = 6, score = 200
            //   b901000000           | mov                 ecx, 1
            //   e8????????           |                     
            //   48                   | dec                 eax
            //   85c0                 | test                eax, eax
            //   48                   | dec                 eax
            //   8bd8                 | mov                 ebx, eax

        $sequence_20 = { 85c0 7434 48 83c310 83c701 48 }
            // n = 6, score = 200
            //   85c0                 | test                eax, eax
            //   7434                 | je                  0x36
            //   48                   | dec                 eax
            //   83c310               | add                 ebx, 0x10
            //   83c701               | add                 edi, 1
            //   48                   | dec                 eax

        $sequence_21 = { ff15???????? 44 8bd8 49 c1e320 4c }
            // n = 6, score = 200
            //   ff15????????         |                     
            //   44                   | inc                 esp
            //   8bd8                 | mov                 ebx, eax
            //   49                   | dec                 ecx
            //   c1e320               | shl                 ebx, 0x20
            //   4c                   | dec                 esp

        $sequence_22 = { 8b8f58010000 e8???????? 48 895c2430 }
            // n = 4, score = 200
            //   8b8f58010000         | mov                 ecx, dword ptr [edi + 0x158]
            //   e8????????           |                     
            //   48                   | dec                 eax
            //   895c2430             | mov                 dword ptr [esp + 0x30], ebx

        $sequence_23 = { 8b5c2450 48 83c448 c3 4c 8bc6 }
            // n = 6, score = 200
            //   8b5c2450             | mov                 ebx, dword ptr [esp + 0x50]
            //   48                   | dec                 eax
            //   83c448               | add                 esp, 0x48
            //   c3                   | ret                 
            //   4c                   | dec                 esp
            //   8bc6                 | mov                 eax, esi

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