SYMBOLCOMMON_NAMEaka. SYNONYMS
win.tuoni (Back to overview)

Tuoni

VTCollection    

According to its Github repo, Tuoni is a sophisticated, cross-platform red teaming framework designed to enhance cybersecurity education and training through large-scale cyber defense exercises. Developed using Java for robustness, Docker for versatility, and featuring an intuitive web browser interface, it supports and streamlines cyber exercises. With its modular, extendable plugin system, Tuoni offers Red Teamers the flexibility to tailor its capabilities for specific educational and exercise needs. Its user-friendly interface facilitates easy operation and efficient reporting, essential in training environments. Tuoni embodies a commitment to power, adaptability, and collaboration, aimed at empowering Red Teamers with a tool that meets the dynamic demands of modern cyber defense education.

References
2024-02-02Github (shell-dot)shell-dot
Tuoni
Tuoni
Yara Rules
[TLP:WHITE] win_tuoni_auto (20260504 | Detects win.tuoni.)
rule win_tuoni_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.tuoni."
        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.tuoni"
        malpedia_rule_date = "20260422"
        malpedia_hash = "a182e35da64e6d71cb55f125c4d4225196523f14"
        malpedia_version = "20260504"
        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 = { 8b4508 8bc8 83e03f c1f906 6bd038 8b0c8d30464500 }
            // n = 6, score = 100
            //   8b4508               | mov                 eax, dword ptr [ebp + 8]
            //   8bc8                 | mov                 ecx, eax
            //   83e03f               | and                 eax, 0x3f
            //   c1f906               | sar                 ecx, 6
            //   6bd038               | imul                edx, eax, 0x38
            //   8b0c8d30464500       | mov                 ecx, dword ptr [ecx*4 + 0x454630]

        $sequence_1 = { e9???????? 8b4330 8b4804 894dcc 8b01 ff5004 8365fc00 }
            // n = 7, score = 100
            //   e9????????           |                     
            //   8b4330               | mov                 eax, dword ptr [ebx + 0x30]
            //   8b4804               | mov                 ecx, dword ptr [eax + 4]
            //   894dcc               | mov                 dword ptr [ebp - 0x34], ecx
            //   8b01                 | mov                 eax, dword ptr [ecx]
            //   ff5004               | call                dword ptr [eax + 4]
            //   8365fc00             | and                 dword ptr [ebp - 4], 0

        $sequence_2 = { 8d45f4 64a300000000 894df0 8b8578040000 8b3d???????? 894548 }
            // n = 6, score = 100
            //   8d45f4               | lea                 eax, [ebp - 0xc]
            //   64a300000000         | mov                 dword ptr fs:[0], eax
            //   894df0               | mov                 dword ptr [ebp - 0x10], ecx
            //   8b8578040000         | mov                 eax, dword ptr [ebp + 0x478]
            //   8b3d????????         |                     
            //   894548               | mov                 dword ptr [ebp + 0x48], eax

        $sequence_3 = { 59 8945e4 c645fc04 85c0 7416 6a40 56 }
            // n = 7, score = 100
            //   59                   | pop                 ecx
            //   8945e4               | mov                 dword ptr [ebp - 0x1c], eax
            //   c645fc04             | mov                 byte ptr [ebp - 4], 4
            //   85c0                 | test                eax, eax
            //   7416                 | je                  0x18
            //   6a40                 | push                0x40
            //   56                   | push                esi

        $sequence_4 = { 53 ff7500 85c0 7515 e8???????? 59 59 }
            // n = 7, score = 100
            //   53                   | push                ebx
            //   ff7500               | push                dword ptr [ebp]
            //   85c0                 | test                eax, eax
            //   7515                 | jne                 0x17
            //   e8????????           |                     
            //   59                   | pop                 ecx
            //   59                   | pop                 ecx

        $sequence_5 = { 7510 6a01 ff15???????? 6a01 ff15???????? 8d45e0 50 }
            // n = 7, score = 100
            //   7510                 | jne                 0x12
            //   6a01                 | push                1
            //   ff15????????         |                     
            //   6a01                 | push                1
            //   ff15????????         |                     
            //   8d45e0               | lea                 eax, [ebp - 0x20]
            //   50                   | push                eax

        $sequence_6 = { 7443 ff750c 8d4df8 56 e8???????? 8b45fc ff4604 }
            // n = 7, score = 100
            //   7443                 | je                  0x45
            //   ff750c               | push                dword ptr [ebp + 0xc]
            //   8d4df8               | lea                 ecx, [ebp - 8]
            //   56                   | push                esi
            //   e8????????           |                     
            //   8b45fc               | mov                 eax, dword ptr [ebp - 4]
            //   ff4604               | inc                 dword ptr [esi + 4]

        $sequence_7 = { e8???????? 83ec18 c745fc01000000 8d4520 8965f0 8bcc 50 }
            // n = 7, score = 100
            //   e8????????           |                     
            //   83ec18               | sub                 esp, 0x18
            //   c745fc01000000       | mov                 dword ptr [ebp - 4], 1
            //   8d4520               | lea                 eax, [ebp + 0x20]
            //   8965f0               | mov                 dword ptr [ebp - 0x10], esp
            //   8bcc                 | mov                 ecx, esp
            //   50                   | push                eax

        $sequence_8 = { 66894608 895e20 895dfc 895e24 8d4e28 c645fc01 e8???????? }
            // n = 7, score = 100
            //   66894608             | mov                 word ptr [esi + 8], ax
            //   895e20               | mov                 dword ptr [esi + 0x20], ebx
            //   895dfc               | mov                 dword ptr [ebp - 4], ebx
            //   895e24               | mov                 dword ptr [esi + 0x24], ebx
            //   8d4e28               | lea                 ecx, [esi + 0x28]
            //   c645fc01             | mov                 byte ptr [ebp - 4], 1
            //   e8????????           |                     

        $sequence_9 = { 031c8d30464500 eb0c 8bc8 8bd0 c1f906 8bdf 83e23f }
            // n = 7, score = 100
            //   031c8d30464500       | add                 ebx, dword ptr [ecx*4 + 0x454630]
            //   eb0c                 | jmp                 0xe
            //   8bc8                 | mov                 ecx, eax
            //   8bd0                 | mov                 edx, eax
            //   c1f906               | sar                 ecx, 6
            //   8bdf                 | mov                 ebx, edi
            //   83e23f               | and                 edx, 0x3f

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