Malware/malware analysis

[Qakbot ๋ถ„์„ (1)] ์–ธํŒจํ‚น(Unpacking) - ๋งคํ•‘๊ณผ ์–ธ๋งคํ•‘(Mapping&Unmapping)

์œค์ •_ 2025. 1. 17. 17:19

Qakbot ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํŒจํ‚น๋˜์–ด ์žˆ๋Š” ํŒŒ์ผ์„ ์–ธํŒจํ‚นํ•˜๊ณ , ์–ธ๋งคํ•‘๋œ ํ˜•์‹๊ณผ ๋งคํ•‘๋œ ํ˜•์‹์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒ˜ํ”Œ ํ•ด์‹œ(SHA256)๋Š” 73e4969db4253f9aeb2cbc7462376fb7e26cc4bb5bd23b82e2af0eaaf5ae66a8์ž…๋‹ˆ๋‹ค.

 

 

[ํŒŒ์ผ ์ •๋ณด ๋ถ„์„ ๋ฐ ์ถ”์ถœ]

VirusTotal์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋ฒ„๋ ˆ์ด(overlay)๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • Qakbot ์•…์„ฑ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
  • ์ด์ƒํ•œ ์ด๋ฆ„์˜ ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์•„๋งˆ ํŒจํ‚น๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

DIE๋กœ ํ™•์ธํ•˜๋ฉด ์ด ์ƒ˜ํ”Œ์ด Borland Delphi๋กœ ์ปดํŒŒ์ผ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



 

PE-bear๋กœ ํ™•์ธํ•ด๋ณด๋ฉด export ํ•จ์ˆ˜๊ฐ€ ํ•˜๋‚˜(DLLRegistreServer)๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์ •๋ณด๋“ค์„ ์กฐํ•ฉํ•ด๋ณด๋‹ˆ ํ•ด๋‹น ํŒŒ์ผ์ด ํŒจํ‚น๋˜์—ˆ๋‹ค๊ณ  ํŒ๋‹จ๋ฉ๋‹ˆ๋‹ค.

์–ธํŒจํ‚น ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋””๋ฒ„๊น…ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

rundll32.exe๋ฅผ ํ†ตํ•ด ๋””๋ฒ„๊น… ์„ธ์…˜์„ ์„ค์ •ํ•˜๊ณ  ๋ช…๋ น์ค„ ๋ฐ”๊พธ๊ธฐ๋ฅผ ํ†ตํ•ด ์•…์„ฑ์ฝ”๋“œ์™€ export ํ•จ์ˆ˜(#1)๋ฅผ ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

  • "C:\Windows\SysWOW64\rundll32.exe" C:\Users\user\Desktop\mas2_sample.bin,#1

 

๊ทธ๋ฆฌ๊ณ  VirtaulAlloc, WriteProcessMemory, NtResumeThread API์— breakpoint๋ฅผ ์„ค์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

  • NtResumeThread 
    • ํŠน์ • ์Šค๋ ˆ๋“œ๋ฅผ ์žฌ๊ฐœ์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ์Šค๋ ˆ๋“œ ํ๋ฆ„๊ณผ ์Šค๋ ˆ๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ์ ์„ ์ œ์–ดํ•˜๋Š”๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ์—ผ ์ œ์–ด๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์•…์„ฑ์ฝ”๋“œ ์‹คํ–‰ ์ œ์–ด๋ฅผ ์žƒ์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ•ด๋‹น API์— breakpoint๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ๋ฆ„์„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

VirutalAlloc
WriteProcessMemory
NtResumeThread

 

breakpoint ์„ค์ • ํ›„ ๊ณ„์† ์‹คํ–‰(F9)ํ•˜๋ฉฐ VirtualAlloc์—์„œ breakpoint๊ฐ€ ๊ฑธ๋ฆฌ๋ฉด, EAX ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅ๋œ ์ฃผ์†Œ๋ฅผ ๋คํ”„์—์„œ ๋”ฐ๋ผ๊ฐ€๋ฉฐ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ VirtualAlloc์˜ breakpoint๊ฐ€ ์„ธ ๋ฒˆ์งธ๊นŒ์ง€๋Š” ๋ณ„๋กœ ํ•„์š” ์—†๋Š” ์ •๋ณด๋“ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ์‹คํ–‰์„ ๊ณ„์†ํ•˜๋ฉด ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ๋””๋ฒ„๊ฑฐ๋กœ ๋„˜๊ธฐ๊ฒ ์Šต๋‹ˆ๋‹ค(Shift+F9, RUN(pass all exceptions)).

 

๊ทธ๋ฆฌ๊ณ  ๊ณ„์† ์‹คํ–‰(F9)ํ–ˆ๋Š”๋ฐ ๋คํ”„์— MZ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทผ๋ฐ ์ด PE ๋ฐ”์ด๋„ˆ๋ฆฌ์—๋Š” .text, .data, .mrdata, .rsrc, .reloc์™€ ๊ฐ™์€ ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ .mrdata ์„น์…˜์€ ๊ธฐ๋ณธ ์„น์…˜์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฏ€๋กœ ๊ณ„์† ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์‹œ ์ง„ํ–‰ํ•˜๋ฉด ์ƒˆ๋กœ์šด PE ํŒŒ์ผ์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ํ—ค๋”๊ฐ€ ๊นจ๋—ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๊ฒƒ๋„ ์œ ์šฉํ•œ ์ •๋ณด๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

 

๊ณ„์† ์‹คํ–‰(F9)ํ•˜๋‹ค ๋ณด๋ฉด ๋””๋ฒ„๊ฑฐ๋Š” NtResumeThread์˜ breakpoint์— ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ๋‚˜ํƒ€๋‚˜๋Š” PE ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๋“œ๋””์–ด ์˜ฌ๋ฐ”๋ฅธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ๋คํ”„ ์˜์—ญ์„ ๋ฉ”๋ชจ๋ฆฌ๋งต์—์„œ ๋”ฐ๋ผ๊ฐ€์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋˜ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ ๊ณ„์† ์‹คํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

WriteProcessMemory์˜ breakpoint์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์‹คํ–‰(F9)ํ•˜์—ฌ ๋„๋‹ฌํ•˜๋ฉด ZwUnmapViewOfSection์— breakpoint๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  ์‹คํ–‰์„ ๊ณ„์†ํ•˜๋ฉด ๋””๋ฒ„๊ฑฐ๊ฐ€ ZwUnmapViewOfSection์˜ breakpoint์— ๋„๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ZwUnmapViewOfSection API์— ๋Œ€ํ•ด ์ž ๊น ์„ค๋ช…ํ•ด๋ณด์ž๋ฉด,

  • ZwUnmapViewOfSection
    • Windows ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” NT ์‹œ์Šคํ…œ ํ˜ธ์ถœ(NT syscall) ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฉ”๋ชจ๋ฆฌ ๋งต๋œ ํŒŒ์ผ ๋˜๋Š” ์„น์…˜์„ ์–ธ๋งต(unmap)ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ์ฃผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ๋œ ์‹œ์Šคํ…œ ์ˆ˜์ค€์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    • ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์—์„œ ํŠน์ • ์„น์…˜์„ ์–ธ๋งต(์ฆ‰, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐ)ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์•…์„ฑ์ฝ”๋“œ์—์„œ์˜ ZwUnmapViewOfSection๋Š” ๊ธฐ์กด ๋ฉ”๋ชจ๋ฆฌ์— ๋งตํ•‘๋œ ํŒŒ์ผ์ด๋‚˜ ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ ํŒŒ์ผ์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜, ํŒŒ์ผ์„ ๋ถ„์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ์ง€๋ฅผ ํ”ผํ•˜๊ฑฐ๋‚˜ ๋™์ž‘์„ ์ˆจ๊ธฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ZwUnmapViewOfSection ๊ตฌ์กฐ
NTSTATUS ZwUnmapViewOfSection(
    HANDLE ProcessHandle,		// ํ”„๋กœ์„ธ์Šค ํ•ธ๋“ค
    PVOID BaseAddress			// ์–ธ๋งตํ•  ์„น์…˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ
);

 

์–ธ๋งต๋˜๋Š” ๋ทฐ์˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ZwUnmapViewOfSection์˜ ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • ๋ทฐ(View): ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋งคํ•‘๋œ ํŠน์ • ์„น์…˜

 

๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ(0x50E0000)๋ฅผ ๋คํ”„์—์„œ ๋”ฐ๋ผ๊ฐ€๋ณด๋ฉด PE ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

[๋งคํ•‘(Mapping) ๋ฐ ์–ธ๋งคํ•‘(Unmapping)]

๋งคํ•‘๊ณผ ์–ธ๋งคํ•‘ ํ˜•์‹์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋งคํ•‘(Mapping)
    • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์— ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ์ˆ 
    • ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ง์ ‘ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹
    • ๋งคํ•‘๋œ ์•…์„ฑ์ฝ”๋“œ์˜ ํŠน์ง•
      • ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ํŒŒ์ผ์„ ๋งคํ•‘ํ•˜์—ฌ ๋””์Šคํฌ์—์„œ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
      • ๋งคํ•‘์„ ํ†ตํ•ด API ํ˜ธ์ถœ์„ ์šฐํšŒํ•˜๊ฑฐ๋‚˜ ๋‚œ๋…ํ™”ํ•˜์—ฌ ๋ถ„์„์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • ์–ธ๋งคํ•‘(Unmapping)
    • ์ด๋ฏธ ๋งคํ•‘๋œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ํŒŒ์ผ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ๊ณผ์ •
    • ํŒŒ์ผ์ด๋‚˜ ์žฅ์น˜๊ฐ€ ๋”์ด์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ๊ณต๊ฐ„์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๊ฒƒ
    • ๋งคํ•‘๋œ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ํ•ด์ œํ•˜๊ณ  ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋‹ค์‹œ ๋‹ค๋ฅธ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
    • ์–ธ๋งคํ•‘๋œ ์•…์„ฑ์ฝ”๋“œ์˜ ํŠน์ง•
      • ์‹คํ–‰ ํ›„ ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜๊ณ  ํ”์ ์„ ์—†์• ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

 

 

์ง€๊ธˆ๊นŒ์ง€ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ์ถ”์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํŒŒ์ผ์€ ๋ชจ๋‘ ๋™์ผํ•œ ํŽ˜์ด๋กœ๋“œ๊ณ  ํŒŒ์ผ๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • rundll32_047A0000_from_VirtualProtect.bin
  • rundll32_050E0000_from_UnmapViewOfSection.bin

 

์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ์€ Qakbot์˜ ์–ธ๋งคํ•‘๋œ ๋ฒ„์ „์ด๊ณ  ๋‘ ๋ฒˆ์งธ ํŒŒ์ผ์€ Qakbot์˜ ๋งคํ•‘๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ rundll32_047A0000_from_VirtualProtect.bin์˜ .text ์„น์…˜์€ 0x400์—์„œ ์‹œ์ž‘ํ•˜๋ฉฐ ์ด๋Š” ์–ธ๋งคํ•‘๋œ ํ˜•์‹์˜ ํŠน์ง•์ž…๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ํŒŒ์ผ rundll32_050E0000_from_UnmapViewOfSection.bin์˜ .text ์„น์…˜์€ 0x1000์—์„œ ์‹œ์ž‘ํ•˜๋ฉฐ ๋งคํ•‘๋œ ํ˜•์‹์˜ ํŠน์ง•์ž…๋‹ˆ๋‹ค.

 

 

PE-bear๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด๋ฉด,

์ฒซ ๋ฒˆ์งธ ํŒŒ์ผ rundll32_047A0000_from_VirtualProtect.bin์€ imports ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ํŒŒ์ผ rundll32_050E0000_from_UnmapViewOfSection.bin์€ import table์ด ์—‰๋ง์ž…๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด raw ์ฃผ์†Œ๋“ค์ด ์—ฌ์ „ํžˆ ์–ธ๋งคํ•‘๋œ ํ˜•์‹์˜ ๋””์Šคํฌ ์ฃผ์†Œ๋ฅผ ๋ฐ˜์˜ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ํŒŒ์ผ ๊ฐ™์ด ๋งคํ•‘๋œ ํŒŒ์ผ์€ raw ์ฃผ์†Œ๋ฅผ ๋ฐ˜์˜ํ•ด์ฃผ๋ฉด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งคํ•‘๋œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๋ชจ๋“  virtual ์ฃผ์†Œ๋ฅผ raw ์ฃผ์†Œ ์œ„์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

2. ์„น์…˜ ์‹œ์ž‘ ์ฃผ์†Œ๋“ค ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ raw size์™€ virtual size๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

3. ์ด๋ฏธ์ง€ ๊ธฐ๋ณธ ์ฃผ์†Œ(base address)๋ฅผ ๋ณ€๊ฒฝํ•ด์„œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ธฐ๋ณธ ์ฃผ์†Œ๋ฅผ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.

image base๋Š” ๋””๋ฒ„๊ฑฐ์—์„œ ํŒŒ์ผ์„ ์ถ”์ถœํ•  ๋•Œ ๋ณ€๊ฒฝ ์—†์ด ์ €์žฅํ–ˆ๋‹ค๋ฉด ํŒŒ์ผ๋ช…์— ์ ํ˜€์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์˜ ๊ฒฝ์šฐ image base๊ฐ€ 0x50E0000์ž…๋‹ˆ๋‹ค.

 

 

์ด ๊ณผ์ •์„ ๋งˆ์น˜๊ณ  PE-bear์˜ imports๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ์˜ˆ์˜๊ฒŒ ์ž˜ ์ •๋ฆฌ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ๋งคํ•‘ ๋ฐ ์–ธ๋งคํ•‘๋œ ํŒŒ์ผ ๋ชจ๋‘ ์–ธํŒจํ‚น์ด ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํŒŒ์ผ ๋ฐ์ดํ„ฐ๋Š” ๋ชจ๋‘ ๋™์ผํ•œ Qakbot ํŽ˜์ด๋กœ๋“œ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์—๋Š” ์–ธํŒจํ‚นํ•œ Qakbot DLL์„ ๋ถ„์„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

 

Ref. "Malware Analysis Series(MAS) – Article 2", Alexandre Borges