[๐Ÿฅˆ Silver 4] ์ค„ ๋ ๊ณต๋ฐฑ์— ์ˆจ์€ ํ”Œ๋ž˜๊ทธ โ€” SNOW ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ (DreamHack Snowing! ํ’€์ด)

2026-07-08ยท1๋ถ„ ์ฝ๊ธฐยท

[๐Ÿฅˆ Silver 4] ์ค„ ๋ ๊ณต๋ฐฑ์— ์ˆจ์€ ํ”Œ๋ž˜๊ทธ โ€” SNOW ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ (DreamHack Snowing! ํ’€์ด)

flag.txt ์—๋Š” ๋ฏธ๋ผ DH{fake_snow} ๋’ค๋กœ ๋ˆˆ์— ์•ˆ ๋ณด์ด๋Š” ๊ณต๋ฐฑ๊ณผ ํƒญ์ด ์ž”๋œฉ ๋ถ™์–ด ์žˆ๋‹ค. ๋ฌธ์ œ๋ช… "Snowing!" ์ด ๊ฐ€๋ฆฌํ‚ค๋Š” SNOW ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ๋‹ค. ๋ฐ”์ดํŠธ/ํŒจํ„ด์„ ์‹œ๊ฐํ™”ํ•ด ์ •์ฒด๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ณ๋“ค์—ฌ์ง„ Snow.jpeg ๊ฐ€ ํ•จ์ •์ž„์„ ํฌ๋ Œ์‹์œผ๋กœ ๋ฐฐ์ œํ•œ ๋’ค, stegsnow -C ๋กœ ๋ณตํ˜ธํ•ด Snow ๋ฐ˜๋ณต ์‚ฌ์ด์˜ ์ง„์งœ ํ”Œ๋ž˜๊ทธ๋ฅผ ๊บผ๋‚ธ๋‹ค.

๋ฌธ์ œ: DreamHack โ€” Snowing!

๋ถ„๋ฅ˜: Forensics / Misc (์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ)

๋‚œ์ด๋„: ๐Ÿฅˆ Silver 4

FLAG: DH{w0w_1t_Sn0w5}


๋ฌธ์ œ ๊ฐœ์š”

ํ•ญ๋ชฉ๋‚ด์šฉ
๋ฌธ์ œ๋ช…Snowing!
๋‚œ์ด๋„๐Ÿฅˆ Silver 4
๋ถ„๋ฅ˜Forensics / Misc
์ œ๊ณต ํŒŒ์ผDH.zip โ†’ Snow.jpeg + flag.txt
์„œ๋ฒ„์—†์Œ (์˜คํ”„๋ผ์ธ ํŒŒ์ผ ๋ถ„์„)
ํ•ต์‹ฌ ๊ธฐ๋ฒ•SNOW ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ

๋ฌธ์ œ๋ช…์ด ๊ณง ํžŒํŠธ๋‹ค. "Snowing!" โ†’ SNOW. SNOW๋Š” Matthew Kwan์ด ๋งŒ๋“  ๊ณ ์ „ ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ ๋„๊ตฌ๋กœ, ํ…์ŠคํŠธ ์ค„ ๋์— ๋ถ™๋Š” ๊ณต๋ฐฑ(space)๊ณผ ํƒญ(tab)์˜ ๋ฐฐ์—ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธด๋‹ค. ํ™”๋ฉด์—๋Š” ๊ทธ๋ƒฅ ๋นˆ ์ค„์ฒ˜๋Ÿผ ๋ณด์—ฌ์„œ ๋ˆˆ์œผ๋กœ๋Š” ์ ˆ๋Œ€ ๋ชป ์ฐพ๋Š”๋‹ค. ๊ณ๋“ค์—ฌ ์˜จ Snow.jpeg ๋Š” ์‚ฌ๋žŒ์„ ์ด๋ฏธ์ง€ ์Šคํ…Œ๊ฐ€๋…ธ ์ชฝ์œผ๋กœ ์œ ์ธํ•˜๋Š” ๋ฏธ๋ผ ์„ฑ๊ฒฉ์ด ๊ฐ•ํ•˜๋‹ค โ€” ๊ทธ๊ฒƒ๋„ ํ™•์ธํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค.

1. ๋ฐฐ๊ฒฝ โ€” SNOW ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ

SNOW(Steganographic Nature Of Whitespace)๋Š” ํ…์ŠคํŠธ ๊ฐ ์ค„ ๋’ค์— ๋ถ™๋Š” ๊ณต๋ฐฑ/ํƒญ์˜ ์กฐํ•ฉ์œผ๋กœ ๋น„ํŠธ๋ฅผ ์ธ์ฝ”๋”ฉํ•œ๋‹ค. ํ•ต์‹ฌ ํŠน์ง•์€ ์ด๋ ‡๋‹ค.

  • ๋ณด์ด๋Š” ๋ณธ๋ฌธ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ค„ ๋ ์—ฌ๋ฐฑ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์–ด ์‹œ๊ฐ์ ์œผ๋กœ ํ‹ฐ๊ฐ€ ์•ˆ ๋‚œ๋‹ค. ํ…์ŠคํŠธ ๋ทฐ์–ด์—์„  ๊ทธ๋ƒฅ "๋นˆ ์ค„"๋กœ ๋ณด์ธ๋‹ค.
  • ํƒญ์œผ๋กœ ์—ฐ์† ๊ณต๋ฐฑ์„ ์••์ถ•ํ•ด ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ์šฉ๋Ÿ‰์„ ๋Š˜๋ฆฐ๋‹ค(๊ทธ๋ž˜์„œ ๊ณต๋ฐฑ๊ณผ ํƒญ์ด ๋’ค์„ž์—ฌ ๋‚˜์˜จ๋‹ค).
  • ์˜ต์…˜์œผ๋กœ ICE ์•”ํ˜ธ(-p ํŒจ์Šค์›Œ๋“œ) ์™€ ๋‚ด์žฅ ์••์ถ•(-C) ์„ ์ง€์›ํ•œ๋‹ค.

์ฆ‰ "๋นˆ ๊ณต๊ฐ„์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ๊ณณ"์ด ์‚ฌ์‹ค์€ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ์†Œ๋‹ค. ์ด์ œ ์ด๊ฑธ ๋ˆˆ์œผ๋กœ ํ™•์ธํ•ด ๋ณด์ž.

SNOW ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ ์›๋ฆฌ๋„: ๋ณด์ด๋Š” ํ…์ŠคํŠธ๋Š” ๋ฏธ๋ผ์ด๊ณ  ๊ทธ ๋’ค ์ค„ ๋์˜ ์ŠคํŽ˜์ด์Šคยทํƒญ ๋ฐฐ์—ด์ด ์€๋‹‰ ๋น„ํŠธ, ํƒญ์œผ๋กœ ์—ฐ์† ๊ณต๋ฐฑ์„ ์••์ถ•ํ•ด ์šฉ๋Ÿ‰์„ ๋Š˜๋ฆฌ๋ฉฐ ICE ์•”ํ˜ธ์™€ ์••์ถ• ์˜ต์…˜์„ ์ง€์›, stegsnow -C ๋กœ ๋ณตํ˜ธํ•˜๋ฉด Snow ๋ฐ˜๋ณต ์‚ฌ์ด์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์˜จ๋‹ค
SNOW ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ ์›๋ฆฌ๋„: ๋ณด์ด๋Š” ํ…์ŠคํŠธ๋Š” ๋ฏธ๋ผ์ด๊ณ  ๊ทธ ๋’ค ์ค„ ๋์˜ ์ŠคํŽ˜์ด์Šคยทํƒญ ๋ฐฐ์—ด์ด ์€๋‹‰ ๋น„ํŠธ, ํƒญ์œผ๋กœ ์—ฐ์† ๊ณต๋ฐฑ์„ ์••์ถ•ํ•ด ์šฉ๋Ÿ‰์„ ๋Š˜๋ฆฌ๋ฉฐ ICE ์•”ํ˜ธ์™€ ์••์ถ• ์˜ต์…˜์„ ์ง€์›, stegsnow -C ๋กœ ๋ณตํ˜ธํ•˜๋ฉด Snow ๋ฐ˜๋ณต ์‚ฌ์ด์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์˜จ๋‹ค

2. ์ •์ฐฐ โ€” ์•ˆ ๋ณด์ด๋Š” ๊ณต๋ฐฑ์„ ๋“œ๋Ÿฌ๋‚ด๋‹ค

DH.zip ์„ ํ’€๋ฉด Snow.jpeg(๋ˆˆ ๋‚ด๋ฆฌ๋Š” ํ…Œ๋งˆ ์ด๋ฏธ์ง€)์™€ flag.txt ๊ฐ€ ๋‚˜์˜จ๋‹ค. flag.txt ๋ฅผ ์—ด๋ฉด ์ฒซ ์ค„์— DH{fake_snow} ๊ฐ€ ๋ณด์ธ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฑด ๋ฏธ๋ผ(decoy) ๋‹ค. ์ง„์งœ๋Š” ๊ทธ ๋’ค ๊ณต๋ฐฑ์— ์ˆจ์–ด ์žˆ๋‹ค. cat -A ๋กœ ์ค„ ๋ ๊ณต๋ฐฑ( )๊ณผ ํƒญ(^I)์„ ๋“œ๋Ÿฌ๋‚ด๋ฉด ์ •์ฒด๊ฐ€ ๋ณด์ธ๋‹ค.

์ •์ฐฐ์šฉ์œผ๋กœ ์“ด ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด๋ ‡๋‹ค.

์ด ๊ธ€์˜ ๋ช…๋ น์€ ๋ชจ๋‘ analysis/ ์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

# analysis/cap_recon.sh
#!/usr/bin/env bash
# ์ •์ฐฐ โ€” ์ค‘์ฒฉ zip ์•ˆ flag.txt ์˜ ์ค„๋ ๊ณต๋ฐฑ/ํƒญ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆจ์–ด ์žˆ๋‹ค
cd extracted/inner
echo "== DH.zip ๋‚ด์šฉ๋ฌผ =="
echo "  Snow.jpeg (JPEG, ํ…Œ๋งˆ์šฉ) + flag.txt (ASCII)"
echo
echo "== flag.txt ๋ณด์ด๋Š” ์ฒซ ์ค„ =="
head -1 flag.txt | cut -c1-13
echo "  โ†’ DH{fake_snow} ๋Š” ๋ฏธ๋ผ(decoy). ์ง„์งœ๋Š” ์•ˆ ๋ณด์ธ๋‹ค."
echo
echo "== cat -A ๋กœ ์ค„๋ ๊ณต๋ฐฑ(์ŠคํŽ˜์ด์Šค)ยทํƒญ(^I) ๋“œ๋Ÿฌ๋‚ด๊ธฐ (์•ž 6์ค„) =="
cat -A flag.txt | head -6
echo
echo "== ๋ฐ”์ดํŠธ ํ†ต๊ณ„ โ€” ๊ณต๋ฐฑ/ํƒญ์ด ์ž”๋œฉ =="
python3 -c "d=open('flag.txt','rb').read(); print(f'์ด {len(d)}B | ์ŠคํŽ˜์ด์Šค {d.count(b\" \")} ยท ํƒญ {d.count(bytes([9]))} ยท ์ค„๋ฐ”๊ฟˆ {d.count(bytes([10]))}')"
echo "  โ†’ ์ค„ ๋ whitespace ์€๋‹‰ = SNOW ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ (๋ฌธ์ œ๋ช… 'Snowing!')"
bash cap_recon.sh

flag.txt ์ •์ฐฐ: DH.zip ์•ˆ์— Snow.jpeg์™€ flag.txt, ๋ณด์ด๋Š” ์ฒซ ์ค„์€ ๋ฏธ๋ผ DH fake_snow, cat -A๋กœ ๋ณด๋ฉด ์ค„๋งˆ๋‹ค ๋์— ์ŠคํŽ˜์ด์Šค์™€ ํƒญ์ด ์ž”๋œฉ ๋ถ™์–ด์žˆ๊ณ , 1849๋ฐ”์ดํŠธ ์ค‘ ์ŠคํŽ˜์ด์Šค 1372ยทํƒญ 416์œผ๋กœ ๊ฑฐ์˜ ์ „๋ถ€๊ฐ€ ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค
flag.txt ์ •์ฐฐ: DH.zip ์•ˆ์— Snow.jpeg์™€ flag.txt, ๋ณด์ด๋Š” ์ฒซ ์ค„์€ ๋ฏธ๋ผ DH fake_snow, cat -A๋กœ ๋ณด๋ฉด ์ค„๋งˆ๋‹ค ๋์— ์ŠคํŽ˜์ด์Šค์™€ ํƒญ์ด ์ž”๋œฉ ๋ถ™์–ด์žˆ๊ณ , 1849๋ฐ”์ดํŠธ ์ค‘ ์ŠคํŽ˜์ด์Šค 1372ยทํƒญ 416์œผ๋กœ ๊ฑฐ์˜ ์ „๋ถ€๊ฐ€ ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค

3. ๋ฐ”์ดํŠธ ๋ ˆ๋ฒจ๋กœ ํ™•์ธ โ€” ํŒŒ์ผ์˜ 96%๊ฐ€ ๊ณต๋ฐฑ/ํƒญ

์ •๋ง ๊ณต๋ฐฑ/ํƒญ์ด ๋ฐ์ดํ„ฐ์ธ์ง€ hexdump ๋กœ ๋ชป์„ ๋ฐ•๋Š”๋‹ค. ๋ณด์ด๋Š” DH{fake_snow}(44 48 7b โ€ฆ 7d) ๋ฐ”๋กœ ๋’ค๋ถ€ํ„ฐ 09(ํƒญ)๊ณผ 20(์ŠคํŽ˜์ด์Šค)์ด ์ค„์ค„์ด ์ด์–ด์ง„๋‹ค.

# analysis/cap_hex.sh
#!/usr/bin/env bash
# flag.txt ์‹ค์ œ ๋ฐ”์ดํŠธ โ€” 0x20(space)ยท0x09(tab) ์ด ์ค„์„ ๊ฐ€๋“ ์ฑ„์šด๋‹ค
cd extracted/inner
echo "== ์ฒซ 3์ค„ hexdump: 44 48 7b..(DH{) ๋’ค๋กœ 20(space)/09(tab) ์ด ์ด์–ด์ง =="
head -c 130 flag.txt | xxd
echo
echo "== ๋ฐ”์ดํŠธ ์ข…๋ฅ˜๋ณ„ ๊ฐœ์ˆ˜ (๊ฑฐ์˜ ์ „๋ถ€ ๊ณต๋ฐฑ/ํƒญ) =="
python3 -c "
from collections import Counter
d=open('flag.txt','rb').read(); c=Counter(d)
for b,n in c.most_common(6):
    name={0x20:'space',0x09:'tab',0x0a:'newline'}.get(b, repr(chr(b)) if 32<=b<127 else hex(b))
    print(f'  0x{b:02x} {name:8s}: {n}')
print(f'  โ†’ ๊ณต๋ฐฑ+ํƒญ = {c[0x20]+c[0x09]}/{len(d)} = {100*(c[0x20]+c[0x09])//len(d)}%')
"
bash cap_hex.sh

flag.txt hexdump: 44 48 7b 66 616b 655f 736e 6f77 7d(DH fake_snow) ๋’ค๋กœ 09(tab)๊ณผ 20(space) ๋ฐ”์ดํŠธ๊ฐ€ ์ค„์„ ๊ฐ€๋“ ์ฑ„์šฐ๊ณ , ๋ฐ”์ดํŠธ ์ข…๋ฅ˜๋ณ„ ๊ฐœ์ˆ˜๋Š” space 1372ยทtab 416ยทnewline 48๋กœ ๊ณต๋ฐฑ๊ณผ ํƒญ์ด ์ „์ฒด 1849๋ฐ”์ดํŠธ์˜ 96ํผ์„ผํŠธ๋ฅผ ์ฐจ์ง€
flag.txt hexdump: 44 48 7b 66 616b 655f 736e 6f77 7d(DH fake_snow) ๋’ค๋กœ 09(tab)๊ณผ 20(space) ๋ฐ”์ดํŠธ๊ฐ€ ์ค„์„ ๊ฐ€๋“ ์ฑ„์šฐ๊ณ , ๋ฐ”์ดํŠธ ์ข…๋ฅ˜๋ณ„ ๊ฐœ์ˆ˜๋Š” space 1372ยทtab 416ยทnewline 48๋กœ ๊ณต๋ฐฑ๊ณผ ํƒญ์ด ์ „์ฒด 1849๋ฐ”์ดํŠธ์˜ 96ํผ์„ผํŠธ๋ฅผ ์ฐจ์ง€

์ „์ฒด 1849๋ฐ”์ดํŠธ ์ค‘ ์ŠคํŽ˜์ด์Šค 1372 + ํƒญ 416 = 1788๋ฐ”์ดํŠธ(96%). ํŒŒ์ผ ๋Œ€๋ถ€๋ถ„์ด ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค๋‹ค. ๋ˆˆ์—๋Š” ์•ˆ ๋ณด์—ฌ๋„ ์ •๋ณด๋Ÿ‰์ด ์ž”๋œฉ ์‹ค๋ ค ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

4. ๊ณต๋ฐฑ ํŒจํ„ด ์‹œ๊ฐํ™” โ€” ์ˆจ์€ "๋ฐ”์ฝ”๋“œ"

์ˆซ์ž๋งŒ์œผ๋กœ๋Š” ๊ฐ์ด ์•ˆ ์˜ค๋‹ˆ, ๊ฐ ์ค„์˜ ์ค„ ๋ ๊ณต๋ฐฑ/ํƒญ ๋ฐฐ์—ด์„ ์ƒ‰ ์นธ์œผ๋กœ ๊ทธ๋ ค ๋ดค๋‹ค. ํŒŒ๋ž‘=์ŠคํŽ˜์ด์Šค, ์ฃผํ™ฉ=ํƒญ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์‚ฌ๋žŒ ๋ˆˆ์—๋Š” ๊ทธ๋ƒฅ ๋นˆ ์ค„์ด๋˜ ๊ฒƒ์ด ์‚ฌ์‹ค์€ ๊ทœ์น™์ ์ธ ํŒจํ„ด(=์€๋‹‰ ๋น„ํŠธ์—ด) ์ด์—ˆ์Œ์ด ๋“œ๋Ÿฌ๋‚œ๋‹ค.

flag.txt ๊ฐ ์ค„์˜ ์ค„ ๋ whitespace๋ฅผ ์ƒ‰ ์นธ์œผ๋กœ ์‹œ๊ฐํ™”ํ•œ ๊ทธ๋ฆผ: ํŒŒ๋ž‘์€ space(0x20) ์ฃผํ™ฉ์€ tab(0x09), 49์ค„์ด ์ €๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ธธ์ด์™€ spaceยทtab ๋ฐฐ์—ด์„ ์ด๋ฃจ๋ฉฐ ๊ทœ์น™์ ์ธ ๋ฐ”์ฝ”๋“œ ๊ฐ™์€ ํŒจํ„ด์„ ๋งŒ๋“ ๋‹ค. ์ด ํŒจํ„ด ์ž์ฒด๊ฐ€ SNOW๋กœ ์€๋‹‰๋œ ๋น„ํŠธ์—ด
flag.txt ๊ฐ ์ค„์˜ ์ค„ ๋ whitespace๋ฅผ ์ƒ‰ ์นธ์œผ๋กœ ์‹œ๊ฐํ™”ํ•œ ๊ทธ๋ฆผ: ํŒŒ๋ž‘์€ space(0x20) ์ฃผํ™ฉ์€ tab(0x09), 49์ค„์ด ์ €๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ธธ์ด์™€ spaceยทtab ๋ฐฐ์—ด์„ ์ด๋ฃจ๋ฉฐ ๊ทœ์น™์ ์ธ ๋ฐ”์ฝ”๋“œ ๊ฐ™์€ ํŒจํ„ด์„ ๋งŒ๋“ ๋‹ค. ์ด ํŒจํ„ด ์ž์ฒด๊ฐ€ SNOW๋กœ ์€๋‹‰๋œ ๋น„ํŠธ์—ด

๊ฐ ์ค„ ๊ธธ์ด๊ฐ€ ๋“ค์ญ‰๋‚ ์ญ‰ํ•˜๊ณ  ํŒŒ๋ž‘ยท์ฃผํ™ฉ์ด ํŠน์ • ๊ทœ์น™์œผ๋กœ ์„ž์—ฌ ์žˆ๋‹ค. ์ด ๋ฐฐ์—ด ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ SNOW๊ฐ€ ์‹ฌ์–ด ๋†“์€ ๋น„ํŠธ๋‹ค. "๋นˆ ๊ณต๊ฐ„"์ด ๊ณง ๋ฐ์ดํ„ฐ์˜€๋˜ ๊ฒƒ.

5. Snow.jpeg ๋Š” ํ•จ์ •์ธ๊ฐ€ โ€” ํฌ๋ Œ์‹์œผ๋กœ ๋ฐฐ์ œ

์Šคํ…Œ๊ฐ€๋…ธ ๋ฌธ์ œ์—์„œ ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ™์ด ์˜ค๋ฉด ๋Œ€๊ฐœ ๊ทธ์ชฝ(EXIFยทLSBยทappend)์„ ๋จผ์ € ์˜์‹ฌํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ์ •์„๋Œ€๋กœ ์ ๊ฒ€ํ•ด ๋ ˆ๋“œํ—ค๋ง์ž„์„ ํ™•์ธํ–ˆ๋‹ค.

# analysis/cap_jpeg.sh
#!/usr/bin/env bash
# Snow.jpeg ๋Š” ํ•จ์ •์ธ๊ฐ€? โ€” ์ด๋ฏธ์ง€ ์Šคํ…Œ๊ฐ€๋…ธ ์ •์„ ์ ๊ฒ€ (๋ ˆ๋“œํ—ค๋ง ํ™•์ธ)
cd extracted/inner
echo "== 1) exiftool ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ =="
exiftool Snow.jpeg 2>/dev/null | grep -iE "File Size|Image Size|Copyright|Comment|Artist|Software" | head
echo
echo "== 2) binwalk โ€” ๋’ค์— ์ˆจ๊ฒจ ๋ถ™์ธ ํŒŒ์ผ ์žˆ๋‚˜ =="
binwalk Snow.jpeg 2>/dev/null | head -6
echo
echo "== 3) JPEG EOI(ffd9) ๋’ค ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ =="
python3 -c "d=open('Snow.jpeg','rb').read(); e=d.rfind(b'\xff\xd9'); print(f'  ํŒŒ์ผ {len(d)}B, ๋งˆ์ง€๋ง‰ EOI@{e}, EOI ๋’ค ์ž”์—ฌ {len(d)-e-2}B')"
echo
echo "== 4) ๋ณธ๋ฌธ์— DH{ ๋ฌธ์ž์—ด? =="
strings Snow.jpeg | grep -c 'DH{' | xargs echo "  DH{ ๋“ฑ์žฅ ํšŸ์ˆ˜:"
echo
echo "โ†’ ๋ฉ”ํƒ€/์ถ”๊ฐ€๋ฐ์ดํ„ฐ/๋ฌธ์ž์—ด ๋ชจ๋‘ ๊นจ๋—. Snow.jpeg ๋Š” ํ…Œ๋งˆ์šฉ ๋ ˆ๋“œํ—ค๋ง. ์ง„์งœ๋Š” flag.txt ๊ณต๋ฐฑ."
bash cap_jpeg.sh

Snow.jpeg ํฌ๋ Œ์‹: exiftool์€ File Size 281kBยทCopyright This content is subject to copyrightยท2000x1333 ๋งŒ ์žˆ๊ณ , binwalk๋Š” ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์—†์Œ, JPEG EOI(ffd9) ๋’ค ์ž”์—ฌ ๋ฐ์ดํ„ฐ 0๋ฐ”์ดํŠธ, ๋ณธ๋ฌธ์— DH ๋ฌธ์ž์—ด 0ํšŒ. ๋ฉ”ํƒ€ยท์ถ”๊ฐ€๋ฐ์ดํ„ฐยท๋ฌธ์ž์—ด ๋ชจ๋‘ ๊นจ๋—ํ•ด Snow.jpeg๋Š” ํ…Œ๋งˆ์šฉ ๋ ˆ๋“œํ—ค๋ง
Snow.jpeg ํฌ๋ Œ์‹: exiftool์€ File Size 281kBยทCopyright This content is subject to copyrightยท2000x1333 ๋งŒ ์žˆ๊ณ , binwalk๋Š” ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์—†์Œ, JPEG EOI(ffd9) ๋’ค ์ž”์—ฌ ๋ฐ์ดํ„ฐ 0๋ฐ”์ดํŠธ, ๋ณธ๋ฌธ์— DH ๋ฌธ์ž์—ด 0ํšŒ. ๋ฉ”ํƒ€ยท์ถ”๊ฐ€๋ฐ์ดํ„ฐยท๋ฌธ์ž์—ด ๋ชจ๋‘ ๊นจ๋—ํ•ด Snow.jpeg๋Š” ํ…Œ๋งˆ์šฉ ๋ ˆ๋“œํ—ค๋ง

  • exiftool: ํฌ๊ธฐยท์ €์ž‘๊ถŒ ๋ฌธ๊ตฌ๋ฟ, ์ˆ˜์ƒํ•œ ์ฝ”๋ฉ˜ํŠธยท์•„ํ‹ฐ์ŠคํŠธยท์†Œํ”„ํŠธ์›จ์–ด ํ•„๋“œ ์—†์Œ.
  • binwalk: ๋’ค์— ๋ถ™์ธ ํŒŒ์ผ ์‹œ๊ทธ๋‹ˆ์ฒ˜ ์—†์Œ.
  • EOI(ff d9) ๋’ค ์ž”์—ฌ ๋ฐ์ดํ„ฐ: 0๋ฐ”์ดํŠธ โ€” append ์Šคํ…Œ๊ฐ€๋…ธ ์•„๋‹˜.
  • ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰: ๋ณธ๋ฌธ์— DH{ 0ํšŒ.

๋ฉ”ํƒ€๋ฐ์ดํ„ฐยท์ถ”๊ฐ€ ๋ฐ์ดํ„ฐยท๋ฌธ์ž์—ด์ด ๋ชจ๋‘ ๊นจ๋—ํ•˜๋‹ˆ Snow.jpeg ๋Š” ๋ถ„์œ„๊ธฐ์šฉ ๋ฏธ๋ผ๋‹ค. ์ง„์งœ๋Š” flag.txt ์˜ ๊ณต๋ฐฑ์ด ๋งž๋‹ค.

6. ๋ณตํ˜ธ โ€” stegsnow

๋ฆฌ๋ˆ…์Šค์—์„œ๋Š” stegsnow ํŒจํ‚ค์ง€๋กœ ๋ฐ”๋กœ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค(apt install stegsnow). ์˜ต์…˜์„ ๋ชฐ๋ผ ๋‘ ๋ฒˆ์— ๋‚˜๋ˆ  ์‹œ๋„ํ–ˆ๋‹ค.

# analysis/cap_decode.sh
#!/usr/bin/env bash
# stegsnow ๋กœ whitespace ์€๋‹‰ ๋ฐ์ดํ„ฐ ์ถ”์ถœ
cd extracted/inner
echo "== 1) ๋ฌด์••์ถ• ์˜ต์…˜ (stegsnow flag.txt) โ€” ๊นจ์ง„ ์ถœ๋ ฅ โ†’ ์••์ถ•์ด ๊ฑธ๋ ค์žˆ๋‹ค๋Š” ์‹ ํ˜ธ =="
stegsnow flag.txt 2>&1 | head -c 90 | cat -v; echo " ..."
echo
echo "== 2) ์••์ถ• ์˜ต์…˜ (stegsnow -C flag.txt) โ€” ์ •์ƒ ๋ณตํ˜ธ =="
stegsnow -C flag.txt 2>/dev/null | fold -w 88 | head -4
echo
echo "== 3) ์€๋‹‰๋ฌธ ์† ํ”Œ๋ž˜๊ทธ๋งŒ ์ถ”์ถœ =="
stegsnow -C flag.txt 2>/dev/null | grep -oE 'DH\{[^}]*\}'
echo
echo "โ†’ 'Snow' ๋ฐ˜๋ณต ์‚ฌ์ด์— ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ฐ•ํ˜€ ์žˆ๋‹ค."
bash cap_decode.sh

stegsnow ๋ณตํ˜ธ: 1) ๋ฌด์••์ถ•(stegsnow flag.txt)์€ residual of 5 bits ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊นจ์ง„ ๋ฐ”์ดํŠธ ์ถœ๋ ฅ์œผ๋กœ ์••์ถ•์ด ๊ฑธ๋ ค์žˆ๋‹ค๋Š” ์‹ ํ˜ธ, 2) ์••์ถ• ์˜ต์…˜(stegsnow -C flag.txt)์€ Snow๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ์ •์ƒ ํ…์ŠคํŠธ๋กœ ๋ณตํ˜ธ๋˜๊ณ  ๊ทธ ์‚ฌ์ด์— ํ”Œ๋ž˜๊ทธ, 3) ์ •๊ทœ์‹์œผ๋กœ ํ”Œ๋ž˜๊ทธ๋งŒ ์ถ”์ถœ
stegsnow ๋ณตํ˜ธ: 1) ๋ฌด์••์ถ•(stegsnow flag.txt)์€ residual of 5 bits ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๊นจ์ง„ ๋ฐ”์ดํŠธ ์ถœ๋ ฅ์œผ๋กœ ์••์ถ•์ด ๊ฑธ๋ ค์žˆ๋‹ค๋Š” ์‹ ํ˜ธ, 2) ์••์ถ• ์˜ต์…˜(stegsnow -C flag.txt)์€ Snow๊ฐ€ ๋ฐ˜๋ณต๋˜๋Š” ์ •์ƒ ํ…์ŠคํŠธ๋กœ ๋ณตํ˜ธ๋˜๊ณ  ๊ทธ ์‚ฌ์ด์— ํ”Œ๋ž˜๊ทธ, 3) ์ •๊ทœ์‹์œผ๋กœ ํ”Œ๋ž˜๊ทธ๋งŒ ์ถ”์ถœ

  • ๋ฌด์••์ถ•(stegsnow flag.txt): Warning: residual of 5 bits not output ๊ณผ ํ•จ๊ป˜ ๊นจ์ง„ ๋ฐ”์ดํŠธ๊ฐ€ ์Ÿ์•„์ง„๋‹ค. โ†’ ๋ฐ์ดํ„ฐ๊ฐ€ ์••์ถ•๋˜์–ด ์žˆ๋‹ค๋Š” ์‹ ํ˜ธ.
  • ์••์ถ• ์˜ต์…˜(stegsnow -C flag.txt): ๊น”๋”ํ•œ ํ…์ŠคํŠธ๋กœ ๋ณตํ˜ธ๋œ๋‹ค.
$ stegsnow -C flag.txt
SnowSnowSnow...SnowDH{w0w_1t_Sn0w5}SnowSnowSnow...

Snow ๋ฅผ ์ž”๋œฉ ๋ฐ˜๋ณตํ•ด ๋ˆˆ์†์ž„์„ ๋„ฃ์–ด ๋’€์ง€๋งŒ, ๊ทธ ์‚ฌ์ด์— ์ง„์งœ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋ฐ•ํ˜€ ์žˆ๋‹ค.

stegsnow -C flag.txt | grep -oE 'DH\{[^}]*\}'
# DH{w0w_1t_Sn0w5}

ํ”Œ๋ž˜๊ทธ: DH{w0w_1t_Sn0w5}

7. ์‚ฝ์งˆ ๊ธฐ๋ก

โ–ถ๐Ÿ› ์‚ฝ์งˆ 1 โ€” DH{fake_snow} ๋ฏธ๋ผ์™€ Snow.jpeg ํ—›๋‹ค๋ฆฌ

์ฒ˜์Œ flag.txt ๋ฅผ ์—ด์ž DH{fake_snow} ๊ฐ€ ๋”ฑ ๋ณด์—ฌ์„œ "์ด๋ ‡๊ฒŒ ์‰ฝ๋‹ค๊ณ ?" ํ•˜๊ณ  ์ œ์ถœํ•  ๋ป”ํ–ˆ๋‹ค. ๋‹น์—ฐํžˆ ๋ฏธ๋ผ์˜€๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ™์ด ์žˆ์œผ๋‹ˆ ์ž์—ฐํžˆ Snow.jpeg ๋ถ€ํ„ฐ ํŒŒ๋ณด๊ณ  ์‹ถ์–ด์กŒ๋‹ค โ€” exiftoolยทbinwalkยทEOIยทLSB ๋‹ค ๋ดค์ง€๋งŒ ์ „๋ถ€ ๊นจ๋—ํ–ˆ๋‹ค. ์Šคํ…Œ๊ฐ€๋…ธ ๋ฌธ์ œ์˜ ์ „ํ˜•์ ์ธ ์œ ๋„(์ด๋ฏธ์ง€๋กœ ์‹œ์„  ๋Œ๊ธฐ)์— ์ž ๊น ๋Œ๋ ค๊ฐ”์ง€๋งŒ, ๋ฌธ์ œ๋ช… "Snow" + cat -A ๋กœ ๋“œ๋Ÿฌ๋‚œ ๊ณต๋ฐฑ ํญํƒ„์ด ์ •๋‹ต ๋ฐฉํ–ฅ์„ ํ™•์‹คํžˆ ๊ฐ€๋ฆฌ์ผฐ๋‹ค.

โ–ถ๐Ÿ› ์‚ฝ์งˆ 2 โ€” -C ์˜ต์…˜ ์ฐพ๊ธฐ (์ถœ๋ ฅ์ด ๊นจ์ง€๋ฉด ์˜ต์…˜์ด ๋น ์ง„ ๊ฒƒ)

์•„๋ฌด ์˜ต์…˜ ์—†์ด stegsnow flag.txt ๋ฅผ ๋Œ๋ ธ๋”๋‹ˆ residual of 5 bits not output ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์“ฐ๋ ˆ๊ธฐ๊ฐ€ ๋‚˜์™”๋‹ค. "๋ณตํ˜ธ๋Š” ๋˜๋Š”๋ฐ ๋‚ด์šฉ์ด ๊นจ์ง„๋‹ค = ์••์ถ•/์•”ํ˜ธ๊ฐ€ ๊ฑธ๋ ค ์žˆ๋‹ค" ๋Š” ์‹ ํ˜ธ๋กœ ์ฝ๊ณ  -C(๋‚ด์žฅ ์••์ถ• ํ•ด์ œ)๋ฅผ ๋ถ™์ด์ž ๋ฐ”๋กœ ์ •์ƒ ํ…์ŠคํŠธ๊ฐ€ ๋‚˜์™”๋‹ค. ํŒจ์Šค์›Œ๋“œ(-p)๊นŒ์ง€๋Š” ํ•„์š” ์—†์—ˆ๋‹ค. ์Šคํ…Œ๊ฐ€๋…ธ ๋„๊ตฌ๋Š” ์˜ต์…˜ ์กฐํ•ฉ์— ๋”ฐ๋ผ ์ถœ๋ ฅ์ด ์™„์ „ํžˆ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ, ์ถœ๋ ฅ ํ˜•ํƒœ๋ฅผ ๊ด€์ฐฐํ•˜๋ฉฐ ํ•˜๋‚˜์”ฉ ๋ฐ”๊ฟ”๋ณด๋Š” ๊ฒŒ ์š”๋ น์ด๋‹ค.

8. ๋งˆ๋ฌด๋ฆฌ โ€” ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ

Snowing! ์€ "๋ณด์ด์ง€ ์•Š๋Š” ๊ณณ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ˆจ๊ธฐ๋Š”" ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ์˜ ๊ฐ์„ ์žก๋Š” ๋ฌธ์ œ๋‹ค. ์ •๋ฆฌํ•˜๋ฉด ์ด๋ ‡๋‹ค.

  • ์ค„ ๋ ๊ณต๋ฐฑ/ํƒญ์€ ํ›Œ๋ฅญํ•œ ์€๋‹‰์ฒ˜๋‹ค. ํ…์ŠคํŠธ ๋ทฐ์–ดยท์ฝ”๋“œ ๋ฆฌ๋ทฐยท๋ณต์‚ฌ/๋ถ™์—ฌ๋„ฃ๊ธฐ์—์„œ๋„ ์ž˜ ์‚ด์•„๋‚จ๊ณ  ๋ˆˆ์— ์•ˆ ๋ˆ๋‹ค. ์‹ค๋ฌด์—์„œ ๋ฌธ์„œยท์†Œ์Šค์— ์›Œํ„ฐ๋งˆํฌ๋‚˜ ์œ ์ถœ ์ถ”์ ์šฉ์œผ๋กœ๋„ ์“ฐ์ธ๋‹ค.
  • ํƒ์ง€ ์š”๋ น: cat -A(๋˜๋Š” cat -T, xxd, od -c)๋กœ ์ค„ ๋ ๊ณต๋ฐฑ/ํƒญ์„ ๋“œ๋Ÿฌ๋‚ด๊ฑฐ๋‚˜, ํŒŒ์ผ ํฌ๊ธฐ ๋Œ€๋น„ ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ๋น„์œจ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ๋†’์€์ง€ ๋ณธ๋‹ค. ์ด ํŒŒ์ผ์€ 1849๋ฐ”์ดํŠธ์˜ 96%๊ฐ€ ๊ณต๋ฐฑ/ํƒญ์ด์—ˆ๋‹ค.
  • ์‹œ๊ฐํ™”๊ฐ€ ํ†ตํ•œ๋‹ค. ๊ณต๋ฐฑ/ํƒญ์„ ์ƒ‰ ์นธ์œผ๋กœ ๊ทธ๋ฆฌ๋ฉด ์ˆจ์€ ํŒจํ„ด์ด ํ•œ๋ˆˆ์— ๋“œ๋Ÿฌ๋‚œ๋‹ค. ํฌ๋ Œ์‹์—์„œ "์•ˆ ๋ณด์ด๋Š” ๊ฒƒ"์€ ์ข…์ข… ํ‘œํ˜„ ๋ฐฉ์‹์„ ๋ฐ”๊พธ๋ฉด ๋ณด์ธ๋‹ค.
  • ๊ณ๋‹ค๋ฆฌ ํŒŒ์ผ๋„ ๋ฐฐ์ œ ๊ทผ๊ฑฐ๋ฅผ ๋‚จ๊ฒจ๋ผ. Snow.jpeg ์ฒ˜๋Ÿผ ์œ ๋„์šฉ ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด exiftoolยทbinwalkยทEOI ์ ๊ฒ€์œผ๋กœ "์—ฌ๊ธด ์—†๋‹ค"๋ฅผ ํ™•์ธํ•˜๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ—›์ˆ˜๊ณ ๋ฅผ ์ค„์ธ๋‹ค.
  • ๋ฏธ๋ผ์— ์†์ง€ ๋ง ๊ฒƒ: ๋ˆˆ์— ๋ฐ”๋กœ ๋ณด์ด๋Š” DH{fake_snow} ๋Š” ํ•จ์ •์ด์—ˆ๋‹ค. ์Šคํ…Œ๊ฐ€๋…ธ ๋ฌธ์ œ์—์„œ "๋„ˆ๋ฌด ์‰ฌ์šด" ๊ฐ’์€ ๋Œ€๊ฐœ decoy๋‹ค.

๋ฐฉ์–ด/ํฌ๋ Œ์‹ ๊ด€์ ์—์„œ, ํ™”์ดํŠธ์ŠคํŽ˜์ด์Šค ์Šคํ…Œ๊ฐ€๋…ธ๋Š” DLP(๋ฐ์ดํ„ฐ ์œ ์ถœ ๋ฐฉ์ง€)์—์„œ ๋†“์น˜๊ธฐ ์‰ฌ์šด ์ฑ„๋„์ด๋‹ค. ํ…์ŠคํŠธ ์œ ์ถœ ๊ฒ€์‚ฌ ์‹œ ์ค„ ๋ ๊ณต๋ฐฑ ์ •๊ทœํ™”ยท์—”ํŠธ๋กœํ”ผ ๊ฒ€์‚ฌ๋ฅผ ํฌํ•จํ•˜๋ฉด ์ด๋Ÿฐ ์€๋‹‰์„ ์žก์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.


FLAG: DH{w0w_1t_Sn0w5}

์ด ๊ธ€์ด ๋„์›€์ด ๋๋‚˜์š”?

Comments

๋Œ“๊ธ€

0๊ฐœ

๋Œ“๊ธ€์„ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•ด์š”. (๋„ค์ด๋ฒ„ ยท ๊ตฌ๊ธ€ ๊ณ„์ •)

๋Œ“๊ธ€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ค‘โ€ฆ

Related

๊ด€๋ จ ๊ธ€

3๊ฐœ
[๐Ÿฅ‰ Bronze 1] LSB์—” ์—†๋‹ค, ์ฃผํŒŒ์ˆ˜์— ์žˆ๋‹ค โ€” DreamHack Audio Steganography ํ’€์ด
blog

[๐Ÿฅ‰ Bronze 1] LSB์—” ์—†๋‹ค, ์ฃผํŒŒ์ˆ˜์— ์žˆ๋‹ค โ€” DreamHack Audio Steganography ํ’€์ด

6์ดˆ์งœ๋ฆฌ WAV ํŒŒ์ผ ํ•˜๋‚˜๊ฐ€ ์ „๋ถ€์ธ ํฌ๋ Œ์‹ ๋ฌธ์ œ. ์˜ค๋””์˜ค ์Šคํ…Œ๊ฐ€๋…ธ๊ทธ๋ž˜ํ”ผ๋ผ๊ณ  ํ•˜๋ฉด ๋ฐ˜์‚ฌ์ ์œผ๋กœ LSB(์ตœํ•˜์œ„ ๋น„ํŠธ)๋ถ€ํ„ฐ ๋ฝ‘์•„๋ณด๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋Š” ๊ทธ๋ƒฅ ์žก์Œ์ด๋‹ค. "์ด์ƒํ•œ ์†Œ๋ฆฌ๊ฐ€ ๋‚˜์š”"๋ผ๋Š” ๋ฌธ์ œ ์„ค๋ช…์„ ๋‹ค์‹œ ์ฝ๊ณ  ์ŠคํŽ™ํŠธ๋กœ๊ทธ๋žจ์„ ์ฐ์–ด๋ณด๋ฉด, ์ฃผํŒŒ์ˆ˜ ์˜์—ญ์— flag ๋ฌธ์ž์—ด์ด ๊ธ€์ž ๋ชจ์–‘ ๊ทธ๋Œ€๋กœ ๊ทธ๋ ค์ ธ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋น„ํŠธ์— ์ˆจ๊ธด ๊ฒŒ ์•„๋‹ˆ๋ผ ์ง„ํญ์„ ๋ถ“ ์‚ผ์•„ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆฐ, Aphex Twin๋ฅ˜ ์ŠคํŽ™ํŠธ๋กœ๊ทธ๋žจ ์•„ํŠธ๋‹ค.
#dreamhack#ctf#forensics+4
2026-07-20#dreamhack +5
[๐Ÿฅˆ Silver 4] JPEG ๋ ๋’ค์˜ tar.bz2 ์™€ IEND ๋’ค์˜ AES ํ‚ค โ€” DreamHack Gyul Box ํ’€์ด
blog

[๐Ÿฅˆ Silver 4] JPEG ๋ ๋’ค์˜ tar.bz2 ์™€ IEND ๋’ค์˜ AES ํ‚ค โ€” DreamHack Gyul Box ํ’€์ด

๊ทค ์‚ฌ์ง„ ๋‘ ์žฅ์ด ์ „๋ถ€์ธ ํฌ๋ Œ์‹ ๋ฌธ์ œ. ํ•˜๋‚˜๋Š” JPEG ๋งˆ์ปค๊ฐ€ ๋๋‚œ ๋’ค์— tar.bz2 ๋ฅผ ๋‹ฌ๊ณ  ์žˆ์—ˆ๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” IEND ์ฒญํฌ ๋’ค์— AES ํ‚ค๋ฅผ ํ‰๋ฌธ์œผ๋กœ ํ˜๋ฆฌ๊ณ  ์žˆ์—ˆ๋‹ค. ์ƒ์ž๋ฅผ ๋„ค ๊ฒน ๋ฒ—๊ธฐ๋ฉด ROT ์น˜ํ™˜๊ณผ AES-256-ECB ๊ฐ€ ์ฐจ๋ก€๋กœ ๋‚˜์˜ค๊ณ , ๋งˆ์ง€๋ง‰ ํ”Œ๋ž˜๊ทธ๋Š” ๋ฌธ์ž์—ด์ด ์•„๋‹ˆ๋ผ ๊ทธ๋ฆผ์œผ๋กœ ๋ Œ๋”๋ผ ์žˆ๋‹ค.
#dreamhack#ctf#forensics+7
2026-08-20#dreamhack +4
[๐Ÿฅˆ Silver 3] ํ”„๋ฆฌ์  ํ„ฐ๋ฅผ 70๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋ชจ์Šค๋ถ€ํ˜ธ๊ฐ€ ๋œ๋‹ค โ€” DreamHack My Nervous PPT ํ’€์ด
blog

[๐Ÿฅˆ Silver 3] ํ”„๋ฆฌ์  ํ„ฐ๋ฅผ 70๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๋ชจ์Šค๋ถ€ํ˜ธ๊ฐ€ ๋œ๋‹ค โ€” DreamHack My Nervous PPT ํ’€์ด

๋ฐœํ‘œ ์ „ ๊ธด์žฅํ•ด์„œ ํ”„๋ฆฌ์  ํ„ฐ๋ฅผ ๋ˆŒ๋Ÿฌ๋Œ”๋‹ค๋Š” ์ด์•ผ๊ธฐ์™€ ํ•จ๊ป˜ USBPcap ์บก์ณ ํ•˜๋‚˜๋งŒ ์ฃผ์–ด์ง„๋‹ค. 310๊ฐœ ํŒจํ‚ท ์ค‘ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์„  ํ”„๋ฆฌ์  ํ„ฐ๊ฐ€ ์˜ฌ๋ฆฐ 8๋ฐ”์ดํŠธ HID ํ‚ค๋ณด๋“œ ๋ฆฌํฌํŠธ 140๊ฐœ๋ฟ์ด๊ณ , ๊ฑฐ๊ธฐ ๋“ฑ์žฅํ•˜๋Š” ํ‚ค๋Š” UpArrow์™€ DownArrow ๋‘˜๋ฟ์ด๋‹ค. ๋‘ ์ข…๋ฅ˜ ์‹ ํ˜ธ์— ๋ˆŒ๋ฆผ ๊ฐ„๊ฒฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ธ€์ž ๊ฒฝ๊ณ„๊นŒ์ง€ ์žˆ์œผ๋‹ˆ ๋ชจ์Šค๋ถ€ํ˜ธ๋‹ค. ๊ฐ„๊ฒฉ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ 19๋ฉ์–ด๋ฆฌ๋ฅผ ์ž๋ฅด๊ณ  ๋ณตํ˜ธํ•˜๋ฉด ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์˜จ๋‹ค.
#dreamhack#ctf#misc+6
2026-08-17#dreamhack +4