Crypto in Malware / Reverse Engineering

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Ovo podpoglavlje pomaže kada vidite crypto/compression unutar binaries i želite brzo da ih prepoznate.

Prepoznavanje kriptografskih / kompresionih algoritama

Heuristike usmerene na tehniku

  • Mnogo shifts/rotates, XORs i 32-bit arithmetic u uskim petljama.
  • Lookup tables (S-boxes) u .data ili generisane u runtime-u.
  • Ponavljajuće petlje od 0x100 iteracija koje upućuju na RC4.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

Ako se koriste, drugi parametar je an ALG_ID:

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

RtlCompressBuffer / RtlDecompressBuffer

Često ukazuje na ugrađenu Windows kompresiju (LZNT1, XPRESS, etc).

Konstante i tabele

Ponekad možete fingerprint-ovati hash/cipher pretraživanjem konstanti (ili prvog dword-a tabela) online.

Primer AES tabela:

Napomene za prepoznavanje RC4

RC4 se često prepoznaje po:

  • Dve petlje od 256 iteracija (init + KSA)
  • Zatim PRGA petlja koja koristi % 256 i XOR-uje keystream sa podacima

Unpacking binaries

Tehnika

Packeri transformišu binary tako da statička analiza bude zavaravajuća (junk code, encrypted sections, runtime unpacking). Cilj je uhvatiti trenutak kada:

  • alocira/dekriptira stvarni kod u memoriji
  • označi ga kao izvršni
  • pređe na njega

Identifikacija packovanih binaries

  • Nedostatak strings (ili samo packer strings)
  • Mnoštvo strings bez xrefs (commercial packers)
  • Koristite packer-ID alate:
  • PEiD
  • Exeinfo PE

Osnovne preporuke

  • Počnite analizu odozdo i radite naviše; unpackeri često skaču kasno.
  • Tražite JMP/CALL reg obrasce ili stack trikove (push addr; retn).
  • Postavite breakpoint na VirtualAlloc/VirtualProtect i pratite RWX regione.
  • Iznenadna eksplozija strings posle skoka često ukazuje da ste stigli do unpacked koda.
  • Dump-ujte memoriju i popravite header-e alatima kao što je PE-bear.

Tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks