๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿฆพ ๋ณด์•ˆ ๐Ÿฆพ/๋ฆฌ๋ฒ„์‹ฑ

[Practical Malware Analysis] Lab01-04.exe ๋ถ„์„

๋ฐ˜์‘ํ˜•

01. ๋ถ„์„ํ™˜๊ฒฝ

1.1 ๋ถ„์„ ํ™˜๊ฒฝ

Windows10

WindowsXP

1.2 ๋ถ„์„ ๋„๊ตฌ

PEView
Resource Hacker
PEiD
Exeinfo PE
strings
IDA Pro
OllyDbg
depends
SysAnalyzer
Wireshark

1.3 ๋ถ„์„ ์ƒ˜ํ”Œ

Practical Malware Analysis Labs - Lab01-04.exe

 

02. ์ •์  ๋ถ„์„

2.1 PE ๊ตฌ์กฐ ํ™•์ธ

SECTION .rsrc ์˜์—ญ์— PE ํŒŒ์ผ ํ˜•์‹์ด ์‚ฝ์ž…๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Resource Hacker๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋‹น ํŒŒ์ผ์„ ์ถ”์ถœํ•˜๊ณ  Lab01-04_inserted.exe๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

2.2 ํŒจํ‚น ์—ฌ๋ถ€ ํ™•์ธ

Lab01-04.exe - Exeinfo PE , Lab01-04_inserted.exe - Exeinfo PE

Lab01-04.exe, Lab01-04_inserted.exe ํŒŒ์ผ ๋ชจ๋‘ Entry Point๊ณผ File Offset์ด ๋™์ผํ•˜๊ณ  ์ปดํŒŒ์ผ ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ํ†ตํ•ด ํŒจํ‚น์ด ์•ˆ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

2.3 strings ํ™•์ธ

Lab01-04.exe strings

- winlogon.exe → ์‚ฌ์šฉ ๋ชฉ์ ์ด ๋ถˆ๋ถ„๋ช…ํ•จ

- BIN → resource type
- #101 → resource name 
- \system32\wupdmgr.exe → ๊ธฐ์กด window ํ”„๋กœ๊ทธ๋žจ, ์•…์„ฑ ์ฝ”๋“œ ์ €์žฅ ์œ„์น˜

- \winup.exe → ๊ธฐ์กด \system32\wupdmgr.exe ํ”„๋กœ๊ทธ๋žจ ์ €์žฅ ์œ„์น˜

\\system32\\wupdmgr.exe ์ด๋ž€?
Microsoft Windows๋Š” ์šด์˜ ์ฒด์ œ์—์„œ ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ„์˜ ๋ธŒ๋ฆฌ์ง€ ์—ญํ• ์„ ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. Wupdmgr.exe๋Š” Windows Update Manager๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. Windows Update Manager๋Š” ์šด์˜ ์ฒด์ œ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ์„ค์น˜ํ•˜๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

 

2.4 IAT

  • Lab01-04.exe
kernel32.dll   ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์ž…์ถœ๋ ฅ ๋ช…๋ น, ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ, ๋Œ€๋ถ€๋ถ„์˜ Win32 ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜๋“ค์„ ํฌํ•จํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • GetWindowsDirectoryA
• GetTempPathA
์‹œ์Šคํ…œ ๊ฒฝ๋กœ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ : Windows ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ์™€ ์ž„์‹œ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • CreateFileA
• WriteFile
• MoveFileA
• CloseHandle
ํŒŒ์ผ ์ฒ˜๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ : ํŒŒ์ผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๊ฑฐ๋‚˜ ํŒŒ์ผ์„ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  • GetCurrentProcess
• OpenProcess
• WinExec
• CreateRemoteThread
ํ”„๋กœ์„ธ์Šค ์ฒ˜๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ : ํ˜„์žฌ ๋˜๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ํ•ธ๋“ค์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋˜, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค์˜ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์— ์“ฐ๋ ˆ๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • FindResourceA
• LoadResource
• SizeofResource
• GetModuleHandleA
• LoadLibraryA
• GetProcAddress
๋ฉ”๋ชจ๋ฆฌ ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ จ ํ•จ์ˆ˜ : ์ง€์ •๋œ ๋ชจ๋“ˆ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ์ง€์ •๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • DLL์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ , ํ•จ์ˆ˜์˜ ์ฃผ์†Œ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.
advapi32.dll   ์‚ฌ์šฉ์ž ๋ฐ ๊ทธ๋ฃน ๊ด€๋ฆฌ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์•ก์„ธ์Šค, ๋ณด์•ˆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ, ์„œ๋น„์Šค ์ œ์–ด, ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ ๋“ฑ์„ ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • OpenProcessToken
• AdjustTokenPrivileges
• LookupPrivilegeValue
๊ถŒํ•œ ๋ฐ ํ† ํฐ ์ฒ˜๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ : ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ์—‘์‹œ์Šค ํ† ํฐ์„ ์—ด์–ด ํ† ํฐ์˜ ๊ถŒํ•œ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜, ๊ถŒํ•œ์˜ ์ด๋ฆ„์„ LUID(Locally Unique Identifier)๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
msvcrt.dll   Windows ์šด์˜ ์ฒด์ œ์—์„œ C์™€ C++๋กœ ๊ฐœ๋ฐœ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • __setusermatherr

• __p __commode
• ์‚ฌ์šฉ์ž ์ •์˜ ์ˆ˜ํ•™ ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜.
• ๊ธฐ๋ณธ ํŒŒ์ผ I/O ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜.

 

  • Lab01-04_inserted.exe
kernel32.dll   ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, ์ž…์ถœ๋ ฅ ๋ช…๋ น, ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ์ƒ์„ฑ, ๋Œ€๋ถ€๋ถ„์˜ Win32 ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜๋“ค์„ ํฌํ•จํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  WinExec
GetTempPathA
GetWindowsDirectoryA
์‹œ์Šคํ…œ ๊ฒฝ๋กœ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ด€๋ จ ํ•จ์ˆ˜ : Windows ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฒฝ๋กœ์™€ ์ž„์‹œ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋˜, ํŒŒ์ผ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
urlmon.dll    
  URLDownloadToFileA ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ : ์ธํ„ฐ๋„ท์—์„œ ๋น„ํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํŒŒ์ผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
msvcrt.dll   Windows ์šด์˜ ์ฒด์ œ์—์„œ C์™€ C++๋กœ ๊ฐœ๋ฐœ๋œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ ํ•„์š”ํ•œ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜๋“ค์„ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • __setusermatherr
• __p__commode
• ์‚ฌ์šฉ์ž ์ •์˜ ์ˆ˜ํ•™ ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜.
• ๊ธฐ๋ณธ ํŒŒ์ผ I/O ๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ํ•จ์ˆ˜.

 

2.5 Lab01-04.exe ๋™์ž‘ ๊ณผ์ • ๋ถ„์„

์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, OpenProcessToken ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค์˜ ์•ก์„ธ์Šค ํ† ํฐ์„ TOKEN_QUERY | TOKEN_ADJUST_PRIVILEGES ํ”Œ๋ž˜๊ทธ๋กœ ์˜คํ”ˆํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์•ก์„ธ์Šค ํ† ํฐ์„ ์ฟผ๋ฆฌํ•˜๊ณ  ํ•ด๋‹น ํ† ํฐ์˜ ๊ถŒํ•œ์„ ์กฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ, LookupPrivilegeValue ํ•จ์ˆ˜๋Š” ํŠน์ • ๊ถŒํ•œ์˜ LUID(Local Unique Identifier)๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์‹œ์Šคํ…œ์—์„œ ํŠน์ • ๊ถŒํ•œ์„ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

 

LUID๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ํ™•์ธ๋œ ํ›„, AdjustTokenPrivileges ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๊ถŒํ•œ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹œ์Šคํ…œ์—์„œ ๋” ๋†’์€ ๊ถŒํ•œ์„ ์–ป์–ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

 

 

๊ธฐ์กด์˜ {Windows dir}\system32\wupdmgr.exe ํŒŒ์ผ์„ {Temp dir}\winup.exe๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. 

 

 

  • sub_4011FC

 

์ž์‹ ์˜ ํŒŒ์ผ์—์„œ PE ๊ตฌ์กฐ๋ฅผ ๋ฆฌ์†Œ์Šค๋กœ ํ• ๋‹นํ•œ ํ›„, ์ด๋ฅผ {Windows dir}\system32\wupdmgr.exe  ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ์ €์žฅ๋œ wupdmgr.exe ํŒŒ์ผ๊ณผ ์ด์ „์— ์ถ”์ถœํ•œ Lab01-04_inserted.exe ํŒŒ์ผ์„ ๋น„๊ตํ•ด ๋ณด๋ฉด, ํ•ด์‹œ ๊ฐ’์ด ๋™์ผํ•˜์—ฌ ๊ฐ™์€ ํŒŒ์ผ์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wupdmgr.exe - WinMD5Free, Lab01-04_inserted.exe - WinMD5Free

 

2.6 Lab01-04_inserted.exe ๋™์ž‘ ๋ถ„์„

 

{Windows dir}\system32\wupdmgr.exe (Lab01-04_inserted.exe๋กœ ๋ณ€ํ™˜๋œ ํŒŒ์ผ) ์„ ์‹คํ–‰ํ•˜๋ฉด,  hxxp://www.practicalmalwareanalysis.com/updater.exe ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ํ•ด๋‹น ์‚ฌ์ดํŠธ๊ฐ€ ์šด์˜๋˜์ง€ ์•Š์•„ ์ •ํ™•ํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

 

03. ์š”์•ฝ

Lab01-04.exe ๋“œ๋กœํผ(dropper)๋กœ์„œ ์•…์„ฑ ํŒŒ์ผ์„ ์‹œ์Šคํ…œ์— ์œ„์น˜์‹œํ‚ค๊ณ  ์‹คํ–‰์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋ฉด ํ† ํฐ ๊ถŒํ•œ์„ ์กฐ์ •ํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ถŒํ•œ์„ ํ™•๋ณดํ•œ ํ›„, ๊ธฐ์กด์˜ {Windows dir}\system32\wupdmgr.exe ํŒŒ์ผ์„ {Temp dir}\winup.exe ๋กœ ์ด๋™์‹œํ‚ต๋‹ˆ๋‹ค. ๊ทธ ํ›„,  {Windows dir}\system32\wupdmgr.exe ์œ„์น˜์— Lab01-04.exe ๋‚ด๋ถ€์— ์‚ฝ์ž…๋œ PE ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์ด๋ฅผ ์‹คํ–‰์‹œํ‚ต๋‹ˆ๋‹ค.

์‹คํ–‰๋œ ์•…์„ฑ ํŒŒ์ผ์€ hxxp://www.practicalmalwareanalysis.com/updater.exe์—์„œ ์ถ”๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„ ์‹คํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ถ”๊ฐ€์ ์ธ ์•…์„ฑ ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ฒƒ์œผ๋กœ ์ถ”์ธก๋ฉ๋‹ˆ๋‹ค. 

  • ํ˜ธ์ŠคํŠธ ๊ธฐ๋ฐ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜ :
    #101
    \system32\wupdmgr.exe
    \winup.exe
  • ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜ :
    hxxp://www.practicalmalwareanalysis.com/updater.exe
  • Lab01-04.exe ํ•ด์‹œ๊ฐ’
    md5 : 625AC05FD47ADC3C63700C3B30DE79AB
  • Lab01-04_inserted.exe ํ•ด์‹œ๊ฐ’
    md5 : 6A95C2F88E0C09A91D69FFB98BC6FCE8
๋ฐ˜์‘ํ˜•