SYMBOLCOMMON_NAMEaka. SYNONYMS
win.xagent (Back to overview)

X-Agent

aka: splm, chopstick

Actor(s): APT28

VTCollection    

There is no description at this point.

References
2026-03-10ESET ResearchESET Research
Sednit reloaded: Back in the trenches
BEARDSHELL GRUNT SLIMAGENT X-Agent XTunnel
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
2020-02-13QianxinQi Anxin Threat Intelligence Center
APT Report 2019
Chrysaor Exodus Dacls VPNFilter DNSRat Griffon KopiLuwak More_eggs SQLRat AppleJeus BONDUPDATER Agent.BTZ Anchor AndroMut AppleJeus BOOSTWRITE Brambul Carbanak Cobalt Strike Dacls DistTrack DNSpionage Dtrack ELECTRICFISH FlawedAmmyy FlawedGrace Get2 Grateful POS HOPLIGHT Imminent Monitor RAT jason Joanap KerrDown KEYMARBLE Lambert LightNeuron LoJax MiniDuke PolyglotDuke PowerRatankba Rising Sun SDBbot ServHelper Snatch Stuxnet TinyMet tRat TrickBot Volgmer X-Agent Zebrocy
2020-01-01SecureworksSecureWorks
IRON TWILIGHT
X-Agent X-Agent X-Agent Computrace HideDRV Sedreco Seduploader X-Agent XTunnel Zebrocy Zebrocy (AutoIT)
2018-10-04NCSC UKNCSC UK
Indicators of Compromise for Malware used by APT28
X-Agent
2018-10-04SymantecCritical Attack Discovery and Intelligence Team
APT28: New Espionage Operations Target Military and Government Organizations
LoJax Seduploader X-Agent XTunnel Zebrocy APT28
2018-02-20Kaspersky LabsGReAT
A Slice of 2017 Sofacy Activity
X-Agent Seduploader X-Agent Zebrocy Zebrocy (AutoIT) APT28
2017-12-21ESET ResearchESET Research
Sednit update: How Fancy Bear Spent the Year
Seduploader X-Agent
2017-02-20Contagio DumpMila Parkour
Part I. Russian APT - APT28 collection of samples including OSX XAgent
X-Agent Komplex Coreshell Downdelph HideDRV SEADADDY Sedreco Seduploader X-Agent XTunnel
2017-01-10FireEyeFireEye iSIGHT Intelligence
APT28: At The Center Of The Storm
Coreshell OLDBAIT Sedreco Seduploader X-Agent
2016-10-20ESET ResearchESET Research
En Route with Sednit Part 2: Observing the Comings and Goings
X-Agent Sedreco X-Agent XTunnel
2016-06-15CrowdStrikeDmitri Alperovitch
Bears in the Midst: Intrusion into the Democratic National Committee
X-Agent ATI-Agent SEADADDY Seduploader X-Agent XTunnel APT28
2015-12-04Kaspersky LabsGReAT
Sofacy APT hits high profile targets with updated toolset
Coreshell Sedreco Seduploader X-Agent APT28
2014-09-05GoogleBilly Leonard, Neel Mehta, Shane Huntiey
Peering Into the Aquarium: Analysis of a Sophisticated Multi-Stage Malware Family
X-Agent
2014-01-01FireEyeFireEye
APT28
Coreshell Sedreco X-Agent
Yara Rules
[TLP:WHITE] win_xagent_auto (20260504 | Detects win.xagent.)
rule win_xagent_auto {

    meta:
        author = "Felix Bilstein - yara-signator at cocacoding dot com"
        date = "2026-05-04"
        version = "1"
        description = "Detects win.xagent."
        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.xagent"
        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 = { c1ea02 6bd20d b801000000 2bc2 }
            // n = 4, score = 2900
            //   c1ea02               | shr                 edx, 2
            //   6bd20d               | imul                edx, edx, 0xd
            //   b801000000           | mov                 eax, 1
            //   2bc2                 | sub                 eax, edx

        $sequence_1 = { ff15???????? 8bd8 e8???????? 03d8 }
            // n = 4, score = 2900
            //   ff15????????         |                     
            //   8bd8                 | mov                 ebx, eax
            //   e8????????           |                     
            //   03d8                 | add                 ebx, eax

        $sequence_2 = { ff460c 03ff 03ff 3b7e0c 7707 c7460c00000000 49 }
            // n = 7, score = 2600
            //   ff460c               | inc                 dword ptr [esi + 0xc]
            //   03ff                 | add                 edi, edi
            //   03ff                 | add                 edi, edi
            //   3b7e0c               | cmp                 edi, dword ptr [esi + 0xc]
            //   7707                 | ja                  9
            //   c7460c00000000       | mov                 dword ptr [esi + 0xc], 0
            //   49                   | dec                 ecx

        $sequence_3 = { c7460c00000000 49 894e10 7507 c7460c00000000 }
            // n = 5, score = 2600
            //   c7460c00000000       | mov                 dword ptr [esi + 0xc], 0
            //   49                   | dec                 ecx
            //   894e10               | mov                 dword ptr [esi + 0x10], ecx
            //   7507                 | jne                 9
            //   c7460c00000000       | mov                 dword ptr [esi + 0xc], 0

        $sequence_4 = { c20400 8d4de4 e8???????? b8???????? c3 83c8ff }
            // n = 6, score = 2600
            //   c20400               | ret                 4
            //   8d4de4               | lea                 ecx, [ebp - 0x1c]
            //   e8????????           |                     
            //   b8????????           |                     
            //   c3                   | ret                 
            //   83c8ff               | or                  eax, 0xffffffff

        $sequence_5 = { 8b0482 8b0488 8b4e10 85c9 7423 8b7e08 ff460c }
            // n = 7, score = 2600
            //   8b0482               | mov                 eax, dword ptr [edx + eax*4]
            //   8b0488               | mov                 eax, dword ptr [eax + ecx*4]
            //   8b4e10               | mov                 ecx, dword ptr [esi + 0x10]
            //   85c9                 | test                ecx, ecx
            //   7423                 | je                  0x25
            //   8b7e08               | mov                 edi, dword ptr [esi + 8]
            //   ff460c               | inc                 dword ptr [esi + 0xc]

        $sequence_6 = { e8???????? 8b4604 85c0 7407 8b4d08 8b11 }
            // n = 6, score = 2600
            //   e8????????           |                     
            //   8b4604               | mov                 eax, dword ptr [esi + 4]
            //   85c0                 | test                eax, eax
            //   7407                 | je                  9
            //   8b4d08               | mov                 ecx, dword ptr [ebp + 8]
            //   8b11                 | mov                 edx, dword ptr [ecx]

        $sequence_7 = { 8b7a08 c1e802 83e103 3bf8 7702 2bc7 8b5204 }
            // n = 7, score = 2600
            //   8b7a08               | mov                 edi, dword ptr [edx + 8]
            //   c1e802               | shr                 eax, 2
            //   83e103               | and                 ecx, 3
            //   3bf8                 | cmp                 edi, eax
            //   7702                 | ja                  4
            //   2bc7                 | sub                 eax, edi
            //   8b5204               | mov                 edx, dword ptr [edx + 4]

        $sequence_8 = { ff15???????? 6a08 e8???????? 83c404 85c0 }
            // n = 5, score = 2600
            //   ff15????????         |                     
            //   6a08                 | push                8
            //   e8????????           |                     
            //   83c404               | add                 esp, 4
            //   85c0                 | test                eax, eax

        $sequence_9 = { eb02 8b11 8b4808 8bc1 57 8b7a08 c1e802 }
            // n = 7, score = 2600
            //   eb02                 | jmp                 4
            //   8b11                 | mov                 edx, dword ptr [ecx]
            //   8b4808               | mov                 ecx, dword ptr [eax + 8]
            //   8bc1                 | mov                 eax, ecx
            //   57                   | push                edi
            //   8b7a08               | mov                 edi, dword ptr [edx + 8]
            //   c1e802               | shr                 eax, 2

        $sequence_10 = { 740c 488b07 488b0b 488903 48890f 488b5c2430 488b6c2438 }
            // n = 7, score = 1300
            //   740c                 | mov                 dword ptr [ebx], eax
            //   488b07               | dec                 esp
            //   488b0b               | mov                 dword ptr [edi], edx
            //   488903               | dec                 eax
            //   48890f               | mov                 edx, dword ptr [ebx]
            //   488b5c2430           | je                  0xe
            //   488b6c2438           | dec                 eax

        $sequence_11 = { 740c 488b07 4c8b13 488903 4c8917 488b13 488b0e }
            // n = 7, score = 1300
            //   740c                 | call                dword ptr [eax + 8]
            //   488b07               | dec                 eax
            //   4c8b13               | mov                 edi, dword ptr [ebp - 0x71]
            //   488903               | je                  0xe
            //   4c8917               | dec                 eax
            //   488b13               | mov                 eax, dword ptr [edi]
            //   488b0e               | dec                 esp

        $sequence_12 = { 4883792800 498bf9 498bf0 488bea }
            // n = 4, score = 1300
            //   4883792800           | jne                 0x10
            //   498bf9               | dec                 ecx
            //   498bf0               | mov                 edi, esi
            //   488bea               | jne                 0xfffffffa

        $sequence_13 = { e8???????? 48833b00 740a 488b4308 }
            // n = 4, score = 1300
            //   e8????????           |                     
            //   48833b00             | dec                 esp
            //   740a                 | mov                 dword ptr [edi], edx
            //   488b4308             | je                  0xe

        $sequence_14 = { e8???????? 488b4328 4c8bcf 4c8bc6 }
            // n = 4, score = 1300
            //   e8????????           |                     
            //   488b4328             | mov                 edx, dword ptr [ebx]
            //   4c8bcf               | dec                 eax
            //   4c8bc6               | mov                 dword ptr [ebx], eax

        $sequence_15 = { e8???????? 90 0fb705???????? 6689442420 }
            // n = 4, score = 1300
            //   e8????????           |                     
            //   90                   | mov                 eax, dword ptr [edi]
            //   0fb705????????       |                     
            //   6689442420           | dec                 esp

        $sequence_16 = { 7509 488b03 488bcb ff5008 488b7d8f }
            // n = 5, score = 1300
            //   7509                 | jne                 0xb
            //   488b03               | dec                 eax
            //   488bcb               | mov                 eax, dword ptr [ebx]
            //   ff5008               | dec                 eax
            //   488b7d8f             | mov                 ecx, ebx

        $sequence_17 = { 4053 4883ec20 488b5910 4885db 7416 }
            // n = 5, score = 1300
            //   4053                 | sub                 esi, ebp
            //   4883ec20             | dec                 eax
            //   488b5910             | mov                 edi, ebx
            //   4885db               | dec                 eax
            //   7416                 | test                ebx, ebx

        $sequence_18 = { b803b57ea5 f7e6 c1ea06 6bd263 }
            // n = 4, score = 500
            //   b803b57ea5           | mov                 eax, 0xa57eb503
            //   f7e6                 | mul                 esi
            //   c1ea06               | shr                 edx, 6
            //   6bd263               | imul                edx, edx, 0x63

        $sequence_19 = { 75f8 492bca 4963c1 483bc1 }
            // n = 4, score = 200
            //   75f8                 | dec                 eax
            //   492bca               | cmp                 eax, ecx
            //   4963c1               | jae                 0x86
            //   483bc1               | dec                 esp

        $sequence_20 = { 75f8 492bc9 8bc3 483bc1 737f 4c8b4718 }
            // n = 6, score = 200
            //   75f8                 | jne                 0xfffffffa
            //   492bc9               | dec                 ecx
            //   8bc3                 | sub                 ecx, ecx
            //   483bc1               | mov                 eax, ebx
            //   737f                 | dec                 eax
            //   4c8b4718             | cmp                 eax, ecx

        $sequence_21 = { 75f8 492bdc 498bfe 4d85f6 }
            // n = 4, score = 200
            //   75f8                 | jne                 0xfffffffa
            //   492bdc               | dec                 ecx
            //   498bfe               | sub                 ecx, edx
            //   4d85f6               | dec                 ecx

        $sequence_22 = { 75f8 492bfc 498bf5 4d85ed }
            // n = 4, score = 200
            //   75f8                 | dec                 eax
            //   492bfc               | mov                 esi, edi
            //   498bf5               | dec                 eax
            //   4d85ed               | test                edi, edi

        $sequence_23 = { 75f8 492bf5 ff15???????? 8d0c3e }
            // n = 4, score = 200
            //   75f8                 | dec                 eax
            //   492bf5               | mov                 esi, edi
            //   ff15????????         |                     
            //   8d0c3e               | dec                 eax

        $sequence_24 = { 75f8 492bdd 488bf7 4885ff }
            // n = 4, score = 200
            //   75f8                 | sub                 ebx, esp
            //   492bdd               | dec                 ecx
            //   488bf7               | mov                 edi, esi
            //   4885ff               | dec                 ebp

        $sequence_25 = { 75f8 492bf5 488bfb 4885db }
            // n = 4, score = 200
            //   75f8                 | mov                 edi, ebp
            //   492bf5               | jne                 0xfffffffa
            //   488bfb               | dec                 ecx
            //   4885db               | sub                 ebx, esp

    condition:
        7 of them and filesize < 729088
}
[TLP:WHITE] win_xagent_w0   (20170517 | Sofacy Group Malware Sample 3)
rule win_xagent_w0 {
    meta:
        description = "Sofacy Group Malware Sample 3"
        author = "Florian Roth"
        reference = "http://dokumente.linksfraktion.de/inhalt/report-orig.pdf"
        date = "2015-06-19"
        hash = "5f6b2a0d1d966fc4f1ed292b46240767f4acb06c13512b0061b434ae2a692fa1"
		source = "https://github.com/mattulm/sfiles_yara/blob/master/malware/sofacy_xtunnel_bundestag.yar"
        malpedia_reference = "https://malpedia.caad.fkie.fraunhofer.de/details/win.xagent"
        malpedia_version = "20170517"
        malpedia_license = "CC BY-NC-SA 4.0"
        malpedia_sharing = "TLP:WHITE"
    strings:
        $s1 = "shell\\open\\command=\"System Volume Information\\USBGuard.exe\" install" fullword ascii 
        $s2 = ".?AVAgentModuleRemoteKeyLogger@@" fullword ascii 
        $s3 = "<font size=4 color=red>process isn't exist</font>" fullword ascii 
        $s4 = "<font size=4 color=red>process is exist</font>" fullword ascii 
        $s5 = ".winnt.check-fix.com" fullword ascii 
        $s6 = ".update.adobeincorp.com" fullword ascii 
        $s7 = ".microsoft.checkwinframe.com" fullword ascii
        $s8 = "adobeincorp.com" fullword wide 
        $s9 = "# EXC: HttpSender - Cannot create Get Channel!" fullword ascii 

        $x1 = "User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:20.0) Gecko/20100101 Firefox/" wide 
        $x2 = "User-Agent: Mozilla/5.0 (Windows NT 6.; WOW64; rv:20.0) Gecko/20100101 Firefox/2" wide 
        $x3 = "C:\\Windows\\System32\\cmd.exe" fullword wide 
    condition:
        uint16(0) == 0x5a4d and filesize < 300KB and (
            2 of ($s*) or 
            ( 1 of ($s*) and all of ($x*) )
        ) 
}
Download all Yara Rules