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, Lab01-04_inserted.exe ํ์ผ ๋ชจ๋ Entry Point๊ณผ File Offset์ด ๋์ผํ๊ณ ์ปดํ์ผ ์ ๋ณด๋ฅผ ๊ทธ๋๋ก ๋ณผ ์ ์๋ ๊ฒ์ ํตํด ํจํน์ด ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
2.3 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 ํ์ผ์ ๋น๊ตํด ๋ณด๋ฉด, ํด์ ๊ฐ์ด ๋์ผํ์ฌ ๊ฐ์ ํ์ผ์์ ํ์ธํ ์ ์์ต๋๋ค.
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
'๐ฆพ ๋ณด์ ๐ฆพ > ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Practical Malware Analysis] Lab03-01.exe ๋ถ์ (0) | 2024.10.23 |
---|---|
[Practical Malware Analysis] Lab01-03.exe ๋ถ์ (1) | 2024.10.03 |
[Practical Malware Analysis] Lab01-02.exe ๋ถ์ (1) | 2024.10.01 |
[Practical Malware Analysis] Lab01-01.exe, Lab01-01.dll ๋ถ์ (0) | 2024.09.30 |
x86-64 ์ด์ ๋ธ๋ฆฌ์ด (0) | 2024.08.28 |