Crypto in Malware / Reverse Engineering

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Questa sottosezione aiuta quando si osserva crypto/compression all’interno di binari e si vuole riconoscerli rapidamente.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • Molti shifts/rotates, XORs e operazioni aritmetiche a 32-bit in loop stretti.
  • Tabelle di lookup (S-boxes) in .data o generate durante l’esecuzione.
  • Loop ripetuti di 0x100 iterazioni che suggeriscono RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Se vengono usate, il secondo parametro è un ALG_ID:

Tabella: https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id

RtlCompressBuffer / RtlDecompressBuffer

Spesso indica la compressione integrata di Windows (LZNT1, XPRESS, etc).

Constants & tables

A volte puoi fingerprintare un hash/cipher cercando costanti (o il primo dword delle tabelle) online.

Esempio di tabelle AES:

RC4 recognition notes

RC4 è spesso riconoscibile da:

  • Due loop di 256 iterazioni (init + KSA)
  • Poi un loop PRGA che usa % 256 e XORa un keystream con i dati

Unpacking binaries

Technique

I packer trasformano un binario in modo che l’analisi statica sia fuorviante (codice junk, sezioni criptate, unpacking a runtime). L’obiettivo è catturare il momento in cui:

  • alloca/decripta il codice reale in memoria
  • marca la memoria come eseguibile
  • salta dentro quel codice

Identifying packed binaries

  • Mancanza di stringhe (o solo stringhe del packer)
  • Molte stringhe senza xrefs (packer commerciali)
  • Usa strumenti per identificare il packer:
  • PEiD
  • Exeinfo PE

Basic recommendations

  • Inizia l’analisi dal fondo e risali; gli unpacker spesso saltano tardi.
  • Cerca pattern JMP/CALL reg o trucchi con lo stack (push addr; retn).
  • Metti breakpoint su VirtualAlloc/VirtualProtect e traccia le regioni RWX.
  • Una esplosione improvvisa di stringhe dopo uno jump spesso indica che hai raggiunto il codice unpacked.
  • Dumpa la memoria e sistema gli header con tool come PE-bear.

Tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks