๐Firmware Analysis Process 2
DATE : 2024/05/16
์๋ ํ์ธ์, ํํ์ ๋๋ค.
์ค๋๋ ์ด๊น์์ด Firmware Analysis์ ๊ด๋ จ๋ ๋ด์ฉ์ ๊ฐ์ ธ์๋๋ฐ์,
Firmware Analysis Process์์ ๋ค๋ฃฌ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋! ์กฐ๊ธ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก
File System ์ถ์ถํ๋ ๊ณผ์ ์ ์๊ฐํด๋ณผ๊น ํฉ๋๋ค.
๋ฐ๋ก ์์ POST์์๋ Binwalk ๋ผ๋ ๋๊ตฌ๋ฅผ ํ์ฉํ์ฌ ํ์ผ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๊ณ
์์ถ๋์ด์๋ LZMA ํ์ผ & Squashfs File System์ ์ถ์ถํ์์ต๋๋ค.
ํ์ง๋ง Binwalk ํน์ฑ ์, ํ์ผ ์ด๋ฆ์ ์ซ์๋ก ๋ถ์ฌํ๋ค๋ ๋ถ๋ถ์ด ๋ถํธํ์ค ์๋ ์๊ณ
Firmware๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ํํธ๋ฅผ ์ถ์ถํ์ฌ ๋ถํ์ํ ์ฝํ ์ธ ๋ฅผ ์์ฑํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ๋ ์์ ๊ฒ๋๋ค.
๊ทธ๋์ ์ค๋์ Firmware์ ํน์ ๋ถ๋ถ๋ง ์ ๋นผ๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ณ ์ ํ๋๋ฐ์,
๋ฐ๋ก ์์ํด๋ณด์ฃ !!
1_) Firmware ์ค๋นํ๊ธฐ
์ค๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ์ํ Firmware๋ฅผ ์ค๋นํด์ค๋๋ค!
์ ๋ ์ข ๋ ๋ค์ํ๊ฒ ๊ตฌ์ฑ๋ Firmware๋ฅผ ๋ณด์ฌ๋๋ฆฌ๊ธฐ ์ํด ์์ ์ฌ์ฉํ Firmware๊ฐ ์๋,
Camera Firmware๋ฅผ ์ฌ์ฉํ ๊ฒ๋๋ค.
2_) Firmware ์์ถ ํ๊ธฐ
์ ๊ฐ ์ค๋นํ Firmware๋ ZIP ํ์ผ ํํ๋ก ์์ถ๋์ด ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ Bin file์ ์ป๊ธฐ ์ํด
์์ถ์ ํ ๋ฒ ํ์ด์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
3_) BIN file ๊ตฌ์กฐ ๋ถ์
ZIP ํ์ผ์ ์์ถ์ ํ์ด๋ณด๋ PDF ํ์ผ๊ณผ BIN ํ์ผ์ด ์๊ฒจ๋ ๊ฑธ ๋ณผ ์ ์์ต๋๋ค!
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ์ Target.. BIN ํ์ผ์ ๊ณต๋ตํด๋ณด์ฃ . ๐
Binwalk๋ก Firmware๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋ ์ด์ด ๋ณด๋ฉด ์์ ๊ฐ์ด ์ต์ํ ํ๋ฉด์ ๋ณผ ์ ์์ต๋๋ค.
์ญ ์ฝ์ด๋ณด๋ ์ ๋ฒ Firmware์์๋ ๋์๋ LZMA ์์ถ ๋ฐ์ดํฐ๋ ๋ค์ด ์๋ค์!
๊ทธ๋ฐ๋ฐ.. ๋ญ๊ฐ ์ด์ํฉ๋๋ค. ์ด๋ป๊ฒ File System์ด ํ๋๋ ๋์ค์ง ์์ ๊ฑฐ์ฃ ..!? ๐ค
โbinwalk๋ฅผ ์คํํ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด์๋ฉด ์ด์ Firmware์ ๊ต์ฅํ ๋ค๋ฅด๊ฒ ์๊ฒผ๋ค๋ ๊ฑธ ๋๋ ๊ฒ๋๋ค.
์๋ง ์ฌ์ฉํ์๋ Firmware๊ฐ ๋ฌด์์ด๋์ ๋ฐ๋ผ ๋ค์ด ์๋ File System๋, ์์ถ ๋ฐ์ดํฐ๋ ๊ฐ์ง๊ฐ์์ผ ํ ๋ฐ์
๊ฒฝ์ฐ์ ๋ฐ๋ผ์ ์ง๊ธ ๋ณด์ฌ๋๋ฆฌ๋ Firmware์ฒ๋ผ File System์ด ๋ฐ๋ก ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ๋ ์๊ณ
binwalk์ ๊ฐ์ ๋๊ตฌ๋ก ์ถ์ถํ์ง ๋ชปํ๋๋ก ๋ง๋ค๊ธฐ ์ํด ์๋์ ์ผ๋ก ์์น ํ์ ์ ๋ฐฉํดํ๋ dummy๋ฅผ
๋ฃ์ด๋๋ ๊ฒฝ์ฐ๋ ์๋ค๊ณ ํฉ๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์!! ์ด๋ฒ POST์์๋ Binwalk -e๋ฅผ ์ฌ์ฉํ์ง ์๊ณ File System์ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์
์์๋ณด๊ณ ์ ํ๋ ๊ฑฐ์ฃ !! ๊ทธ๋ผ ๊ณ์ ์ด์ด๊ฐ ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
4_) dd command๋ก LZMA Data๋ง ๋ฝ์๋ด๊ธฐ
์์์ ํ์ธํ Firmware ๊ตฌ์ฑ ์์ ์ค์์ LZMA data๋ง ๋ฝ์๋ด๊ณ ์ ํ๋๋ฐ์
์ฌ๊ธฐ์ ์๋ก์ด ๋ช ๋ น์ด๊ฐ dd๊ฐ ๋ฑ์ฅํฉ๋๋ค.
์ ๊ฐ ์ฌ์ฉํ dd command๋ ๋ณด์๋ ๋ฐ์ ๊ฐ์ด 4๊ฐ์ ์ต์ ์ ๋๋ฐํฉ๋๋ค.
if์๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ถ ์ถ์ถํ ํ์ผ์ ์ ๋ฌํ๊ณ , skip์ ์ถ์ถํ ๋ฐ์ดํฐ์ ์์ ์์น๋ฅผ ์๋ฏธํ๋ฉฐ
bs๋ block size๋ก ๊ธฐ๋ณธ ํฌ๊ธฐ๊ฐ 1k์ธ๋ฐ ์ฐ๋ฆฌ๋ Firmware ์ค์์ ๊ฐ์ฅ ๋ง์ง๋ง์ ์์นํ LZMA๋ฅผ ์ถ์ถํ
๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ด์ฆ ์กฐ์ ์ ๊ตณ์ด ํ ํ์๋ ์์ต๋๋ค.
๋ง์ง๋ง of๋ ์ถ์ถํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ผ ์ด๋ฆ์ ์ง์ ํ๋ ์ต์ ์ ๋๋ค.
๊ทธ๋ผ ๋ฐ๋ก ๋ช ๋ น์ด๋ฅผ ์คํํด๋ณด์ฃ . LZMA ๋ฐ์ดํฐ์ ์์ ์์น๋ฅผ ํ์ธํ ๋ค์, skip ์ต์ ์ ์ฌ์ฉํฉ๋๋ค.
๊ฒฐ๊ณผ ํ์ผ ์ด๋ฆ์ whatisit.lzma๋ก ์ง์ ํ์ต๋๋ค.
์ ๋๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํด์๋์ง ํ์ธํ๊ธฐ ์ํด file command๋ฅผ ์คํํด๋ณด๋
lzma compressed data๋ผ๊ณ ์ธ์๋๋๊ตฐ์!
5_) lzma compressed data -> data
์์์ ๋ง๋ค์ด์ง whatisit.lzma file์ ๋ง ๊ทธ๋๋ก LZMA ๋ฐฉ์์ผ๋ก ์์ถ๋ ๋ฐ์ดํฐ์ ๋๋ค.
๊ทธ๋ ๋ค๋ ๊ฑด, ์์ ๋ค์ด์๋ ๋ด์ฉ๋ฌผ์ ์ป๊ธฐ ์ํด ์์ถ์ ํ์ด์ค์ผ ํ๋ค๋ ๋ป์ด์ฃ !
์ ๋ unlzma command๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ์ ์๋ฌ๋ง ๋์ ๋ ๋ฒ์งธ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
์์ถ์ด ํ๋ฆฌ๋ฉด ์ง์ ํ ์ด๋ฆ์ ํ์ผ์ด ๋ง๋ค์ด์ ธ ์๋ ๊ฑธ ๋ณผ ์ ์๋๋ฐ์
binwalk๋ก ๊ตฌ์กฐ๋ฅผ ํ์ธํด ๋ณด๋ฉด
์ด๋ฒ Linux kernel version ์ ๋ณด๋ ์ ์ ์๊ณ ์๋ก์ด LZMA ๋ฐ์ดํฐ๋ฅผ ๋ง์ฃผํ๊ฒ ๋ฉ๋๋ค..!
6_) LZMA Data ๋ณต์ฌํ๊ณ ์์ถ ํ๊ธฐ (2 round)
์์์ ํ ๋ฒ ํด๋ดค์ผ๋ ์ด๋ฒ์ ๊ทธ๋ ๊ฒ ๋ฏ์ค์ง ์์ ๊ฒ๋๋ค!
dd command๋ก LZMA ๋ฐ์ดํฐ๋ง ์ ๋ณต์ฌํด์ ์์ถ์ ํ์ด ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ป์ด๋ณด๋๋ก ํ์ฃ !
์ด๋ฒ์ unlzma command๋ก LZMA ์์ถ ํ์ผ์ด ์- ํ๋ ธ์ต๋๋ค!
file command๋ก output์ ํ์ผ ํ์ ์ ํ์ธํด ๋ณด๋ cpio archive๋ผ๊ณ ํ๋ค์!!
์ ๊ฐ ์ง๊ธ ์ฌ์ฉํ๊ณ ์๋ Firmware๋ Dlink์ camera ์ ํ์ Firmware์ ๋๋ค.
Dlink์ ๋ง์ ์ ํ์ด File System์ cpio archive ์์ ๋ฃ์ด๋๋ค๊ณ ํ๋๋ฐ์, ๊ทธ๋ ๋ค๋ฉด.. output file์
์ด์ด๋ณด๊ธฐ๋ง ํ๋ฉด file system์ ์ป์ ์ ์๋ ๊ฑธ๊น์..!?
7_) cpio archive -> file system ์ป๊ธฐ
cpio์์ ๋ด์ฉ๋ฌผ์ ์ถ์ถํ๊ธฐ ์ ์ directory๊ฐ ๋ณต์กํด์ง ์ ์์ผ๋ ์ directory๋ฅผ ํ๋ ๋ง๋ค์ด
์ด๋ํด์ค๋๋ค.
๊ทธ๋ฐ ๋ค์, ์์ ๋ช ๋ น์ด๋ฅผ ์คํํด cpio directory ๋ฐ์ ์๋ output file์ ๊ฐ์ ธ์
ํ์ผ์ ์ถ์ถํ๊ธฐ๋ง ํ๋ฉด ๋..!
์ฐธ๊ณ ๋ก cpio command๋ฅผ ์ฌ์ฉํ ๋๋ i, p, o, t ์ต์ ์ค ํ๋๋ ๋ฐ๋์ ์ฌ์ฉํ์ ์ผ ํฉ๋๋ค.
cpio ์ต์ ์ ๋ํด ๋ ์๊ณ ์ถ์ผ์๋ค๋ฉด ํฐ๋ฏธ๋์ cpio --help๋ฅผ ์ ๋ ฅํ์ฌ ์ง์ ์์๋ณด์๊ธธ!!
๋ช ๋ น์ด๋ฅผ ์คํํ๊ณ ๋๋ฉด --no-absolute-filename ์ต์ ์ ์ํด ํ์ฌ ๊ฒฝ๋ก, ์ฆ cpio directory๋ฅผ ๊ธฐ์ค์ผ๋ก
๋ฝ์๋ธ ํ์ผ๋ค์ด ์์นํ๊ฒ ๋ฉ๋๋ค.
๊ทธ๋ ๋ค๋ ๊ฑด, ls command๋ก cpio directory๋ฅผ ์ด์ด๋ณด๋ ์๊ฐ!
File System์ด ์ซ- ๋์ฌ ๊ฑฐ๋ผ๋ ๋ป์ ๋๋ค. ๊ณผ์ฐ ์ ๋ง๋ก ๊ทธ๋ฐ์ง ๋ฐ-๋ก ํ์ธํด๋ณผ๊น์!?
ls command๋ฅผ ๋๋ฌ ํ์ฌ directory์ ๋ค์ด์๋ ์ฝํ ์ธ ๋ฅผ ์ถ๋ ฅํ๋๋ ์์ ๊ฐ์ด ์ฐ๋ฆฌ์๊ฒ ์ต์ํ
File System์ ์ถ์ถํด๋ธ ๊ฑธ ํ์ธํ ์ ์์์ต๋๋ค!! ํ ๋ง๋๋ก ์ฑ๊ณต์ด๋ผ๋ ๊ฑฐ์ฃ !! ๐คค
์ด๋ ๊ฒ ํด์ ์ป์ด๋ธ File System ์์๋ ๋ญ๊ฐ ์๋์ง ์ฒ์ฒํ ๊ตฌ๊ฒฝํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค!
์ค๋์ ์ด๋ ๊ฒ ํด์ camera Firmware์์ File System๋ฅผ ์ถ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค.
๋๊ฐ์ด File System ์ถ์ถํ๋ ๊ฑด๋ฐ ์์ ์ดํด๋ณธ ๋ด์ฉ๊ณผ๋ ๋ ๋ค๋ฅด์ฃ ?
Binwalk๋ ์๋์ผ๋ก ๊ตฌ์ฑ ์์๋ค์ ์ถ์ถํ๊ณ File System๊น์ง ํด๋๋ก ์์๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ฐ๋ฉด
dd๋ Firmware ์ค ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ถ๋ถ๋ง ์ ๋นผ๋ด๊ธฐ์ ์ ํฉํ ๋ช ๋ น์ด์์ต๋๋ค.
๋ํ Firmware๋ฅผ ํ ๋ฒ ์ด์ด๋ดค๋ค๊ณ ํด์ ๊ทธ ์์์
๋ก!ํ๋ File System์ด ์ฐ๋ฆฌ๋ฅผ ๋ฐ๊ฒจ ์ฃผ๋ ๊ฒฝ์ฐ๋ง ์์ง๋ ์๋ค๋ ์ !!
์ค๋ POST๋ฅผ ํตํด ์ป์ด๊ฐ์ จ์ผ๋ฉด ํฉ๋๋ค. ๊ทธ๋ผ ์ฐ๋ฆฐ ๋ค์ POST์์ ๋ง๋์ฃ !
Last updated