From 618e617ec86d2ad268908bf03261df39012e5671 Mon Sep 17 00:00:00 2001 From: StrangerealIntel <54320855+StrangerealIntel@users.noreply.github.com> Date: Wed, 12 Feb 2020 23:33:08 +0100 Subject: [PATCH] Update Analysis_2020-02-08.md --- .../Neutrino/Analysis_2020-02-08.md | 68 ++++++++++++++++--- 1 file changed, 60 insertions(+), 8 deletions(-) diff --git a/Additional Analysis/Neutrino/Analysis_2020-02-08.md b/Additional Analysis/Neutrino/Analysis_2020-02-08.md index 3c1dee5..692032f 100644 --- a/Additional Analysis/Neutrino/Analysis_2020-02-08.md +++ b/Additional Analysis/Neutrino/Analysis_2020-02-08.md @@ -3,8 +3,7 @@ * [Malware analysis](#Malware-analysis) + [The initial vector](#Initial) + [Loader](#loader) -* [Threat Intelligence](#Intel) - + [](#Sub_Intel) + + [Final Implant](#Final) * [Cyber kill chain](#Cyber-kill-chain) * [Indicators Of Compromise (IOC)](#IOC) * [Yara Rules](#Yara) @@ -239,15 +238,68 @@ Sub Exec(Name_Payload0 As String) End Sub ``` +

The loader

+
The loader creates a mutex with a name that is hardcoded in the binary:"Z0BAZwxx" ,we can note too that the loader add two rules in the firewall on the victim.
- +```asm +0x00404e3e jb 0x404e4d +0x00404e40 push eax +0x00404e41 push str.Z0BAZwxx ; 0x407098 ; u"Z0BAZwxx" +0x00404e46 push str.netsh_advfirewall_firewall_add_rule_name___s__dir_in_action_allow_program___s ; 0x407138 ; u"netsh advfirewall firewall add rule name=\"%s\" dir=in action=allow program=\"%s\"" +0x00404e4b jmp 0x404e58 +0x00404e4d push str.Z0BAZwxx ; 0x407098 ; u"Z0BAZwxx" +0x00404e52 push eax +0x00404e53 push str.netsh_firewall_add_allowedprogram___s___s_ENABLE ; 0x4070d0 ; u"netsh firewall add allowedprogram \"%s\" %s ENABLE" +0x00404e58 push esi +0x00404e59 call ebx +0x00404e5b add esp, 0x10 +0x00404e5e push esi +``` + +
This push a run key for the persistence for the implant :

+Key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
+Name: [a-z]{5}_32.exe/[a-z]{5}.exe [x86/x64]
+Path: C:\Users\admin\AppData\Roaming\Z0BAZwxx\{Filename}

+The name of the mutex is also used for the name of folder in Appdata.
+ +
The loader use a xor for get the final implant.
+ +```asm +0x004066db xor word [eax], 0xff ; 255 +0x004066e0 add eax, 2 +0x004066e3 cmp word [eax], 0 +0x004066e7 jne 0x4066db +``` + +
Once the data extracted, this create a new process if rights is high, this use runas by wmi call instead it
+ +```asm +0x00405e2e push str.ComSpec ; 0x4070ac ; u"ComSpec" +0x00405e33 call eax + +0x00405e5a push str.a__c__s ; 0x4070bc ; u" /a /c %s" +0x00405e5f push esi +0x00405e60 call dword [ebp - 0x28] +0x00405e63 push 0x3c7bf3ff +0x00405e68 push ebx + +0x00405eef push str.process_call_create__s ; 0x4071f8 ; u"process call create %s" +0x00405ef4 push eax +0x00405ef5 call esi +0x00405ef7 add esp, 0x10 +0x00405efa test eax, eax + +0x00405f18 push 0xb289d372 +0x00405f1d push 8 ; 8 +0x00405f1f mov dword [ebp - 0x44], 0x3c ; '<' ; 60 +0x00405f26 mov dword [ebp - 0x38], str.runas ; 0x407228 ; u"runas" +0x00405f2d mov dword [ebp - 0x34], str.wmic ; 0x407234 ; u"wmic" +0x00405f34 mov dword [ebp - 0x30], eax +``` + +

Final Implant

-

Threat Intelligence

-

- -

-

Cyber kill chain

The process graph resume cyber kill chains used by the attacker :