Crypto in Malware / Reverse Engineering

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

์ด ํ•˜์œ„ ์„น์…˜์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋‚ด๋ถ€์—์„œ crypto/compression์ด ๋ณด์ผ ๋•Œ ์ด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ธ์‹ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Identifying cryptographic / compression algorithms

Technique-first heuristics

  • ํƒ€์ดํŠธํ•œ ๋ฃจํ”„์—์„œ ๋งŽ์€ shifts/rotates, XORs, ๋ฐ 32-bit arithmetic.
  • .data์— ์žˆ๋Š” lookup tables (S-boxes) ๋˜๋Š” ๋Ÿฐํƒ€์ž„์— ์ƒ์„ฑ๋˜๋Š” ํ…Œ์ด๋ธ”.
  • 0x100 ๋ฐ˜๋ณต ๋ฃจํ”„๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ๊ฒฝ์šฐ RC4๋ฅผ ์•”์‹œํ•  ์ˆ˜ ์žˆ์Œ.

Windows crypto/compression APIs

CryptDeriveKey / CryptCreateHash

์ด ํ•จ์ˆ˜๋“ค์ด ์‚ฌ์šฉ๋˜๋ฉด ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ALG_ID์ž…๋‹ˆ๋‹ค:

ํ…Œ์ด๋ธ”: https://learn.microsoft.com/en-us/windows/win32/seccrypto/alg-id

RtlCompressBuffer / RtlDecompressBuffer

์ข…์ข… ๋‚ด์žฅ Windows ์••์ถ•(LZNT1, XPRESS ๋“ฑ)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Constants & tables

๋•Œ๋•Œ๋กœ ์ƒ์ˆ˜(๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ์ฒซ dword)๋ฅผ ์˜จ๋ผ์ธ์—์„œ ๊ฒ€์ƒ‰ํ•˜์—ฌ hash/cipher๋ฅผ ์ง€๋ฌธํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AES tables ์˜ˆ์‹œ:

RC4 recognition notes

RC4๋Š” ๋ณดํ†ต ๋‹ค์Œ์œผ๋กœ ์ธ์‹๋ฉ๋‹ˆ๋‹ค:

  • 256 ๋ฐ˜๋ณต์˜ ๋‘ ๋ฃจํ”„ (init + KSA)
  • ๊ทธ ๋‹ค์Œ % 256์„ ์‚ฌ์šฉํ•˜๊ณ  keystream์„ ๋ฐ์ดํ„ฐ์™€ XORํ•˜๋Š” PRGA ๋ฃจํ”„

Unpacking binaries

Technique

Packers๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋ณ€ํ˜•ํ•˜์—ฌ static analysis๊ฐ€ ์˜ค๋„๋˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค (junk code, encrypted sections, runtime unpacking). ๋ชฉํ‘œ๋Š” ๋‹ค์Œ ์ˆœ๊ฐ„์„ ํฌ์ฐฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค:

  • ๋ฉ”๋ชจ๋ฆฌ์— ์‹ค์ œ ์ฝ”๋“œ๋ฅผ ํ• ๋‹น/๋ณตํ˜ธํ™”ํ•œ๋‹ค
  • ์ด๋ฅผ executable๋กœ ํ‘œ์‹œํ•œ๋‹ค
  • ๊ทธ ์ฝ”๋“œ๋กœ ์ ํ”„ํ•œ๋‹ค

Identifying packed binaries

  • ๋ฌธ์ž์—ด์ด ๊ฑฐ์˜ ์—†๊ฑฐ๋‚˜(๋˜๋Š” packer ๋ฌธ์ž์—ด๋งŒ ์žˆ์Œ)
  • ๋งŽ์€ ๋ฌธ์ž์—ด์— xrefs๊ฐ€ ์—†์Œ (commercial packers)
  • packer-ID ๋„๊ตฌ ์‚ฌ์šฉ:
    • PEiD
    • Exeinfo PE

Basic recommendations

  • ๋ถ„์„์„ ์•„๋ž˜์—์„œ๋ถ€ํ„ฐ ์œ„๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”; unpackers๋Š” ์ข…์ข… ๋Šฆ๊ฒŒ ์ ํ”„ํ•ฉ๋‹ˆ๋‹ค.
  • JMP/CALL reg ํŒจํ„ด์ด๋‚˜ ์Šคํƒ ํŠธ๋ฆญ(push addr; retn)์„ ์ฐพ์•„๋ณด์„ธ์š”.
  • VirtualAlloc/VirtualProtect์— ๋ธŒ๋ ˆ์ดํฌํฌ์ธํŠธ๋ฅผ ๊ฑธ๊ณ  RWX ์˜์—ญ์„ ์ถ”์ ํ•˜์„ธ์š”.
  • ์ ํ”„ ์ดํ›„ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ๋ฌธ์ž์—ด ํญ์ฆ์€ unpacked code์— ๋„๋‹ฌํ–ˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋คํ”„ํ•˜๊ณ  PE-bear ๊ฐ™์€ ๋„๊ตฌ๋กœ ํ—ค๋”๋ฅผ ์ˆ˜์ •ํ•˜์„ธ์š”.

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ