[CTF] HackTM - USB ํจํท ๋ถ์
HackTM์ ๋ฌธ์ ๋ฅผ ์ ํ๊ฒ ๋์ด ๋คํธ์ํฌ ๋ฌธ์ ๋ฅผ ํ์ด๋ดค๋ค
pcapng ํ์ผ์ ๋ฐ์์ ์ด์ด๋ณด๋ ํ๋กํ ์ฝ์ด USB์ธ ํ์ผ์ด๋ค
USB ํจํท ํ์ผ ๋ถ์์ ์ฒ์ ํด๋ณด๋ ๊ฑฐ๋ผ ์ด์ง ๋นํฉ์ค๋ฌ์ ์ง๋ง ์ฐ์ ์๋ ๊ฑธ ๋ค ๋์ดํด๋ณธ๋ค
USB(Universial Serial Bus) ๋ ๊ฐ๊ฐ ๋๋ฐ์ด์ค๋ค๋ผ๋ฆฌ ์ง์ ์ํต์ ํ ์ ์๋ค ๊ทธ๋์ ํด๋ผ์ด์ธํธ ๋๋ผ์ด๋ฒ๋ ํต์ ์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด URB(USB request block)์ ์ฌ์ฉํ๋ค URB ๋ ์์ฒญ๊ณผ ํด๋น ๋ด์ฉ์ ๊ดํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด ํ์์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค USB ํจํท ํ๋๋ Sync Field, Packet Identifier Field, Address Field, Endpoint Field, Data Field๋ก ๊ตฌ์ฑ๋๋ค |
=> ๋ด์ฉ์ ์ฃผ๊ณ ๋ฐ์์ ์์ด URB๋ฅผ ์ฌ์ฉํ์ ๊ฒ์ด๊ณ ๋ฐ์ดํฐ ํ๋์ ์ ์๋ฏธํ ๊ฐ์ด ์์ ๊ฒ์ด๋ค (๊ฐ์ค)
USB์ ๋ํด ๋ ๊น๊ฒ ๊ณต๋ถํด๋ณด๋ฉด ์ข๊ฒ ์ง๋ง
์ฐ์ ์๊ฐ์ด ์์ผ๋ ์ด ์ ๋๋ก ์ถ์ธก์ ๋๋ด๊ณ ๊ฐ์ค์ ํ์ธํด๋ณธ๋ค
๋ค์ wireshark ๋ก ๋์๊ฐ์ usb.capdata์ ํ์ธํ๊ธฐ ์ํ ์นผ๋ผ์ ์ถ๊ฐํด์ค๋ค
์นผ๋ผ ์ด๋ฆ์ Leftover Capture Data ๋ก ์ง์ด์ฃผ๊ณ ํ์ ์ custom์ผ๋ก ํด๋ ํ ๋น๊ณ ๋์ usb.capdata๋ฅผ ์ ๋ ฅํ๋ค
๋๋!
GET STATUS Response ๊ฐ ์งํ๋ ํ์ URB_INTERRUPT in ํญ๋ชฉ ๋ฐ์ดํฐ๋ฅผ ์ดํด๋ณด๋ฉด
hexํ์ผ๋ก ์ถ์ธก๋๋ ๋ฐ์ดํฐ๋ค์ด ๋ณด์ธ๋ค
๊ทธ๋ ๋ค๋ฉด tshark ๋ฅผ ํตํด ์ฐ์ ์์ํ ๊ฐ์ ๋ชจ๋ ์ถ์ถํ๋ค
์๋จ์ ์์นํ ๊ฐ ์ผ๋ถ๋ ์ง์์ฃผ๊ณ (wireshark์์ ํ์ธํ ํ๋กํ ์ฝ ๋ฐฐ์น๋ฅผ ๋ดค์๋ ์๋ฏธ ์์ ๊ฒ์ผ๋ก ์๊ฐ๋จ)
00:00:00:00:00:00:00:00 ๋ ์ ๋ถ ์ง์์ค๋ค
ํ๋ณ๋ก ์ดํด๋ณด๋ 1, 3๋ฒ์งธ ํ๋์๋ง ์ ์๋ฏธํ ๊ฐ์ด ์๋ค
๋๋จธ์ง 00 ๊ฐ๋ค์ ์์ด๋ดค์ ์์ผ๋ง ์ฐ๋งํ๋ฏ๋ก ๋๋ค์ ์ง์์ค๋ค
๊น๋ํ๊ฒ ์ถ์ถ๋ ๊ฐ์ ์ดํด๋ณด๋ฉด field 1์ 00, 02, 20 ์ผ๋ก ๊ตฌ์ฑ๋๊ณ field 2๋ ์๊น์๊ฐ hex ์ฒ๋ผ ๋ณด์ธ๋ค
๊ทธ๋ ๋ค๋ฉด ๊ฐ ํ๋๊ฐ ์๋ฏธํ๋ ๊ฒ์ด ๋ฌด์์ผ์ง ์ฐพ์์ผ ํ๋๋ฐ hex ๋ก ํํ๋ ๋ฐ์ดํฐ๊ฐ ์ด๋ค๊ฒ ์์๊น
์์ ์ดํด๋ดค๋ฏ ์บก์ณ๋ ๋ฐ์ดํฐ๋ค์ ์ธํฐ๋ฝํธ์ ์ํด ๋ค์ด์จ ๊ฒ์ด์๋ค
์ฆ, IO ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ์ด ์งํ๋์์์ ์ ์ถํด ๋ณผ ์ ์๋ค
์ด์์ฒด์ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ 4๊ฐ์ง ์ค ํ๋์ธ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅ์ ๋๋ถ๋ถ ํค๋ณด๋ ํ์ค ์ ๋ ฅ ์ ์ด๋ฃจ์ด์ง๋ค
๋ฐ๋ผ์ ํค๋ณด๋ ๊ฐ์ด ๋ฒ์ค๋ฅผ ํต๊ณผํ ๋ ์ด๋ค ํํ๋ก ์ ์ก๋๋์ง ์ฐพ์๋ณด์๋ค
ํ์ค ๋ฌธ์๋ฅผ ๋ณด๊ณ HID ๊ฐ๊ณผ Key ๊ฐ์ ๋งคํํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ค
(์ฐธ๊ณ ๋ฌธ์: Universal Serial Bus HID Usage Tables)
์์ฒญ ๋ง์๋ฐ ์ซ์์ ์ํ๋ฒณ ์ ๋๋ง ํด์ค๋ ๋ ๋ฏ ํ๋ค
๋๋ฒ์งธ ํ๋๋ฅผ ๋ฃ๊ณ ๋๋ฆฌ๋ฉด 7VGJ4SSL9NHVUK0D6D3F๋ก ๋ณํ๋๋ค
์ฒซ๋ฒ์งธ ํ๋(00, 02, 20)๊ฐ ๊ฐ๋ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ๋ค
02๋ ์ผ์ชฝ shift๊ฐ ๋๋ ธ์ ๋, 20๋ ์ผ์ชฝ alt๊ฐ ๋๋ ธ์ ๋์ด๋ค
(๊ทธ๋ฌ๋ ๋ฌธ์ ์์๋ 20์ด ์ค๋ฅธ์ชฝ shift ๋ฅผ ๋๋ฅธ ๊ฒ์ฒ๋ผ ๋์ํ๊ณ ์์๋ค
๊ณผ๊ฑฐ ๋ค๋ฅธ CTF์ ๋น์ทํ ์ ํ์ ๋ฌธ์ ๊ฐ ์ถ์ ๋ ์ ์ด ์๋๋ฐ ํด๋น ๋ฌธ์ ์ write up์์ 20์ด ์ค๋ฅธ์ชฝ shift๋ผ๊ณ ๋งํ๋ค
๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ํ์ธํ ์ ์๋ ๊ณต์์ ์ธ reference๋ฅผ ์์ง ๋ชป ์ฐพ์๋ค ํฅํ ๋ ๊ฒ์ ํ์)
์ด๋ฅผ ๋ฐ์ํ๋ฉด ์ต์ข ์ ์ผ๋ก ๋ฌธ์์ด์ 7vgj4SSL9NHVuK0D6d3F์ด ๋๋ค
๋ค์ wireshark ๋ก ๋์๊ฐ ์จ๊ฒจ์ง ํ์ผ์ ์ฐพ๋ค๋ณด๋ pk ์๊ทธ๋์ฒ๊ฐ ๋ฐ๊ฒฌ๋๋ค
ํด๋น ๋ถ๋ถ์ ๋ณต์ฌํ์ฌ zip ํ์ผ๋ก ์นด๋นํด์ค๋ค
์๋๋ ๋ค๋ฅผ๊น ์์ง์๋ ๋น๋ฐ๋ฒํธ๊ฐ ๊ฑธ๋ ค ์๋ค
์์์ ๋ฐ๊ฒฌํ ๋ฌธ์์ด์ ์ ๋ ฅํด์ค๋ค
์์ถ์ ํ์ด์ ์ด์ด๋ณธ ํ ์คํธ ํ์ผ์ flag๊ฐ ์จ์ ธ์๋ค!
๋