Write-up di reverse engineering di shellcode Python che esegue APC injection in AnyDesk, esfiltra verso un C2 tramite HTTPS con AES/RSA e persiste tramite chiavi GUID nel Registro.
Questa vista di x64dbg rivela che lo shellcode Python utilizza operazioni sui file (CreateFileW, DeleteFileA/W) e trampolini JMP per chiamare dinamicamente le API di Windows.
CreateFileW – Crea o apre un file (rilascio del payload).DeleteFileA / DeleteFileW – Elimina i file (pulizia delle tracce).DefineDosDeviceW – Definisce un dispositivo DOS (manipolazione delle unità).jmp qword ptr ds:[<API>] – risolve dinamicamente gli indirizzi delle API.INT3 (0xCC) – Trappole anti-debug.C:\Users\dkaan\OneDrive\Desktop\output\shellcode.exe.
Vista di x64dbg che mostra CreateFileW, DeleteFileA/W e trampolini JMP.
Questa vista di x64dbg rivela che lo shellcode Python chiama GetCommandLineW per leggere gli argomenti della riga di comando, utilizzando al contempo trappole INT3 per l'anti-debugging.
jmp qword ptr ds:[<GetCommandLineW>] – Trampolino JMP verso GetCommandLineW.&"Sun" – Una stringa di argomento della riga di comando.mov [rsp+8], rbx, sub rsp, 0x20, xor ebx, ebx.test rdx, rdx, je kernel32.7FFBEC730A9.mov rdx, rsi, mov r8, rdi.GetCommandLineW a runtime.
Vista di x64dbg che mostra GetCommandLineW, il parsing della riga di comando e le trappole INT3.
L'analisi della memoria con Process Hacker rivela che lo shellcode Python esegue un'iniezione APC in AnyDesk.exe e utilizza algoritmi crittografici avanzati per l'esfiltrazione dei dati.
AnyDesk.exe (PID 8064) – un legittimo strumento di desktop remoto.AES for x86 / AES for Intel AES-NI – crittografia simmetrica.RSA for x86 – crittografia asimmetrica.SHA256 block transform – hashing.RC4 for x86 – cifrario a flusso.Vector Permutation AES – AES accelerato con SIMD.GHASH for x86 – autenticazione GCM.Montgomery Multiplication – accelerazione RSA.ECP_NISTZ256 for x86 – crittografia a curva ellittica.CreateRemoteThread – non viene creato alcun nuovo thread.
Vista di Process Hacker che mostra l'iniezione in AnyDesk e gli algoritmi crittografici (AES, RSA, SHA256, RC4).
L'analisi con TCPView rivela che lo shellcode Python utilizza AnyDesk.exe per esfiltrare dati verso 141.227.178.79 sulla porta 443 (HTTPS).
AnyDesk.exe (PID 5068) – legittimo strumento di desktop remoto.141.227.178.79443 (HTTPS – si confonde con il traffico legittimo).Established (connessione attiva).
Vista di TCPView che mostra AnyDesk.exe connettersi a 141.227.178.79 sulla porta 443.
L'analisi con Simplewall rivela che, sebbene lo shellcode Python tenti di esfiltrare dati verso 141.227.178.79 tramite la porta 443 (HTTPS) usando AnyDesk.exe, quando viene bloccato tenta di stabilire una connessione verso un altro indirizzo legittimo (92.38.180.106).
AnyDesk.exe (PID 5068) – legittimo strumento di desktop remoto.92.38.180.106443 (HTTPS – si confonde con il traffico legittimo).Blocked (connessione bloccata).
Vista di Simplewall che mostra Anydesk.exe bloccato verso 92.38.180.106 sulla porta 443.
L'analisi del Registro rivela che lo shellcode Python crea chiavi basate su GUID sotto HKLM\SYSTEM\CurrentControlSet\Control\ per la persistenza.