SYMBOLCOMMON_NAMEaka. SYNONYMS
win.velso (Back to overview)

Velso

VTCollection    

Ransomware that appears to require manually installation (believed to be via RDP). Encrypts files with .velso extension.

References
2018-01-26Bleeping ComputerLawrence Abrams
The Velso Ransomware Being Manually Installed by Attackers
Velso
Yara Rules
[TLP:WHITE] win_velso_auto (20260504 | Detects win.velso.)
rule win_velso_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.velso."
        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.velso"
        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 = { eba6 8b5004 8911 ebf0 89c8 b9???????? ebcf }
            // n = 7, score = 200
            //   eba6                 | jmp                 0xffffffa8
            //   8b5004               | mov                 edx, dword ptr [eax + 4]
            //   8911                 | mov                 dword ptr [ecx], edx
            //   ebf0                 | jmp                 0xfffffff2
            //   89c8                 | mov                 eax, ecx
            //   b9????????           |                     
            //   ebcf                 | jmp                 0xffffffd1

        $sequence_1 = { c7458800000000 881418 8b856cffffff 8945e4 8b45e0 c644180100 8b4d08 }
            // n = 7, score = 200
            //   c7458800000000       | mov                 dword ptr [ebp - 0x78], 0
            //   881418               | mov                 byte ptr [eax + ebx], dl
            //   8b856cffffff         | mov                 eax, dword ptr [ebp - 0x94]
            //   8945e4               | mov                 dword ptr [ebp - 0x1c], eax
            //   8b45e0               | mov                 eax, dword ptr [ebp - 0x20]
            //   c644180100           | mov                 byte ptr [eax + ebx + 1], 0
            //   8b4d08               | mov                 ecx, dword ptr [ebp + 8]

        $sequence_2 = { e9???????? 83c205 89e8 89550c e8???????? 89c6 89e8 }
            // n = 7, score = 200
            //   e9????????           |                     
            //   83c205               | add                 edx, 5
            //   89e8                 | mov                 eax, ebp
            //   89550c               | mov                 dword ptr [ebp + 0xc], edx
            //   e8????????           |                     
            //   89c6                 | mov                 esi, eax
            //   89e8                 | mov                 eax, ebp

        $sequence_3 = { 8d4d08 e8???????? 668945b0 8b45a8 0fb64010 e9???????? c7450800000000 }
            // n = 7, score = 200
            //   8d4d08               | lea                 ecx, [ebp + 8]
            //   e8????????           |                     
            //   668945b0             | mov                 word ptr [ebp - 0x50], ax
            //   8b45a8               | mov                 eax, dword ptr [ebp - 0x58]
            //   0fb64010             | movzx               eax, byte ptr [eax + 0x10]
            //   e9????????           |                     
            //   c7450800000000       | mov                 dword ptr [ebp + 8], 0

        $sequence_4 = { c645a301 e9???????? 0fb645a3 83f001 3a45a2 0f861ffdffff c704242e000000 }
            // n = 7, score = 200
            //   c645a301             | mov                 byte ptr [ebp - 0x5d], 1
            //   e9????????           |                     
            //   0fb645a3             | movzx               eax, byte ptr [ebp - 0x5d]
            //   83f001               | xor                 eax, 1
            //   3a45a2               | cmp                 al, byte ptr [ebp - 0x5e]
            //   0f861ffdffff         | jbe                 0xfffffd25
            //   c704242e000000       | mov                 dword ptr [esp], 0x2e

        $sequence_5 = { 31f6 31ff 807b4600 740b 8b7314 2b7310 89f7 }
            // n = 7, score = 200
            //   31f6                 | xor                 esi, esi
            //   31ff                 | xor                 edi, edi
            //   807b4600             | cmp                 byte ptr [ebx + 0x46], 0
            //   740b                 | je                  0xd
            //   8b7314               | mov                 esi, dword ptr [ebx + 0x14]
            //   2b7310               | sub                 esi, dword ptr [ebx + 0x10]
            //   89f7                 | mov                 edi, esi

        $sequence_6 = { 8d5510 89c1 891424 e8???????? 83ec04 84c0 0f84da040000 }
            // n = 7, score = 200
            //   8d5510               | lea                 edx, [ebp + 0x10]
            //   89c1                 | mov                 ecx, eax
            //   891424               | mov                 dword ptr [esp], edx
            //   e8????????           |                     
            //   83ec04               | sub                 esp, 4
            //   84c0                 | test                al, al
            //   0f84da040000         | je                  0x4e0

        $sequence_7 = { 807dd300 0f84b0000000 8b4510 8b7008 39f3 0f8ce9000000 8b4510 }
            // n = 7, score = 200
            //   807dd300             | cmp                 byte ptr [ebp - 0x2d], 0
            //   0f84b0000000         | je                  0xb6
            //   8b4510               | mov                 eax, dword ptr [ebp + 0x10]
            //   8b7008               | mov                 esi, dword ptr [eax + 8]
            //   39f3                 | cmp                 ebx, esi
            //   0f8ce9000000         | jl                  0xef
            //   8b4510               | mov                 eax, dword ptr [ebp + 0x10]

        $sequence_8 = { 8b7c2420 8b07 8b40f4 8b440778 89c1 8944241c 8b4008 }
            // n = 7, score = 200
            //   8b7c2420             | mov                 edi, dword ptr [esp + 0x20]
            //   8b07                 | mov                 eax, dword ptr [edi]
            //   8b40f4               | mov                 eax, dword ptr [eax - 0xc]
            //   8b440778             | mov                 eax, dword ptr [edi + eax + 0x78]
            //   89c1                 | mov                 ecx, eax
            //   8944241c             | mov                 dword ptr [esp + 0x1c], eax
            //   8b4008               | mov                 eax, dword ptr [eax + 8]

        $sequence_9 = { 8d4d08 c745a801000000 e8???????? 8845a0 8b4598 0fb64010 84c0 }
            // n = 7, score = 200
            //   8d4d08               | lea                 ecx, [ebp + 8]
            //   c745a801000000       | mov                 dword ptr [ebp - 0x58], 1
            //   e8????????           |                     
            //   8845a0               | mov                 byte ptr [ebp - 0x60], al
            //   8b4598               | mov                 eax, dword ptr [ebp - 0x68]
            //   0fb64010             | movzx               eax, byte ptr [eax + 0x10]
            //   84c0                 | test                al, al

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