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

๋ฐ˜์‘ํ˜•

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

(10)
[Practical Malware Analysis] Lab03-01.exe ๋ถ„์„ 01. ๋ถ„์„ํ™˜๊ฒฝ1.1 ๋ถ„์„ ํ™˜๊ฒฝWindows10WindowsXP1.2 ๋ถ„์„ ๋„๊ตฌPEView Resource Hacker PEiD Exeinfo PE strings IDA Pro OllyDbg depends SysAnalyzer Wireshark1.3 ๋ถ„์„ ์ƒ˜ํ”ŒPractical Malware Analysis Labs - Lab03-01.exe  02.์ •์  ๋ถ„์„2.1 ํŒจํ‚น ์—ฌ๋ถ€ ํ™•์ธ๋ถ„์„ ๋„๊ตฌ : PEiD๋ถ„์„ ๊ฒฐ๊ณผ : PEncrypt 3.1 Final → junkcode ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ์ด ํŒจํ‚น๋˜์—ˆ๊ฑฐ๋‚˜ ์•”ํ˜ธํ™” ๋˜์—ˆ์Œ์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2.2 Import Address Table๋ถ„์„ ๋„๊ตฌ : Dependency Walker๋ถ„์„ ๊ฒฐ๊ณผ : kernel32.dll์˜ ExitProcess ํ•จ์ˆ˜๋งŒ ํ™•..
[Practical Malware Analysis] Lab01-04.exe ๋ถ„์„ 01. ๋ถ„์„ํ™˜๊ฒฝ1.1 ๋ถ„์„ ํ™˜๊ฒฝWindows10WindowsXP1.2 ๋ถ„์„ ๋„๊ตฌPEView Resource Hacker PEiD Exeinfo PE strings IDA Pro OllyDbg depends SysAnalyzer Wireshark1.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๊ณผ Fil..
[Practical Malware Analysis] Lab01-03.exe ๋ถ„์„ 01. ๋ถ„์„ํ™˜๊ฒฝ1.1 ๋ถ„์„ ํ™˜๊ฒฝWindows101.2 ๋ถ„์„ ๋„๊ตฌVirustotalPEiDexeinfo PEVmUnpackerDependencyWalkerPEStudioOllyDBGIDA1.3 ๋ถ„์„ ์ƒ˜ํ”ŒPractical Malware Analysis Labs - Lab01-03.exe02. ์ •์  ๋ถ„์„ ๊ณผ์ •2.1 ํŒจํ‚น ํ™•์ธEntrypoint, File Offset ์˜ ์ฐจ์ด๋ฅผ ํ†ตํ•ด์„œ๋„ ํŒจํ‚น๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. FSG 1.0 ์œผ๋กœ ์••์ถ•๋œ ๊ฒƒ์œผ๋กœ ์ถ”์ธก๋ฉ๋‹ˆ๋‹ค. VmUnpacker๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ธํŒจํ‚น์„ ์ง„ํ–‰ ํ›„ ๋ถ„์„์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.  2.2 Strings ํ™•์ธํŒŒ์ผ ๋‚ด๋ถ€์— hxxp://www.malwareanalysis.book.com/ad.html URL์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค. 2.3 IAT ํ™•์ธ..
[Practical Malware Analysis] Lab01-02.exe ๋ถ„์„ ์ •์  ๋ถ„์„01. ์ž๋™ํ™” ๋ถ„์„๋ถ„์„ ๋„๊ตฌ : virustotal.com, PEView๋ถ„์„ ๊ฒฐ๊ณผ :Lab01-02.exe : 57/72 ํƒ์ง€, V3, ALYac Trojan ์œผ๋กœ ํƒ์ง€ 02. ํŒจํ‚น ์—ฌ๋ถ€ ํ™•์ธ๋ถ„์„ ๋„๊ตฌ : Exeinfope, PEView๋ถ„์„ ๊ฒฐ๊ณผ :์‹คํ–‰ ํŒŒ์ผ์˜ ์„น์…˜ ์ด๋ฆ„์ด upx0, upx1, upx2๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„ ํ†ตํ•ด์„œ UPX๋กœ ํŒจํ‚น๋œ๊ฒƒ์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜, exeinfo๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ์„œ UPX๋กœ ํŒจํ‚น ๋œ ๊ฒƒ์„ ๋‹ค์‹œ ํ™•์ธํ•˜์˜€๊ณ , UPX๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ธํŒจํ‚น ์ง„ํ–‰ ํ›„ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.  03. strings ํ™•์ธ๋ถ„์„ ๋„๊ตฌ : strings, OllyDBG๋ถ„์„ ๊ฒฐ๊ณผ : ์œ„์™€ ๊ฐ™์€ strings๊ฐ€ ์‹คํ–‰ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜์˜€์Šต๋‹ˆ๋‹ค. OllyDBG๋กœ ํ™•์ธํ•œ ๊ฒฐ๊ณผ HGL345๋Š” ๋ฎคํ…์Šค ์ด๋ฆ„์œผ๋กœ,..
[Practical Malware Analysis] Lab01-01.exe, Lab01-01.dll ๋ถ„์„ ์ •์  ๋ถ„์„์ž๋™ํ™” ๋ถ„์„๋ถ„์„ ๋„๊ตฌ : virustotal.com๋ถ„์„ ๊ฒฐ๊ณผ :Lab01-01.exe : ๊ฐ์ง€์œจ 55/72, ์•Œ์•ฝ, ์•ˆ๋žฉ ๋“ฑ์—์„œ ๋ฐฑ๋„์–ด, Torjan ๋กœ ๊ฐ์ง€Lab01-01.dll : ๊ฐ์ง€์œจ 47/73, ์•Œ์•ฝ, Google ๋“ฑ์—์„œ ๋ฐฑ๋„์–ด, Torjan๋กœ ๊ฐ์ง€ ํŒจํ‚น ์—ฌ๋ถ€๋ถ„์„ ๋„๊ตฌ : exeinfo๋ถ„์„ ๊ฒฐ๊ณผ :Lab01-01.exe, Lab01-01.dll ๋ชจ๋‘ ํŒจํ‚น๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๊ณ , Microsoft Visual C-++ ๋กœ ์ปดํŒŒ์ผ ๋˜์—ˆ์Œ์„ ์ถ”์ธกํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ์‹œ๊ฐ„๋ถ„์„ ๋„๊ตฌ : PEiD๋ถ„์„ ๊ฒฐ๊ณผ : Lab01-01.exe ๋Š” 2010/12/19 16:16:19 UTC ์— ์ปดํŒŒ์ผ์—, Lab01-01.dll ์€ 2010/12/19 16:16:38 UTC ์— ์ปดํŒŒ์ผ ๋œ ๊ฒƒ์œผ๋กœ ๋ณด์•„ L..
x86-64 ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ์–ด์…ˆ๋ธ”๋ฆฌ ์–ธ์–ดํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(C, C++, JAVA, Python) ๋ณด๋‹ค ์ €์ˆ˜์ค€ ์–ธ์–ด๋กœ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ์–ธ์–ด.์ข…๋ฅ˜ : IA-32(intel 32bit), x86-64, ARM, MIPS์–ด์…ˆ๋ธ”๋ฆฌ์–ด(Assembly Language)๊ธฐ๊ณ„์–ด์™€ ์ผ๋Œ€์ผ ๋Œ€์‘์ด ๋˜๋Š” ์ €์ˆ˜์ค€ ์–ธ์–ด์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๊ธฐ๊ณ„์–ด ๋Œ€์‹ ์— ๋ช…๋ น ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ์—ฐ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํ˜ธ๋ฅผ ๊ธฐ๊ณ„์–ด์™€ 1:1๋กœ ๋Œ€์‘์‹œ์ผœ ์ฝ”๋“œํ™”ํ•œ ๊ธฐํ˜ธ ์–ธ์–ด๊ธฐ๊ณ„์–ด(Machine Language)ํ”„๋กœ๊ทธ๋žจ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ๋‹จ๊ณ„์˜ ๊ฐœ๋….์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)๊ฐ€ ์ง์ ‘ ํŒ๋…ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„ํŠธ(0๊ณผ 1์˜ ์กฐํ•ฉ) ๋‹จ์œ„๋กœ ์“ฐ์ธ ์ปดํ“จํ„ฐ ์–ธ์–ด ๊ธฐ๋ณธ๊ตฌ์กฐ๊ธฐ๋ณธํ˜•ํƒœ : ๋ช…๋ น์–ด(์˜ต์ฝ”๋“œ) + ์ธ์ž(์˜คํผ๋žœ๋“œ)๋ช…๋ น์–ด (์˜ต์ฝ”๋“œ) ๋ช…๋ น ์ฝ”๋“œ ์„ค๋ช…๋ฐ์ดํ„ฐ ์ด๋™(Data Transfer..
x86-64 CPU ๋ ˆ์ง€์Šคํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜(CPU)์˜ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ๊ณ ์† ๋ฉ”๋ชจ๋ฆฌ๋กœ, ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„. ์ฒ˜๋ฆฌ ํ›„ ํ•ด๋‹น ๊ฒฐ๊ณผ ๊ฐ’ ์—ญ์‹œ ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•œ ํ›„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. ๋ ˆ์ง€์Šคํ„ฐ ๋‹จ์œ„OS 32/64bit : CPU๊ฐ€ ํ•œ๊บผ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Ÿ‰์„ ๋งํ•จ  01. ๋ฒ”์šฉ ๋ ˆ์ง€์Šคํ„ฐ๋ ˆ์ง€์Šคํ„ฐ์—ญํ• AX (Acumulator register)๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ณ€์ˆ˜๋กœ, ๊ฐ์ข… ์—ฐ์‚ฐ์— ์“ฐ์ž„. ์ฃผ๋กœ ๋ฆฌํ„ด ๊ฐ’์„ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์ž…์ถœ๋ ฅ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ.DX (Data register)๊ฐ์ข… ์—ฐ์‚ฐ์— ์“ฐ์ด๋Š” ๋ณ€์ˆ˜๋กœ, ์ž…์ถœ๋ ฅ ๋ช…๋ น์–ด์™€ ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์—์„œ ์ถ”๊ฐ€์ ์—” ๋ฐ์ดํ„ฐ๋กœ ์‚ฌ์šฉCX (Counter register)๋ฐ˜๋ณต๋ฌธ์˜ ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉ, ๋ฏธ๋ฆฌ ๊ฐ’์„ ์ •ํ•ด๋†“๊ณ  0์ด ๋  ๋•Œ๊นŒ์ง€ ์ง„ํ–‰, ๋ณ€์ˆ˜๋กœ ..
CPU ๊ตฌ์กฐ CPU (Central Processing Unit)CPU๋Š” ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ๋กœ, ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๊ณ  ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ปดํ“จํ„ฐ์˜ ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด(HW)๋“ค์„ ์ œ์–ดํ•˜๋Š” ํ•ต์‹ฌ ์—ญํ• ์„ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋  ๋•Œ, CPU๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์ฝ์–ด ๋“ค์ด๊ณ  ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ ํ•˜์—ฌ ํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ ๋ฉ”๋ชจ๋ฆฌ์— ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ ์ž‘์—…์„ ์œ„ํ•ด ๋‹ค๋ฅธ ํ•˜๋“œ์›จ์–ด ์žฅ์น˜๋กœ ์ „์†กํ•œ๋‹ค. Control UnitCPU์˜ ์šด์˜ ์ œ์–ด ์—ญํ• ์„ ํ•˜๋ฉฐ, ํ•˜๋“œ์›จ์–ด ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ๋ณด์žฅCPU์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„๋‹ค๋ฅธ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ์ œ์–ดํ”„๋กœ๊ทธ๋žจ ์นด์šดํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์Œ์— ์‹คํ–‰ํ•  ๋ช…๋ น์–ด์˜ ์œ„์น˜๋ฅผ ์ถ”์ ๋ช…๋ น์–ด๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๊ฐ€์ ธ์™€ Fetching, Decoding, Execution ์ง„ํ–‰ALU (Arith..

๋ฐ˜์‘ํ˜•