Wargame/CTF(Capture The Flag)

[Tenable CTF] network forensic ์‹ฌ์‹ฌํ’€์ด

๐“›๐“พ๐“ฌ๐“ฎ๐“ฝ๐“ฎ_๐“ข๐“ฝ๐“ฎ๐“ต๐“ต๐“ช 2023. 3. 4.
728x90
๋ฐ˜์‘ํ˜•

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


๊ฐœ์š”

 Tenable CTF์—์„œ ์ถœ์ œ๋œ ๋„คํŠธ์›Œํฌ ํฌ๋ Œ์‹ ๋ฌธ์ œ๋ฅผ Wireshark๋ฅผ ์ด์šฉํ•˜์—ฌ ํ’€์–ด๋ณธ ๋‚ด์šฉ์ž„.

 

๋‚ด์šฉ

๋จผ์ € PCAPํŒŒ์ผ์„ ์—ด์–ด ํ™•์ธ ํ•ด๋ณด๋ฉด ๋‹ค์Œ ๋‚ด์šฉ๊ณผ ๊ฐ™๋‹ค.

ํ”„๋กœํ† ์ฝœ์˜ ์ข…๋ฅ˜์™€ ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ๋ณด๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋‚ด์šฉ์„ ํ™•์ธํ•ด๋ณธ๋‹ค.

Statistics -> Protocol Hierarchy๋ฅผ ํด๋ฆญํ•˜๊ฒŒ ๋˜๋ฉด ์•„๋ž˜์˜ ๋‚ด์šฉ์ฒ˜๋Ÿผ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์„ ํ™•์ธ๊ฐ€๋Šฅํ•˜๋‹ค.

ICMP(Internet Control Message Protocol)์„ ํ™•์ธํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค. 

ํŒจํ‚ท์„ ํ™•์ธํ•ด๋ณด๋ฉด ์‹ค์ œ๋กœ ICMP ํŒจํ‚ท์ด ๋งŽ์ด ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธ ํ• ์ˆ˜์žˆ๋‹ค.

ICMP๋ผ๋Š” ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ํ”„๋กœํ† ์ฝœ๋งŒ ํ™•์ธ ํ•˜๊ณ  ์ถœ๋ฐœ์ง€ ์•„์ดํ”ผ๋Š” 10.211.55.3๊ณผ 10.211.55.5 ๋‘๊ฐœ์˜ ์•„์ดํ”ผ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

ํŒจํ‚ท์„ ํ™•์ธํ•ด๋ณด๋ฉด 10.211.55.5์˜ ์•„์ดํ”ผ์˜ data์—์„œ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฐ”๋กœ PNG์˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜์žˆ๋Š”๋ฐ ๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ํ•„ํ„ฐ๋ฅผ ์ข€ ๋” ๊ฑธ์–ด๋ณด์ž. ํŒจํ‚ท์˜ ๊ธธ์ด๋Š” 100์ด ํ‰๊ท ์œผ๋กœ ์žกํ˜€์žˆ๋‹ค. ๊ทธ๋Ÿผ ์ตœ์ข… ํ•„ํ„ฐ๋Š” ์ด๋ ‡๊ฒŒ ํ•ด๋ณด๋Š”๊ฑด ์–ด๋–จ๊นŒ?

icmp && ip.src==10.211.55.5 && frame.len>100

์ด๋ ‡๊ฒŒ ๋ง์ด๋‹ค.

๊ทธ๋Ÿผ ์ด๋ ‡๊ฒŒ ์ค„์—ฌ์ง„๋‹ค. ๊ทธ๋Ÿผ ํ•ด๋‹น ํŒจํ‚ท๋“ค์„ ์กฐํ•ฉํ•ด๋ณด์ž.

ํ•ด๋‹น๋ฐ์ดํ„ฐ๋“ค์„ ์‚ฌ์‹ค ๋…ธ๊ฐ€๋‹ค๋ฅผ ํ†ตํ•˜์—ฌ HXD๋‚˜ ํ—ฅ์Šค๊ฐ’์„ ๋„ฃ์„ ์ˆ˜์žˆ๋Š” ๊ณณ์— ๋„ฃ์–ด PNGํŒŒ์ผ๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ์œผ๋‚˜ ๊ท€์ฐฎ์œผ๋‹ˆ ...

์ผ๋‹จ ํ•„ํ„ฐ๋ฅผ ๊ฑด ํŒจํ‚ท์„ ์ €์žฅํ•˜๊ณ ...

#/bin/python3
import scapy.all as scapy

result = scapy.rdpcap('result.pcap')
with open('result.png', 'wb') as f:
    for packet in result:
        f.write(bytes(packet.payload)[28:])

์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹คํ–‰์„ ํ•˜๋ฉด

ํŒŒ์ผ์€ result.png๋กœ ์ €์žฅ์ด ๋ ํ…๋ฐ...

์ด๋ ‡๊ฒŒ ์ €์žฅ๋˜์–ด ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

๊ฒฐ๋ก 

Wireshark๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ICMPํŒจํ‚ท์„ ๋ถ„์„ ํ•ด๋ณด์•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ด๋ฆฌ์ €๋ฆฌ ์ง€์ง€๊ณ  ๋ณถ๊ณ  ํ•˜๋‹ค๋ณด๋ฉด ๋‹ต์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œํ•œ๋ฒˆ ๋Š๋‚€๋‹ค.

๋ญ๋“  ํ•˜๋ฉด ์žฌ๋ฐŒ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€