
BlackLotus-Z2A-Challenge, Hier gibt es noch nichts zu sehen, bitte gehen Sie weiter
BlackLotus-Z2A-Challenge, hier gibt es im Moment nichts zu sehen, bitte weitergehen
Das Wichtigste zuerst

Nur aus ästhetischen Gründen werde ich schamlos die Yara-Erkennungsregeln aus der Lösung von @darthmaulware(Ryan “DM” Smith) ausleihen (stehlen) :)), nur um es professionell aussehen zu lassen. Schau dir seinen Twitter an, er ist eine verdammt coole Person! Ps. Ryan, bitte sei nicht sauer, weil ich das geklaut habe :))) und danke für die Unterstützung auf Discord :)
Bitte schau dir auch seine Arbeit an :)
https://gitlab.com/malre-rcs/zero2automated/-/blob/main/solutions/bi_weekly_challenge/BlackLotus_20230321/BlackLotus_HTTP_Downloader.ipynb``` rule Blacklotus_HTTP_Downloader { meta: description = "Rule to detect Blacklotus HTTP Downloader" author = "Darth Maulware" sha256 = "d68f668b4240f9518e4f80499d93d8c5a1eddece0771658c33ae916cc54f5a66"
strings:
$opcode1 = {48 89 4C 24 08 48 89 54 24 10 4C}
$opcode2 = {89 44 24 18 4C 89 4C 24 20 48 83}
$opcode3 = {EC 28 B9 31 62 D7 2E 90 90 E8 ??}
$opcode4 = {?? ?? ?? 48 83 C4 28 48 8B 4C 24}
$opcode5 = {08 48 8B 54 24 10 4C 8B 44 24 18}
$opcode6 = {4C 8B 4C 24 20 4C 8B D1 90 90}
condition:
(uint16(0) == 0x5a4d and filesize < 500KB and all of them)
}
Auch aus ästhetischen Gründen werde ich das auch klauen, weil es cool aussieht :) nochmal sorry Ryan, bitte sei mir nicht böse :)```
C:\\Users\\REM\\Desktop>capa.exe -f pe -r capa-rules-5.0.0 d68f668b4240f9518e4f80499d93d8c5a1eddece0771658c33ae916cc54f5a66.exe
matching: 100%|████████| 124/124 [00:02<00:00, 46.96 functions/s, skipped 1 library functions (0%)]
+------------------------+------------------------------------------------------------------------------------+
| ATT&CK Tactic | ATT&CK Technique |
|------------------------+------------------------------------------------------------------------------------|
| DEFENSE EVASION | Obfuscated Files or Information T1027 |
| DISCOVERY | Process Discovery T1057 |
| EXECUTION | Shared Modules T1129 |
+------------------------+------------------------------------------------------------------------------------+
+-----------------------------+-------------------------------------------------------------------------------+
| MBC Objective | MBC Behavior |
|-----------------------------+-------------------------------------------------------------------------------|
| ANTI-BEHAVIORAL ANALYSIS | Debugger Detection::Process Environment Block BeingDebugged [B0001.035] |
| | Debugger Detection::Process Environment Block NtGlobalFlag [B0001.036] |
| CRYPTOGRAPHY | Encrypt Data::RC4 [C0027.009] |
| | Generate Pseudo-random Sequence::RC4 PRGA [C0021.004] |
| DATA | Encode Data::XOR [C0026.002] |
| DEFENSE EVASION | Obfuscated Files or Information::Encoding-Standard Algorithm [E1027.m02] |
+-----------------------------+-------------------------------------------------------------------------------+
+------------------------------------------------------+------------------------------------------------------+
| CAPABILITY | NAMESPACE |
|------------------------------------------------------+------------------------------------------------------|
| execute syscall instruction (35 matches) | anti-analysis |
| check for PEB BeingDebugged flag (2 matches) | anti-analysis/anti-debugging/debugger-detection |
| check for PEB NtGlobalFlag flag | anti-analysis/anti-debugging/debugger-detection |
| encode data using XOR (2 matches) | data-manipulation/encoding/xor |
| encrypt data using RC4 PRGA (2 matches) | data-manipulation/encryption/rc4 |
| get process heap flags | host-interaction/process |
| get ntdll base address (3 matches) | linking/runtime-linking |
| parse PE header (2 matches) | load-code/pe |
| resolve function by parsing PE exports (2 matches) | load-code/pe |
+------------------------------------------------------+------------------------------------------------------+
tbh wenn ich du wäre, würde ich capa nicht zu 100 % vertrauen (zumindest nicht in diesem speziellen Fall), weil es hier sagt, dass die Sample RC4 verwendet, obwohl sie tatsächlich AES verwendet, aber egal, wie bereits erwähnt, ist das rein ästhetisch :)
Bevor wir loslegen, wirst du in diesem Report eine Menge

sehen.
Bitte ignoriere das, da IDA das in Assembly nicht richtig disassemblieren kann, das ist

Und das lässt den Debugger abstürzen? Warum?
Weil versucht wird, an Adresse 0 zu schreiben, was im Hacker-Folklor als Schreiben auf eine Nullzeiger-Adresse bekannt ist, was früher weit verbreitet ausgenutzt wurde, um CE (Code Execution) zu erlangen, und das wurde offensichtlich entschärft.
Und so wird bei der aktuellen Absicherung, wenn du versuchst, an 0 zu schreiben, der Prozess abstürzen – in unserem Fall die Malware und folglich der Debugger.
Wenn wir das jetzt in IDA öffnen

Ich habe jede Funktion umbenannt, um eine gewisse Logik anzudeuten. Fangen wir mit der ersten Funktion an, do_syscall()

Wir bemerken sofort die Verwendung von Syscalls, was eine bekannte Methode ist, um das Leben eines Analysten bei der dynamischen Analyse schwerer zu machen.
Für diejenigen, die mit Syscalls in Windows nicht vertraut sind, hier ein cooles Video von oalabs (https://www.youtube.com/watch?v=Uba3SQH2jNE). Bitte schau es dir an, denn ich habe es auch getan, und es hat mir sehr geholfen zu verstehen, was in dieser Funktion passiert.
Wenn wir den von IDA aufgelösten „Pseudo-Code“ untersuchen, sehen wir, dass es so aussieht

Wenn wir statisch solve_hash untersuchen, sieht es so aus
