๐Ÿ–ค Shamoon / DistTrack (2012) โ€” '๋ˆ์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šด๋‹ค'

2026-10-24 ยท Malware Deep-Dive (Wiper ยท Destructive Malware ยท Credential Reuse ยท 2012โ€“2018)
๊ธฐ์ˆ  ์ •๋ณด
  • ์•…์„ฑ์ฝ”๋“œ๋ช…: Shamoon ยท ๋ณ„์นญ W32.DistTrack / W32/Elderwood ยท ๋‚ด๋ถ€ ๋ฌธ์ž์—ด SHN/AMOO/lib/pr/~์—์„œ ์ด๋ฆ„์ด ์œ ๋ž˜
  • ๋“ฑ์žฅ: 2012๋…„ 8์›” 15์ผ 11:08 (์‚ฌ์šฐ๋””์•„๋ผ๋น„์•„ ํ˜„์ง€ ์‹œ๊ฐ). SymantecยทKasperskyยทSeculert๊ฐ€ 8์›” 16์ผ ๋™์‹œ ๋ถ„์„ ๊ณต๊ฐœ
  • ๋ถ„๋ฅ˜: ์™€์ดํผ(wiper) โ€” ์•”ํ˜ธํ™”ยท๊ธˆ์ „ ์š”๊ตฌ๊ฐ€ ์—†๋Š” ์ˆœ์ˆ˜ ํŒŒ๊ดดํ˜• ์•…์„ฑ์ฝ”๋“œ. ๋ชจ๋“ˆํ˜•(๋“œ๋กœํผ + ์™€์ดํผ + ๋ฆฌํฌํ„ฐ)
  • ํŠธ๋ฆฌ๊ฑฐ: ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋…ผ๋ฆฌํญํƒ„(logic bomb) โ€” 2012-08-15 11:08 ๋กœ์ปฌ ์‹œ๊ฐ์— ๋งž์ถฐ MBRยทํŒŒ์ผ ๋ฎ์–ด์“ฐ๊ธฐ ์‹œ์ž‘
  • ์ง€์†์„ฑ: NtsSrv ์ด๋ฆ„์˜ Windows ์„œ๋น„์Šค๋กœ ๋“ฑ๋ก. 32๋น„ํŠธ/64๋น„ํŠธ ๋“œ๋กœํผ๋ฅผ ๋ชจ๋‘ ๋ณด์œ ํ•˜๊ณ  ์•„ํ‚คํ…์ฒ˜์— ๋งž๋Š” ์ชฝ์„ ๋“œ๋กญ
  • ํ™•์‚ฐ: ์ทจ์•ฝ์  ์Šค์บ”์ด ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๊ณต์œ  + ์ˆ˜์ง‘๋œ ์ž๊ฒฉ์ฆ๋ช…์œผ๋กœ ํšก์  ์ด๋™(๋„คํŠธ์›Œํฌ ์ „์ฒด๊ฐ€ ์‹ ๋ขฐ ๊ฒฝ๊ณ„์˜€๋˜ ํ™˜๊ฒฝ์„ ์•…์šฉ)
  • ํŒŒ๊ดด ๋ฐฉ์‹: EldoS RawDisk ์„œ๋ช… ๋“œ๋ผ์ด๋ฒ„๋กœ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ \\.\PhysicalDrive0์— ์ง์ ‘ ์ ‘๊ทผ โ†’ ํŒŒ์ผ ๋ชฉ๋กํ™”ยท๋ฆฌํฌํŒ… โ†’ ํŒŒ์ผ ๋‚ด์šฉ์„ ์ด๋ฏธ์ง€ ์กฐ๊ฐ์œผ๋กœ ๋ฎ์–ด์“ฐ๊ธฐ โ†’ MBR ๋ฎ์–ด์“ฐ๊ธฐ โ†’ ์žฌ๋ถ€ํŒ… ๋ถˆ๊ฐ€
  • ๋ฎ์–ด์“ด ์ด๋ฏธ์ง€: 2012๋…„ ๋ถˆํƒ€๋Š” ๋ฏธ๊ตญ ๊ตญ๊ธฐ, 2016๋…„ ์•จ๋Ÿฐ ์ฟ ๋ฅด๋””(Alan Kurdi) ์‚ฌ์ง„ โ€” ์ƒ์ง•์  ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ์ดํ„ฐ ์œ„์— ๊ฐ์ธ
  • ํ”ผํ•ด: Saudi Aramco ์•ฝ 30,000๋Œ€ ์›Œํฌ์Šคํ…Œ์ด์…˜ ํŒŒ๊ดด, ๋ณต๊ตฌ 2์ฃผ ์ด์ƒ. ์„ธ๊ณ„ ํ•˜๋“œ๋””์Šคํฌ๋ฅผ ์‚ฌ์žฌ๊ธฐํ•ด ๊ฐ€๊ฒฉ์ด ํ”๋“ค๋ ธ๋‹ค๋Š” ์ฆ์–ธ. Qatar RasGas๋„ ๊ฐ™์€ ์‹œ๊ธฐ ๋งˆ๋น„
  • ๊ท€์†: 'Cutting Sword of Justice'๊ฐ€ Pastebin์œผ๋กœ ์ฑ…์ž„ ์ฃผ์žฅ(์ด๋ž€ ์—ฐ๊ณ„ ์ •ํ™ฉ). ๋ฏธ๊ตญ ์ •๋ณด๋‹น๊ตญ์€ ์ด๋ž€ ๋ฐฐํ›„๋กœ ํ‰๊ฐ€. ๊ณต์‹ ๊ธฐ์†Œ๋Š” ์—†์Œ
  • ๊ณ„๋ณด: 2012๋…„ 4์›” ์ด๋ž€ Wiper โ†’ Shamoon(2012) โ†’ Shamoon 2 (2016ยท2017) โ†’ Shamoon 3 / Saipem (2018) โ†’ ์ดํ›„ NotPetya(2017)ยทIndustroyer(2016) ๊ณ„์—ด ํŒŒ๊ดดํ˜• ๊ณต๊ฒฉ์˜ ๋ฌธ๋ฒ•
  • ์˜์˜: "๋žœ์„ฌ์›จ์–ด ์ด์ „์˜ ์™€์ดํผ". ๋ชธ๊ฐ’ ํ˜‘์ƒ์ด๋ผ๋Š” ๊ฒฝ์ œ ๋ชจ๋ธ ์—†์ด ๋ณต๊ตฌ ๋น„์šฉ ์ž์ฒด๋ฅผ ๋ฌด๊ธฐ๋กœ ์‚ผ์€ ์ฒซ ๋Œ€๊ทœ๋ชจ ์‚ฌ๋ก€ โ€” ๋ฐฑ์—…ยท๊ฒฉ๋ฆฌยท์ž๊ฒฉ์ฆ๋ช… ์œ„์ƒ์ด ๊ณง ๊ตญ๊ฐ€๊ธ‰ ๋ฐฉ์–ด์„ ์ž„์„ ์ฆ๋ช…

1. ๋ฐฐ๊ฒฝ/์—ญ์‚ฌ โ€” ๋ผ๋งˆ๋‹จ์˜ ๋งˆ์ง€๋ง‰ ์ฃผ, 11์‹œ 8๋ถ„

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

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

์‚ฌ๊ฑด์€ ๋‹จ์ˆœํ•œ ๋ฐ”์ด๋Ÿฌ์Šค ์œ ํ–‰์ด ์•„๋‹ˆ๋ผ ์ •์น˜์  ๋ฉ”์‹œ์ง€๋ฅผ ๋™๋ฐ˜ํ•œ ์‚ฌ๋ณดํƒ€์ฃผ์˜€๋‹ค. ๊ณต๊ฒฉ ๋ช‡ ์‹œ๊ฐ„ ์ „, 'Cutting Sword of Justice'(์ •์˜์˜ ๋‚ ์นด๋กœ์šด ์นผ)๋ฅผ ์ž์นญํ•˜๋Š” ์ง‘๋‹จ์ด Pastebin์— ๊ธ€์„ ์˜ฌ๋ ค "์‹œ๋ฆฌ์•„ยท๋ฐ”๋ ˆ์ธยท์˜ˆ๋ฉ˜ยท๋ ˆ๋ฐ”๋…ผยท์ด์ง‘ํŠธ์— ๋Œ€ํ•œ ์–ต์••๊ณผ, ์ด๋ฅผ ํ›„์›ํ•˜๋Š” ์•Œ์‚ฌ์šฐ๋“œ ์ฒด์ œ"๋ฅผ ๋ฌธ์ œ ์‚ผ์œผ๋ฉฐ "์•„๋žŒ์ฝ”๋Š” ์•Œ์‚ฌ์šฐ๋“œ ์ฒด์ œ์˜ ๊ฐ€์žฅ ํฐ ์žฌ์ •์  ์›์ฒœ"์ด๋ผ๊ณ  ๋ฐํ˜”๋‹ค. 8์›” 29์ผ์—๋Š” ๋ผ์šฐํ„ฐ ํ…”๋„ท ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ CEO ๊ณ„์ • ์ •๋ณด๋ผ ์ฃผ์žฅํ•˜๋Š” ๋‚ด์šฉ์„ ๋˜ ์˜ฌ๋ ค ์—ฌ์ „ํžˆ ๋„คํŠธ์›Œํฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ์„ ๊ณผ์‹œํ–ˆ๋‹ค.

๊ธฐ์ˆ ์  ๊ณ„๋ณด๋„ ์ค‘์š”ํ•˜๋‹ค. 2012๋…„ 4์›”, ์ด๋ž€์˜ ์„์œ ๋ถ€ยท์›์ž๋ ฅ ์‹œ์„ค์„ ๊ฒจ๋ƒฅํ•œ 'Wiper' ์‚ฌ๊ฑด์ด ์žˆ์—ˆ๋‹ค. Kaspersky๋Š” Shamoon๊ณผ Wiper์˜ ์œ ์‚ฌ์„ฑ์„ ์ง€์ ํ–ˆ๊ณ , ๋™์‹œ์— Flame๊ณผ์˜ ์ฝ”๋“œ ์œ ์‚ฌ์ ๋„ ๋ณด๊ณ ํ–ˆ๋‹ค. ์ดˆ๊ธฐ์—๋Š” "Wiper๋ฅผ ํ‰๋‚ด ๋‚ธ ์Šคํฌ๋ฆฝํŠธ ํ‚ค๋””"๋ผ๋Š”่ฉ•ไพก๋„ ์žˆ์—ˆ์ง€๋งŒ, ๊ณง ๊ตญ๊ฐ€ ์ˆ˜์ค€์˜ ์‚ฌ์ด๋ฒ„์ „์œผ๋กœ ๋ถ„๋ฅ˜๊ฐ€ ๋ฐ”๋€Œ์—ˆ๋‹ค. 2012๋…„์˜ Shamoon์€ ์ฝ”๋“œ๊ฐ€ ์œ ์ถœ๋˜์ง€ ์•Š์€ ์ฑ„ ํ”์ ๋งŒ์œผ๋กœ ๋ถ„์„๋๊ณ , 2016๋…„์— ๋“ฑ์žฅํ•œ Shamoon 2์˜ ๋ถ„์„์„ ํ†ตํ•ด ๊ตฌ์กฐ๊ฐ€ ํ›จ์”ฌ ์ •๋ฐ€ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ฌ๋‹ค.

2. ๊ฐ์—ผยท์ „ํŒŒ ๊ฒฝ๋กœ โ€” ์ทจ์•ฝ์  0๊ฐœ, ์ž๊ฒฉ์ฆ๋ช… 1๊ฐœ

Shamoon์˜ ํ™•์‚ฐ ๋ฐฉ์‹์€ ๋™์‹œ๋Œ€ ์›œ๊ณผ ์ •๋ฐ˜๋Œ€๋‹ค. Code Red๋‚˜ Slammer๊ฐ€ ์ธํ„ฐ๋„ท์„ ํ–ฅํ•ด ๋ฌด์ฐจ๋ณ„ ์Šค์บ”ํ–ˆ๋‹ค๋ฉด, Shamoon์€ ์ด๋ฏธ ๋šซ๋ฆฐ ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์•ˆ์—์„œ๋งŒ ์›€์ง์˜€๋‹ค. ์™ธ๋ถ€๋กœ ๋‚˜๊ฐ€๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๊ฑฐ์˜ ์—†๊ณ , ์ต์Šคํ”Œ๋กœ์ž‡๋„ ์—†์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์•„๋ฌด๊ฒƒ๋„ ํด๋ฆญํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฝ๊ณ„ ๋ฐฉํ™”๋ฒฝยทIDSยท์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์–ด๋А ๊ฒƒ๋„ ์ดˆ๊ธฐ ์นจํˆฌ๋ฅผ ๋ง‰์ง€ ๋ชปํ–ˆ๋‹ค.

  1. ์ดˆ๊ธฐ ์นจํˆฌ โ€” ์Šคํ”ผ์–ดํ”ผ์‹ฑ 1๊ฑด: ์•„๋žŒ์ฝ” IT ์ง์›์ด ์—ด๋žŒํ•œ ํ”ผ์‹ฑ ๋ฉ”์ผ์ด ์ถœ๋ฐœ์ ์œผ๋กœ ์ง€๋ชฉ๋œ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ดํ›„ ์ˆ˜ ์ฃผ์— ๊ฑธ์ณ ๋‚ด๋ถ€ ์ •์ฐฐ์„ ํ–ˆ๋‹ค. ํŒŒ๊ดด ๋„๊ตฌ๋ฅผ ์‹ฌ๊ณ ๋„ ์ฆ‰์‹œ ํ„ฐ๋œจ๋ฆฌ์ง€ ์•Š์€ ๊ฒƒ์ด ์ด ์‚ฌ๊ฑด์˜ ํ•ต์‹ฌ์ด๋‹ค.
  2. ์ž๊ฒฉ์ฆ๋ช… ์ˆ˜์ง‘: ๋‚ด๋ถ€ ์‹œ์Šคํ…œ์—์„œ ๋กœ์ปฌ ๊ด€๋ฆฌ์žยท๋„๋ฉ”์ธ ๊ณ„์ • ์ •๋ณด๋ฅผ ํ™•๋ณดํ–ˆ๋‹ค. 2012๋…„ ๊ธฐ์—… ํ™˜๊ฒฝ์€ ๋กœ์ปฌ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ๋ฅผ ๋ถ€์„œ ๋‹จ์œ„๋กœ ๊ณต์œ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๊ณ , ์ด๊ฒƒ์ด ํšก์  ์ด๋™์˜ ์—ด์‡ ๊ฐ€ ๋๋‹ค.
  3. ๊ณต์œ  ํด๋”๋กœ ์ž๊ธฐ ๋ณต์‚ฌ: ๋“œ๋กœํผ๋Š” \\host\share ํ˜•ํƒœ์˜ ๋„คํŠธ์›Œํฌ ๊ณต์œ ์— ์ž์‹ ์„ ๋ณต์‚ฌํ•œ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ์‹คํ–‰ ํŒŒ์ผ์„ ์ง์ ‘ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„๋„, ๋‹ค๋ฅธ ๊ฐ์—ผ PC์˜ ์„œ๋น„์Šค/์Šค์ผ€์ค„๋Ÿฌ๊ฐ€ ์›๊ฒฉ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  4. ์„œ๋น„์Šค๋กœ ์ƒ์ฃผ: ๊ฐ์—ผ๋œ PC์—์„œ NtsSrv ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•ด ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹คํ–‰๋˜๊ฒŒ ํ•œ๋‹ค. ์„œ๋น„์Šค ์ด๋ฆ„์€ ์ •์ƒ ์‹œ์Šคํ…œ ์„œ๋น„์Šค(Nt*)์ฒ˜๋Ÿผ ๋ณด์ด๋„๋ก ๊ณ ๋ฅธ ์œ„์žฅ์ด๋‹ค.
  5. ๋…ผ๋ฆฌํญํƒ„ ๋Œ€๊ธฐ: ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋ฐฐํฌ๋œ ๋’ค, ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์‹œ๊ฐ๊นŒ์ง€ ์กฐ์šฉํžˆ ๋Œ€๊ธฐํ•œ๋‹ค. ์ด ๋Œ€๊ธฐ ๊ธฐ๊ฐ„์ด ์‚ฌ๊ณ  ๋Œ€์‘์˜ ๋งˆ์ง€๋ง‰ ๊ธฐํšŒ์˜€์ง€๋งŒ, ๋‹น์‹œ์—๋Š” ์•„๋ฌด๋„ ์ด์ƒ ์ง•ํ›„๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ๋‹ค.
โš ๏ธ ์•ˆ์ „ ์•ˆ๋‚ด โ€” ์ด ๊ธ€์˜ PoC๋Š” ์ „๋ถ€ ๊ฐ€์ƒ์˜ ๋กœ์ปฌ ์‹ค์Šต ๋””๋ ‰ํ„ฐ๋ฆฌ(/tmp/shamoon_lab) ์•ˆ์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๊ต์œก์šฉ ๋ชจ์˜ ์ฝ”๋“œ๋‹ค. ์‹ค์ œ ๋””์Šคํฌ ์žฅ์น˜(\\.\PhysicalDrive0, /dev/sd*, /dev/nvme*)ยท์‹ค์ œ MBRยท์‹ค์ œ SMB ๊ณต์œ ยท์‹ค์ œ ์„œ๋น„์Šค ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—๋Š” ์ ‘๊ทผํ•˜์ง€ ์•Š์œผ๋ฉฐ, ์ ‘๊ทผ ์‹œ๋„๋ฅผ ์ฝ”๋“œ๊ฐ€ ์Šค์Šค๋กœ ๊ฑฐ๋ถ€ํ•œ๋‹ค. ์‹ค์ œ ์•…์„ฑ์ฝ”๋“œ ๋ฐ”์ด๋„ˆ๋ฆฌ๋‚˜ ๋นŒ๋”๋Š” ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

3. ๋™์ž‘ ์›๋ฆฌ ์ƒ์„ธ โ€” ์„ธ ๊ฐœ์˜ ๋ชจ๋“ˆ, ํ•˜๋‚˜์˜ ๋ชฉ์ 

Shamoon์€ ๋“œ๋กœํผ(Dropper), ์™€์ดํผ(Wiper), ๋ฆฌํฌํ„ฐ(Reporter) ์„ธ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ฐ ๋ชจ๋“ˆ์˜ ์—ญํ• ์ด ๋ถ„๋ฆฌ๋ผ ์žˆ์–ด, ๋ฐฉ์–ด ์ธก์ด ํ•˜๋‚˜๋ฅผ ์žก์•„๋„ ๋‚˜๋จธ์ง€๊ฐ€ ์ž„๋ฌด๋ฅผ ์™„์ˆ˜ํ•˜๋„๋ก ์„ค๊ณ„๋๋‹ค.

๋ชจ๋“ˆ์—ญํ• ํ•ต์‹ฌ ํ”์ 
Dropper์„œ๋น„์Šค NtsSrv ์ƒ์„ฑ, 32/64๋น„ํŠธ ํŒ๋ณ„ ํ›„ ์™€์ดํผยท๋ฆฌํฌํ„ฐ ๋“œ๋กญ, ๋„คํŠธ์›Œํฌ ๊ณต์œ ๋กœ ์ž๊ธฐ ๋ณต์‚ฌ์„œ๋น„์Šค ๋“ฑ๋ก(7045), %SystemRoot%\system32\ ๋‚ด ์‹ ๊ทœ ์‹คํ–‰ ํŒŒ์ผ, ๊ณต์œ  ํด๋” ๋‚ด ๋™์ผ ํ•ด์‹œ ํŒŒ์ผ
WiperRawDisk ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ โ†’ ํŒŒ์ผ ์—ด๊ฑฐ โ†’ ๋‚ด์šฉ ๋ฎ์–ด์“ฐ๊ธฐ โ†’ MBR ๋ฎ์–ด์“ฐ๊ธฐ์„œ๋ช…๋œ EldoS ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ, \\.\PhysicalDrive0 ํ•ธ๋“ค, ์งง์€ ์‹œ๊ฐ„์— ์ˆ˜๋งŒ ๊ฑด์˜ ํŒŒ์ผ ์“ฐ๊ธฐ
Reporter๊ฐ์—ผ ํ˜ธ์ŠคํŠธ ์ •๋ณด(์ด๋ฆ„ยทIPยทํŒŒ์ผ ๋ชฉ๋ก)๋ฅผ C2๋กœ HTTP POST๋‚ด๋ถ€ ์„œ๋ฒ„๋กœ ํ–ฅํ•˜๋Š” ๋น„์ •์ƒ HTTP POST, base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ํ˜ธ์ŠคํŠธ ์ •๋ณด

3.1 ์™œ '๊ด€๋ฆฌ์ž ๊ถŒํ•œ'๋งŒ์œผ๋กœ ๋””์Šคํฌ ์ „์ฒด๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์—ˆ๋‚˜ โ€” RawDisk

์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž ๋ชจ๋“œ ํ”„๋กœ๊ทธ๋žจ์€ \\.\PhysicalDrive0์„ ์—ด ์ˆ˜ ์—†๋‹ค. Windows๋Š” ์›์‹œ ๋””์Šคํฌ ์ ‘๊ทผ์— ์ปค๋„ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์š”๊ตฌํ•œ๋‹ค. Shamoon์€ ์ด ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ  ํ•ด๊ฒฐํ–ˆ๋‹ค. EldoS์‚ฌ๊ฐ€ ํ•ฉ๋ฒ•์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” RawDisk ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ•จ๊ป˜ ๋–จ์–ด๋œจ๋ฆฌ๊ณ , ๊ทธ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„œ๋น„์Šค๋กœ ๋กœ๋“œํ•œ ๋’ค DeviceIoControl๋กœ ์„นํ„ฐ ๋‹จ์œ„ ์ฝ๊ธฐยท์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒƒ์ด๋‹ค.

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

// ๊ตฌ์กฐ ์žฌ๊ตฌ์„ฑ(๊ต์œก์šฉ ์˜์‚ฌ ์ฝ”๋“œ) โ€” ์‹ค์ œ ์ƒ˜ํ”Œ ์ฝ”๋“œ๊ฐ€ ์•„๋‹˜
// 1) ์„œ๋น„์Šค ๋“ฑ๋ก: "NtsSrv" ๋กœ ์ƒ์ฃผ
CreateService(hSCM, L"NtsSrv", L"NtsSrv", SERVICE_ALL_ACCESS,
              SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START,
              SERVICE_ERROR_NORMAL, szPath, NULL, NULL, NULL, NULL, NULL);

// 2) RawDisk ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ (ํ•ฉ๋ฒ• ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์•…์šฉ)
StartService(hSvc, 0, NULL);

// 3) ์›์‹œ ๋””์Šคํฌ ํ•ธ๋“ค ํš๋“ โ€” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์™„์ „ํžˆ ์šฐํšŒ
hDisk = CreateFileW(L"\\\\.\\PhysicalDrive0",
                    GENERIC_READ | GENERIC_WRITE,
                    FILE_SHARE_READ | FILE_SHARE_WRITE,
                    NULL, OPEN_EXISTING, 0, NULL);

// 4) ํŒŒ์ผ ์—ด๊ฑฐ โ†’ ๋ฆฌํฌํ„ฐ๋กœ ๋ชฉ๋ก ์ „์†ก โ†’ ์„นํ„ฐ ๋‹จ์œ„ ๋ฎ์–ด์“ฐ๊ธฐ โ†’ MBR ํŒŒ๊ดด
WipeAllFilesAndMbr(hDisk);

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

3.2 ํŒŒ์ผ ๋ชฉ๋กํ™” โ†’ ๋ฆฌํฌํŒ… โ†’ ๋ฎ์–ด์“ฐ๊ธฐ: ์™œ '๋ชฉ๋ก'์„ ๋จผ์ € ๋ณด๋‚ผ๊นŒ

์™€์ดํผ๋Š” ์ง€์šฐ๊ธฐ ์ „์— ๋ฌด์—‡์„ ์ง€์› ๋Š”์ง€ ๋ชฉ๋ก์„ ๋งŒ๋“ ๋‹ค. ์ด ๋ชฉ๋ก์€ ๋ฆฌํฌํ„ฐ๋ฅผ ํ†ตํ•ด C2๋กœ ์ „์†ก๋œ๋‹ค. ๊ณต๊ฒฉ์ž ์ž…์žฅ์—์„œ ์ด๋Š” ํ”ผํ•ด ๊ทœ๋ชจ์˜ ์ฆ๋น™์ด์ž ํ˜‘๋ฐ•ยท์„ ์ „ ์ž๋ฃŒ๋‹ค. ์‹ค์ œ๋กœ ์‚ฌ๊ฑด ์งํ›„ ๊ณต๊ฒฉ์ž๋“ค์€ "๋ฌด์—‡์„ ์ง€์› ๋Š”์ง€"๋ฅผ ๊ณผ์‹œํ•˜๋Š” ๊ธ€์„ ์˜ฌ๋ ธ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ๋Š” ํŒŒ์ผ ์—ด๊ฑฐ โ†’ ํ•ด์‹œ/๊ฒฝ๋กœ ์ˆ˜์ง‘ โ†’ ์ „์†ก โ†’ ๋ฎ์–ด์“ฐ๊ธฐ์˜ ์ˆœ์„œ๊ฐ€ ๋ช…ํ™•ํžˆ ๋‚˜๋‰˜์–ด ์žˆ์–ด, ๋ฐฉ์–ด ์ธก์ด ์ „์†ก ๋‹จ๊ณ„์—์„œ ํƒ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ(window)์ด ์กด์žฌํ•œ๋‹ค.

2016๋…„ Shamoon 2 ๋ถ„์„์—์„œ๋Š” ํŠน์ • ์‹œ๊ฐ์— ํ™œ์„ฑํ™”๋˜๋Š” ํ•˜๋“œ์ฝ”๋”ฉ ํŠธ๋ฆฌ๊ฑฐ(2016-11-17 20:58:42๋กœ ๋ณด๊ณ )์™€, MBR์„ ๋ฎ์–ด์“ด ๋’ค ์žฌ๋ถ€ํŒ… ์‹œ ์™€์ดํผ ์ด๋ฏธ์ง€๋ฅผ ๋ถ€ํŠธ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์ด ํ™•์ธ๋๋‹ค. ์ฆ‰ ํ”ผํ•ด์ž๋Š” "๋ถ€ํŒ…์ด ์•ˆ ๋˜๋Š” PC"๋ฅผ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๊ณต๊ฒฉ์ž์˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋œฌ PC๋ฅผ ๋ณด๊ฒŒ ๋œ๋‹ค. 2018๋…„ Shamoon 3๋Š” ์ดํƒˆ๋ฆฌ์•„ ์„์œ ์„œ๋น„์Šค ๊ธฐ์—… Saipem์„ ๊ฒจ๋ƒฅํ•ด ์•ฝ 300๋Œ€ ๊ทœ๋ชจ์˜ ์„œ๋ฒ„ยทPC๊ฐ€ ํ›ผ์†๋œ ๊ฒƒ์œผ๋กœ ๋ณด๋„๋๋‹ค.

3.3 ์‚ฌ๊ฑด ํƒ€์ž„๋ผ์ธ

์‹œ์ ์‚ฌ๊ฑด
2012-04์ด๋ž€ ์„์œ ๋ถ€ยท์›์ž๋ ฅ ์‹œ์„ค ๋Œ€์ƒ Wiper ๊ณต๊ฒฉ โ€” Shamoon์˜ ์ „์‹ ์œผ๋กœ ํ‰๊ฐ€
2012-05~07์•„๋žŒ์ฝ” IT ์ง์› ํ”ผ์‹ฑ ๋ฉ”์ผ โ†’ ๋‚ด๋ถ€ ์ •์ฐฐยท์ž๊ฒฉ์ฆ๋ช… ์ˆ˜์ง‘(์ถ”์ •)
2012-08-15 11:08๋…ผ๋ฆฌํญํƒ„ ๋ฐœ๋™ โ€” ์•ฝ 30,000๋Œ€ ํŒŒ์ผยทMBR ๋ฎ์–ด์“ฐ๊ธฐ. ๊ณต๊ฒฉ ์ „ 'Cutting Sword of Justice' Pastebin ์„ ์–ธ
2012-08-16SymantecยทKasperskyยทSeculert ๋ถ„์„ ๊ณต๊ฐœ, W32.DistTrack ๋ช…๋ช…
2012-08-25์•„๋žŒ์ฝ” "์ฃผ์š” ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๋ณต๊ตฌ" ๋ฐœํ‘œ. ์‹ค์ œ ํ˜„์žฅ ๋ณต๊ตฌ๋Š” 9์›”๊นŒ์ง€ ์ง€์—ฐ๋๋‹ค๋Š” ์ฆ์–ธ
2012-08-29๊ณต๊ฒฉ์ž, ๋ผ์šฐํ„ฐยทCEO ๊ณ„์ • ์ •๋ณด๋ผ ์ฃผ์žฅํ•˜๋Š” 2์ฐจ Pastebin ๊ฒŒ์‹œ
2012-08 ๋ง์นดํƒ€๋ฅด RasGas๋„ ์œ ์‚ฌ ํ”ผํ•ด โ€” ๋ณ€์ข… ๋˜๋Š” ๋™์ผ ๊ณ„์—ด๋กœ ํ‰๊ฐ€
2016-11Shamoon 2 โ€” ์‚ฌ์šฐ๋”” ํ•ญ๊ณต์ฒญ(GACA) ๋“ฑ ์ •๋ถ€๊ธฐ๊ด€ ๊ฒจ๋ƒฅ, MBR ์™€์ดํผ + ๋ถ€ํŠธ ์ด๋ฏธ์ง€
2017-01Shamoon 2 ๋ณ€์ข… ์žฌ๋“ฑ์žฅ โ€” ์‚ฌ์šฐ๋”” ์ •๋ถ€๊ธฐ๊ด€ ์ถ”๊ฐ€ ํ”ผํ•ด
2018-12Shamoon 3 โ€” Saipem(์ดํƒˆ๋ฆฌ์•„) ๊ฒจ๋ƒฅ, ์„œ๋ฒ„ยทPC ์ˆ˜๋ฐฑ ๋Œ€ ํ›ผ์† ๋ณด๋„

4. ํ”ผํ•ด ๊ทœ๋ชจ/์˜ํ–ฅ โ€” ์ˆซ์ž๋ณด๋‹ค ๋ฌด์„œ์šด ๊ฒƒ์€ '๋ณต๊ตฌ ์‹œ๊ฐ„'

5. PoC โ€” ๋™์ž‘ ์›๋ฆฌ๋ฅผ '๊ฐ€์ƒ ๋žฉ'์—์„œ ์žฌํ˜„ํ•˜๊ธฐ

์•„๋ž˜ 4๊ฐœ PoC๋Š” ๋ชจ๋‘ ๋กœ์ปฌ ์‹ค์Šต ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ๋งŒ ๋™์ž‘ํ•œ๋‹ค. โ‘  ์ƒ์ฃผยท์•„ํ‚คํ…์ฒ˜ ๋ถ„๊ธฐ, โ‘ก ์ž๊ฒฉ์ฆ๋ช… ์žฌ์‚ฌ์šฉ ํšก์  ์ด๋™, โ‘ข ์ด๋ฏธ์ง€ ๋ฎ์–ด์“ฐ๊ธฐ + ๊ฐ€์งœ MBR, โ‘ฃ ํƒ์ง€ ๋ฃฐ. ์‹ค์ œ ์•…์„ฑ ํ–‰์œ„ยท์‹ค์ œ ๋””์Šคํฌ ์ ‘๊ทผยท์‹ค์ œ ๋„คํŠธ์›Œํฌ ์ „์†ก์€ ์ผ์ ˆ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

PoC 1 โ€” ๋“œ๋กœํผ: ์„œ๋น„์Šค ์ƒ์ฃผ + 32/64๋น„ํŠธ ๋ถ„๊ธฐ (์‹œ๋ฎฌ๋ ˆ์ด์…˜)

์‹ค์ œ ๋“œ๋กœํผ๋Š” SCM(์„œ๋น„์Šค ์ œ์–ด ๊ด€๋ฆฌ์ž)์— NtsSrv๋ฅผ ๋“ฑ๋กํ•œ๋‹ค. ๋žฉ์—์„œ๋Š” ๊ฐ€์ƒ ์„œ๋น„์Šค ํ…Œ์ด๋ธ”(JSON)์— ๋“ฑ๋กํ•ด, ์–ด๋–ค ํ”์ ์ด ๋‚จ๋Š”์ง€ ๊ด€์ฐฐํ•œ๋‹ค. ์‹ค์ œ sc create๋‚˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์“ฐ๊ธฐ๋Š” ํ•˜์ง€ ์•Š๋Š”๋‹ค.

#!/usr/bin/env python3
"""๊ต์œก์šฉ: ๋“œ๋กœํผ์˜ '์ƒ์ฃผ + ์•„ํ‚คํ…์ฒ˜ ๋ถ„๊ธฐ' ๊ตฌ์กฐ๋งŒ ์žฌํ˜„ํ•œ๋‹ค.
   ์‹ค์ œ ์„œ๋น„์Šค ๋“ฑ๋ก/๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์“ฐ๊ธฐ/์‹คํ–‰์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค."""
import json, platform, struct
from pathlib import Path

LAB = Path("/tmp/shamoon_lab"); (LAB / "state").mkdir(parents=True, exist_ok=True)
SVC_DB = LAB / "state" / "services.json"

def drop_payload(arch_bits: int) -> Path:
    """32/64๋น„ํŠธ ์™€์ดํผ ์Šคํ…์„ '๊ฐ€์ƒ์œผ๋กœ' ๋“œ๋กญํ•œ๋‹ค(๋‚ด์šฉ์€ ์•ˆ์ „ํ•œ ๋งˆ์ปค)."""
    p = LAB / f"wiper_{arch_bits}.stub"
    p.write_text(f"[EDU STUB] arch={arch_bits} target=lab-only\n", encoding="utf-8")
    return p

def register_service(name: str, image: Path) -> dict:
    db = json.loads(SVC_DB.read_text()) if SVC_DB.exists() else {}
    db[name] = {"image": str(image), "start": "AUTO_START",
                "note": "๊ฐ€์ƒ ํ…Œ์ด๋ธ” โ€” ์‹ค์ œ SCM ๋“ฑ๋ก ์•„๋‹˜"}
    SVC_DB.write_text(json.dumps(db, ensure_ascii=False, indent=2), encoding="utf-8")
    return db[name]

# 64๋น„ํŠธ ํ”„๋กœ์„ธ์Šค์—์„œ 32๋น„ํŠธ ๋“œ๋กœํผ๊ฐ€ ๋Œ๋ฉด 64๋น„ํŠธ ํŽ˜์ด๋กœ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค
bits = struct.calcsize("P") * 8
payload = drop_payload(64 if bits == 64 else 32)
svc = register_service("NtsSrv", payload)

print("ํ”„๋กœ์„ธ์Šค ์•„ํ‚คํ…์ฒ˜:", platform.machine(), f"({bits}bit)")
print("๋“œ๋กญ:", payload.name, "| ์„œ๋น„์Šค:", svc)
print("\n[ํƒ์ง€ ํฌ์ธํŠธ] Windows ์ด๋ฒคํŠธ 7045์— 'NtsSrv' ์„œ๋น„์Šค ์„ค์น˜,")
print("              ์‹œ์Šคํ…œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋‚ฏ์„  ์‹คํ–‰ ํŒŒ์ผ ์ƒ์„ฑ, ๋ถ€ํŒ… ์‹œ ์ž๋™ ์‹œ์ž‘.")

PoC 2 โ€” ์ž๊ฒฉ์ฆ๋ช… ์žฌ์‚ฌ์šฉ ํšก์  ์ด๋™ (๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ)

Shamoon์˜ ํ™•์‚ฐ์€ ๊ณต์œ  ํด๋” + ์ž๊ฒฉ์ฆ๋ช…์ด๋‹ค. ๋žฉ์—์„œ๋Š” hosts/<์ด๋ฆ„>/admin$ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ฐ€์ƒ ๊ณต์œ ๋กœ ๋งŒ๋“ค๊ณ , ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ž๊ฒฉ์ฆ๋ช… ๋ชฉ๋ก์œผ๋กœ ์ ‘๊ทผ์„ ์‹œ๋„ํ•œ๋‹ค. ์‹ค์ œ SMB ์—ฐ๊ฒฐ(net use, smbclient)์€ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

#!/usr/bin/env python3
"""๊ต์œก์šฉ: '๊ณต์œ  + ์ž๊ฒฉ์ฆ๋ช…' ํ™•์‚ฐ ๋ชจ๋ธ์„ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ํ‰๋‚ด๋‚ธ๋‹ค.
   ์‹ค์ œ ๋„คํŠธ์›Œํฌ/SMB ํ˜ธ์ถœ ์—†์Œ โ€” ๋กœ์ปฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋งŒ ์‚ฌ์šฉ."""
from pathlib import Path

LAB = Path("/tmp/shamoon_lab")
STUB = b"[EDU STUB] dropper body (not executable)\n"

# ๊ณต๊ฒฉ์ž๊ฐ€ ๋‚ด๋ถ€์—์„œ ์ˆ˜์ง‘ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ์ž๊ฒฉ์ฆ๋ช… ๋ชฉ๋ก(๊ฐ€์ƒ)
CREDS = [("administrator", "P@ssw0rd!"), ("itadmin", "itadmin123"),
         ("backup", "backup")]

HOSTS = ["fileserver", "hr-pc01", "finance-pc07", "eng-ws12"]

def try_share(host: str, user: str, pw: str) -> bool:
    share = LAB / "hosts" / host / "admin$"          # ๊ฐ€์ƒ UNC \\host\admin$
    share.mkdir(parents=True, exist_ok=True)
    # ์‹ค์ œ ์ธ์ฆ ๊ฒ€์ฆ ๋Œ€์‹  '์•ฝํ•œ ์•”ํ˜ธ ๊ทœ์น™'๋งŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•œ๋‹ค
    weak = pw.lower() in {"password", "p@ssw0rd!", "itadmin123", "backup", "123456"}
    if weak:
        (share / "NtsSrv.exe").write_bytes(STUB)      # ์ž๊ธฐ ๋ณต์‚ฌ
        return True
    return False

ok = 0
for host in HOSTS:
    for user, pw in CREDS:
        if try_share(host, user, pw):
            print(f"[COPY] \\\\{host}\\admin$  as {user}:{pw}")
            ok += 1
            break
print(f"\n๋ณต์‚ฌ ์„ฑ๊ณต {ok}/{len(HOSTS)} ํ˜ธ์ŠคํŠธ")
print("[๊ตํ›ˆ] ๋กœ์ปฌ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ๊ฐ€ ๊ณต์œ ๋˜๋ฉด, ์ทจ์•ฝ์  0๊ฐœ๋กœ๋„ ๋„๋ฉ”์ธ ์ „์ฒด๊ฐ€ ์ „ํŒŒ๋œ๋‹ค.")

ํ•ด์„ค: ์‹ค์ œ ์‚ฌ๊ณ ์—์„œ๋„ ์ต์Šคํ”Œ๋กœ์ž‡์€ ์—†์—ˆ๋‹ค. ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋˜ ๊ณ„์ •๊ณผ ๋ชจ๋“  PC์— ์—ด๋ ค ์žˆ๋˜ ๊ด€๋ฆฌ ๊ณต์œ (admin$)๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ๋‹ค. ์˜ค๋Š˜๋‚  LAPS(๋กœ์ปฌ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ ์ž๋™ ๊ด€๋ฆฌ), Credential Guard, ๊ณ„์ธต์  ๊ด€๋ฆฌ ๋ชจ๋ธ(tiered admin)์ด ํ‘œ์ค€์ด ๋œ ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค.

PoC 3 โ€” ์™€์ดํผ: ์ด๋ฏธ์ง€ ๋ฎ์–ด์“ฐ๊ธฐ + ๊ฐ€์งœ MBR (์ ˆ๋Œ€ ์•ˆ์ „ ๊ฐ€๋“œ ํฌํ•จ)

๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ๋‹จ๊ณ„์ง€๋งŒ, ๋žฉ์—์„œ๋Š” ๊ฐ€์ƒ ํŒŒ์ผ์—๋งŒ ์“ด๋‹ค. ์ฝ”๋“œ๋Š” ๊ฒฝ๋กœ๊ฐ€ ๋žฉ ๋ฐ–์ด๊ฑฐ๋‚˜ ์‹ค์ œ ๋””์Šคํฌ ์žฅ์น˜ ํŒจํ„ด์ด๋ฉด ์ฆ‰์‹œ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. MBR๋„ ์‹ค์ œ ์„นํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ fake_disk.img์˜ ์ฒซ 512๋ฐ”์ดํŠธ์—๋งŒ ๊ธฐ๋กํ•œ๋‹ค.

#!/usr/bin/env python3
"""๊ต์œก์šฉ ์™€์ดํผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ โ€” /tmp/shamoon_lab ๋ฐ–์œผ๋กœ๋Š” ์ ˆ๋Œ€ ์“ฐ์ง€ ์•Š๋Š”๋‹ค."""
import json, os, re
from pathlib import Path

LAB = Path("/tmp/shamoon_lab").resolve()
VICTIM = LAB / "victim"; VICTIM.mkdir(parents=True, exist_ok=True)
(LAB / "state").mkdir(parents=True, exist_ok=True)
REPORT = LAB / "state" / "stolen_file_list.json"
DISK = LAB / "fake_disk.img"

DEVICE_PREFIXES = ("\\\\.\\", "/dev/", "/proc/", "/sys/")

def guard(p: Path) -> Path:
    if str(p).startswith(DEVICE_PREFIXES):
        raise PermissionError(f"EDU-GUARD: ์‹ค์ œ ์žฅ์น˜ ๊ฒฝ๋กœ ๊ฑฐ๋ถ€ -> {p}")
    rp = p.resolve()
    if rp != LAB and LAB not in rp.parents:
        raise PermissionError(f"EDU-GUARD: ๋žฉ ๋ฐ– ์ ‘๊ทผ ๊ฑฐ๋ถ€ -> {rp}")
    return rp

# 0) ๊ฐ€์ƒ ํ”ผํ•ด ํŒŒ์ผ
for n in ["q3_report.docx", "payroll.xlsx", "design.dwg", "notes.txt"]:
    (VICTIM / n).write_bytes(b"
๐Ÿ”’ ๊ฐ€๋“œ ์„ค๋ช…: guard()๋Š” โ‘  \\.\ยท/dev/ยท/proc/ยท/sys/๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒฝ๋กœ, โ‘ก ๋žฉ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ–์˜ ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ฑฐ๋ถ€ํ•œ๋‹ค. ์‹ค์ œ Shamoon์€ ์ด ๊ฐ€๋“œ๊ฐ€ ์—†๋Š” ์ฝ”๋“œ์˜€๊ณ , ๊ทธ๋ž˜์„œ \\.\PhysicalDrive0์— ์ง์ ‘ ์ผ๋‹ค. ์‹ค์Šต์—์„œ ์ด ๊ฐ€๋“œ๋ฅผ ์ง€์šฐ์ง€ ๋ง ๊ฒƒ.

PoC 4 โ€” ํƒ์ง€: YARA + ํ–‰์œ„ ๊ธฐ๋ฐ˜ ๋ฃฐ

์™€์ดํผ๋Š” ํŒŒ์ผ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ณด๋‹ค ํ–‰์œ„๋กœ ์žก๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋‹ค. ๋‹ค๋งŒ ์•Œ๋ ค์ง„ ๋ฌธ์ž์—ดยท์„œ๋น„์Šค๋ช…์€ ์ดˆ๊ธฐ ๋Œ€์‘์— ์œ ์šฉํ•˜๋ฏ€๋กœ ํ•จ๊ป˜ ๋‘”๋‹ค.

rule Wiper_Shamoon_Family_Markers
{
    meta:
        description = "Shamoon/DistTrack ๊ณ„์—ด ์™€์ดํผ ์ง€ํ‘œ (๊ต์œก์šฉ)"
        author      = "security-lab"
        date        = "2026-10-24"
        reference   = "https://en.wikipedia.org/wiki/Shamoon"
        scope       = "file"
    strings:
        $svc   = "NtsSrv"                ascii wide nocase
        $raw   = "RawDisk"               ascii wide nocase
        $phys  = "\\\\.\\PhysicalDrive"   ascii wide nocase
        $shn   = "SHN/AMOO"              ascii wide nocase
        $dist  = "DistTrack"             ascii wide nocase
        $flag  = { 89 50 4E 47 }         // ๋ฎ์–ด์“ฐ๊ธฐ ์ด๋ฏธ์ง€ ํ—ค๋” ๋ณ€ํ˜•
    condition:
        uint16(0) == 0x5A4D and 2 of them
}
  • ์„œ๋น„์Šค ์„ค์น˜ ๊ฐ์‹œ: Windows ๋ณด์•ˆ ๋กœ๊ทธ 7045์—์„œ NtsSrv ๋˜๋Š” ์‹œ์Šคํ…œ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋‚ฏ์„  ๋ฐ”์ด๋„ˆ๋ฆฌ ๋“ฑ๋ก์„ ํƒ์ง€. 2012๋…„์—๋Š” ์ด ๋กœ๊ทธ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณด๋Š” ์กฐ์ง์ด ๊ฑฐ์˜ ์—†์—ˆ๋‹ค.
  • ๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ ๊ฐ์‹œ: Sysmon EID 6(๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œ)์—์„œ RawDiskยท์„œ๋ช…๋์ง€๋งŒ ๋น„์ •์ƒ ๊ฒฝ๋กœ์˜ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ์™€ ๋น„๊ต. ์ทจ์•ฝ ๋“œ๋ผ์ด๋ฒ„ ์ฐจ๋‹จ ์ •์ฑ…(Microsoft Vulnerable Driver Blocklist)์ด ์˜ค๋Š˜์˜ ๋‹ต์ด๋‹ค.
  • ๋Œ€๋Ÿ‰ ํŒŒ์ผ ์“ฐ๊ธฐ ํญ์ฃผ: Sysmon EID 11 ๋˜๋Š” EDR์—์„œ ๋™์ผ ํ”„๋กœ์„ธ์Šค๊ฐ€ 1๋ถ„ ๋‚ด ์ˆ˜์ฒœ ๊ฐœ ํŒŒ์ผ์„ ์žฌ์ž‘์„ฑํ•˜๋Š” ํŒจํ„ด. ์ •์ƒ ๋ฐฑ์—…ยท์••์ถ• ํ•ด์ œ์™€ ๊ตฌ๋ถ„ํ•˜๋ ค๋ฉด ํŒŒ์ผ ํฌ๊ธฐ ๋ณ€ํ™” ์—†์ด ๋‚ด์šฉ๋งŒ ๋ฐ”๋€Œ๋Š” ํŠน์ง•์„ ํ•จ๊ป˜ ๋ณธ๋‹ค.
  • ์›์‹œ ๋””์Šคํฌ ํ•ธ๋“ค: \\.\PhysicalDriveN์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ ํ•ธ๋“ค ์ƒ์„ฑ์€ ์ •์ƒ ์—…๋ฌด์—์„œ ๊ทนํžˆ ๋“œ๋ฌผ๋‹ค. EDR ๋ฃฐ ํ•˜๋‚˜๋กœ ์žกํžˆ๋Š” ๋Œ€ํ‘œ์  ํŒจํ„ด์ด๋‹ค.
  • ์ด๊ทธ๋ ˆ์Šค ์ด์ƒ: ๋‚ด๋ถ€ ์„œ๋ฒ„๋กœ ํ–ฅํ•˜๋Š” base64 ํŽ˜์ด๋กœ๋“œ์˜ HTTP POST, ์งง์€ ์‹œ๊ฐ„์— ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฐ™์€ URL๋กœ ์ ‘์†ํ•˜๋Š” ํ–‰์œ„.

6. ๋ฐฉ์–ด ๋ฐฉ๋ฒ• โ€” Shamoon์ด ๊ฐ€๋ฅด์ณ์ค€ ๋‹ค์„ฏ ๊ฐ€์ง€

6.1 ์‚ฌ๊ณ  ์ „: ์นจํˆฌ๋ฅผ '๋Šฆ์ถ”๊ณ ' ํŒŒ๊ดด๋ฅผ '๊ฒฌ๋””๊ฒŒ'

  • ์ž๊ฒฉ์ฆ๋ช… ์œ„์ƒ์ด ์ตœ์šฐ์„ : ๋กœ์ปฌ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ ๊ณต์œ  ๊ธˆ์ง€(LAPS), ๋„๋ฉ”์ธ ๊ด€๋ฆฌ์ž ๊ณ„์ •์˜ ์›Œํฌ์Šคํ…Œ์ด์…˜ ๋กœ๊ทธ์˜จ ์ฐจ๋‹จ, ํ‹ฐ์–ด๋“œ ๊ด€๋ฆฌ. Shamoon์˜ ํ™•์‚ฐ์€ ์ทจ์•ฝ์ ์ด ์•„๋‹ˆ๋ผ ์žฌ์‚ฌ์šฉ๋œ ์•”ํ˜ธ๋กœ ์ด๋ค„์กŒ๋‹ค.
  • ์˜คํ”„๋ผ์ธยท๋ถˆ๋ณ€ ๋ฐฑ์—…: 3-2-1 ์›์น™ + ๋ถˆ๋ณ€(immutable) ์Šคํ† ๋ฆฌ์ง€ + ์—์–ด๊ฐญ ์‚ฌ๋ณธ. ์˜จ๋ผ์ธ ๋ฐฑ์—…์€ ๊ฐ™์€ ์ž๊ฒฉ์ฆ๋ช…์œผ๋กœ ์ง€์›Œ์งˆ ์ˆ˜ ์žˆ๋‹ค. Shamoon์€ ๋ฐฑ์—… ์„œ๋ฒ„๊นŒ์ง€ ๋…ธ๋ ธ๋‹ค.
  • ๊ด€๋ฆฌ ๊ณต์œ  ์ตœ์†Œํ™”: admin$ยทC$ ์ ‘๊ทผ์„ ์—…๋ฌด์ ์œผ๋กœ ํ•„์š”ํ•œ ํ˜ธ์ŠคํŠธ๋กœ ์ œํ•œํ•˜๊ณ , SMB ์„œ๋ช…ยทSMBv1 ์ œ๊ฑฐ๋ฅผ ์ ์šฉํ•œ๋‹ค.
  • ์ทจ์•ฝ ๋“œ๋ผ์ด๋ฒ„ ์ฐจ๋‹จ: ์„œ๋ช…๋œ ๋“œ๋ผ์ด๋ฒ„๋ผ๋„ ์œ„ํ—˜ํ•œ ๊ฒƒ์€ ๋กœ๋“œ๋˜์ง€ ์•Š๊ฒŒ WDAC/AppLocker + Microsoft ์ทจ์•ฝ ๋“œ๋ผ์ด๋ฒ„ ์ฐจ๋‹จ ๋ชฉ๋ก์„ ์šด์˜ํ•œ๋‹ค. "์„œ๋ช… = ์•ˆ์ „"์ด ์•„๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋ถ„ํ• : ์—…๋ฌด๋งยท๋ฐฑ์—…๋งยทICS๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ , ์—…๋ฌด๋ง์—์„œ ICS๋กœ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ๋ณธ ์ฐจ๋‹จํ•œ๋‹ค. ์•„๋žŒ์ฝ”๊ฐ€ ์›์œ  ์ƒ์‚ฐ์„ ์ง€ํ‚จ ๊ฒƒ์€ ์ด ๋ถ„๋ฆฌ ๋•๋ถ„์ด์—ˆ๋‹ค.
  • ์ด์ƒ ํ–‰์œ„ ํƒ์ง€: ์„œ๋น„์Šค ์„ค์น˜ยท๋“œ๋ผ์ด๋ฒ„ ๋กœ๋“œยท๋Œ€๋Ÿ‰ ํŒŒ์ผ ์“ฐ๊ธฐยท์›์‹œ ๋””์Šคํฌ ์ ‘๊ทผ์„ ์ƒ๊ด€ ๋ฃฐ๋กœ ๋ฌถ๋Š”๋‹ค. ๋‹จ์ผ ์ด๋ฒคํŠธ๋Š” ์˜คํƒ์ด์ง€๋งŒ, ์กฐํ•ฉ์€ ๊ฑฐ์˜ ํ™•์ •์ด๋‹ค.

6.2 ์‚ฌ๊ณ  ์ค‘: '๋„์ง€ ๋ง๊ณ  ๊ฒฉ๋ฆฌ'

  • ์ „์›์„ ๋„์ง€ ์•Š๋Š”๋‹ค: ๋ฉ”๋ชจ๋ฆฌ ์ฆ๊ฑฐ์™€ ์•”ํ˜ธํ™” ํ‚คยทC2 ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ง€๊ณ , ํŒŒ์ผ ์‹œ์Šคํ…œ ์ €๋„ ๋ณต๊ตฌ ๊ฐ€๋Šฅ์„ฑ๋„ ์ค„์–ด๋“ ๋‹ค. ๋„คํŠธ์›Œํฌ์—์„œ ๊ฒฉ๋ฆฌ๊ฐ€ ๋จผ์ €๋‹ค.
  • ๊ฐ์—ผ ๋ฒ”์œ„๋ฅผ ์ž๊ฒฉ์ฆ๋ช… ๊ธฐ์ค€์œผ๋กœ ์—ญ์ถ”์ : ์–ด๋–ค ๊ณ„์ •์ด ์–ด๋А ํ˜ธ์ŠคํŠธ์— ๋กœ๊ทธ์˜จํ–ˆ๋Š”์ง€, ์–ด๋–ค ๊ณต์œ ์— ์ ‘๊ทผํ–ˆ๋Š”์ง€๋ฅผ ๋ณธ๋‹ค. Shamoon์€ ๊ณ„์ • ๋‹จ์œ„๋กœ ๋ฒˆ์กŒ๋‹ค.
  • ์™€์ดํผ๋Š” '๋ณต๊ตฌ'๊ฐ€ ์•„๋‹ˆ๋ผ '์žฌ๊ตฌ์ถ•': ๋ฎ์–ด์“ด ํŒŒ์ผ์€ ์นด๋น™์œผ๋กœ๋„ ์‚ด์•„๋‚˜์ง€ ์•Š๋Š”๋‹ค. ๋ฐฑ์—…์—์„œ ๋ณต์›ํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ์†์‹ค๋กœ ํ™•์ •ํ•˜๊ณ , ์žฌ๊ตฌ์ถ• ์ ˆ์ฐจ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • ๊ณต๊ฒฉ์ž ๋ฉ”์‹œ์ง€๋ฅผ ํ˜‘์ƒ์— ์“ฐ์ง€ ์•Š๋Š”๋‹ค: Shamoon์€ ๊ธˆ์ „ ์š”๊ตฌ๊ฐ€ ์—†์—ˆ๋‹ค. Pastebin ๊ฒŒ์‹œ๊ธ€์€ ์„ ์ „์ด์ง€ ํ˜‘์ƒ ์ฐฝ๊ตฌ๊ฐ€ ์•„๋‹ˆ๋‹ค.

6.3 ์‚ฌ๊ณ  ํ›„: ์ œ๋„์™€ ํ›ˆ๋ จ

  • ๋ณต๊ตฌ ๋ฆฌํ—ˆ์„ค: "3๋งŒ ๋Œ€๋ฅผ 2์ฃผ ์•ˆ์— ์žฌ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?"๋ฅผ ๋ฌธ์„œ๋กœ ๋‹ตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์•„๋žŒ์ฝ”๋Š” ์„ธ๊ณ„ HDD ์‹œ์žฅ์„ ์‚ฌ๋“ค์ด๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‹ตํ–ˆ๋‹ค โ€” ๊ทธ๊ฒƒ์ด ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด ๋˜์ง€ ์•Š๋„๋ก ์ด๋ฏธ์ง€ ๋ฐฐํฌยทPXEยท์ž๋™ํ™”๋ฅผ ์ค€๋น„ํ•œ๋‹ค.
  • ICS ๊ฒฝ๊ณ„ ์žฌํ™•์ธ: "๋ถ„๋ฆฌ๋ผ ์žˆ๋‹ค"๋Š” ๋ง์€ ๊ฒ€์ฆ์ด ์•„๋‹ˆ๋‹ค. ์—…๋ฌด๋ง์—์„œ ์ œ์–ด๋ง์œผ๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋ฅผ ์‹ค์ œ๋กœ ์Šค์บ”ํ•˜๊ณ  ์ฐจ๋‹จํ•œ๋‹ค.
  • ์–ต์ง€์™€ ๊ท€์†: ๊ท€์†์ด ์—†์œผ๋ฉด ๋ณด๋ณต๋„ ์—†๋‹ค. Shamoon์€ ์ด๋ž€ ๋ฐฐํ›„๋กœ ํ‰๊ฐ€๋์ง€๋งŒ ๊ณต์‹ ๊ธฐ์†Œ๋กœ ์ด์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ์ดํ›„ ๊ฐ๊ตญ์€ ์‚ฌ์ด๋ฒ„ ๊ท€์†ยท์ œ์žฌ ์ฒด๊ณ„๋ฅผ ๊ฐ•ํ™”ํ–ˆ๋‹ค.

7. ๊ตํ›ˆ โ€” ํŒŒ๊ดดํ˜• ์•…์„ฑ์ฝ”๋“œ์˜ ๋ฌธ๋ฒ•

  • ๋žœ์„ฌ์›จ์–ด๋ณด๋‹ค ์˜ค๋ž˜๋œ '๊ฒฝ์ œํ•™': ๋ชธ๊ฐ’์„ ๋ฐ›์ง€ ์•Š์•„๋„, ๋ณต๊ตฌ ๋น„์šฉยท์—…๋ฌด ์ค‘๋‹จยทํ‰ํŒ์ด ๊ณต๊ฒฉ์˜ ์ˆ˜์ต(๋˜๋Š” ์ •์น˜์  ํšจ๊ณผ)์ด ๋œ๋‹ค. 2026๋…„์˜ ์™€์ดํผยทํŒŒ๊ดดํ˜• ๊ณต๊ฒฉ๋„ ๊ฐ™์€ ๊ณ„์‚ฐ์„ ํ•œ๋‹ค.
  • ์ทจ์•ฝ์ ์€ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๋‹ค: ํ”ผ์‹ฑ 1๊ฑด + ์žฌ์‚ฌ์šฉ๋œ ๊ด€๋ฆฌ์ž ์•”ํ˜ธ + ๊ด€๋ฆฌ ๊ณต์œ . ์ œ๋กœ๋ฐ์ด๋Š” ์—†์—ˆ๋‹ค. ์šด์˜ ์œ„์ƒ์ด ๊ณง ๊ณต๊ฒฉ๋ฉด์ด๋‹ค.
  • ํ•ฉ๋ฒ• ๋„๊ตฌ์˜ ๋ฌด๊ธฐํ™”: ์„œ๋ช…๋œ RawDisk ๋“œ๋ผ์ด๋ฒ„, ์ •์ƒ ์„œ๋น„์Šค API, ์ •์ƒ ๊ณต์œ  ํ”„๋กœํ† ์ฝœ. BYOVD์™€ LOLBins ๋ฌธ์ œ์˜ ์›ํ˜•์ด๋ฉฐ, "์•…์„ฑ์ฝ”๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜"๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•œ ์ด์œ ๋‹ค.
  • ๋ฐฑ์—…์€ '์žˆ์Œ'์ด ์•„๋‹ˆ๋ผ '๋ณต์›๋จ'์ด ๊ธฐ์ค€: Shamoon์€ ๋ฐฑ์—…๊นŒ์ง€ ๋…ธ๋ ธ๋‹ค. ์˜คํ”„๋ผ์ธยท๋ถˆ๋ณ€ยท์—์–ด๊ฐญ์ด ์—†์œผ๋ฉด ๋ฐฑ์—…์€ ๊ฐ™์€ ์šด๋ช…์„ ๊ณต์œ ํ•œ๋‹ค.
  • ์‹œ๊ฐ„์ด ๊ณง ํ”ผํ•ด: 11:08์ด๋ผ๋Š” ์‹œ๊ฐ, ์—ฐํœด, 2์ฃผ์˜ ๋ณต๊ตฌ. ๊ณต๊ฒฉ์ž๋Š” ์กฐ์ง์˜ ๋‹ฌ๋ ฅ์„ ์ฝ๋Š”๋‹ค. ๋ฐฉ์–ด์ž๋Š” ์—ฐํœดยท์•ผ๊ฐ„ยท์ฃผ๋ง์˜ ํƒ์ง€ ๊ณต๋ฐฑ์„ ์ƒ์ •ํ•ด์•ผ ํ•œ๋‹ค.

์ถœ์ฒ˜ ๋ฐ ํ•จ๊ป˜ ์ฝ๊ธฐ

โ† ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ