UART

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

๊ธฐ๋ณธ ์ •๋ณด

UART๋Š” ์ง๋ ฌ ํ”„๋กœํ† ์ฝœ๋กœ, ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ํ•œ ๋น„ํŠธ์”ฉ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, ๋ณ‘๋ ฌ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์€ ์—ฌ๋Ÿฌ ์ฑ„๋„์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋™์‹œ์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ์ง๋ ฌ ํ”„๋กœํ† ์ฝœ์—๋Š” RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express ๋ฐ USB๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ UART๊ฐ€ ์œ ํœด ์ƒํƒœ์ผ ๋•Œ ๋ผ์ธ์€ ๋†’์€ ์ƒํƒœ(๋…ผ๋ฆฌ 1 ๊ฐ’)๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ์‹œ์ž‘์„ ์‹ ํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์†ก์‹ ๊ธฐ๋Š” ์ˆ˜์‹ ๊ธฐ์— ์‹œ์ž‘ ๋น„ํŠธ๋ฅผ ์ „์†กํ•˜๋ฉฐ, ์ด ๋™์•ˆ ์‹ ํ˜ธ๋Š” ๋‚ฎ์€ ์ƒํƒœ(๋…ผ๋ฆฌ 0 ๊ฐ’)๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์†ก์‹ ๊ธฐ๋Š” ์‹ค์ œ ๋ฉ”์‹œ์ง€๋ฅผ ํฌํ•จํ•˜๋Š” 5~8๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋น„ํŠธ๋ฅผ ์ „์†กํ•˜๊ณ , ๊ทธ ๋’ค์— ์„ ํƒ์  ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ์™€ ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ์ •์ง€ ๋น„ํŠธ(๋…ผ๋ฆฌ 1 ๊ฐ’)๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํŒจ๋ฆฌํ‹ฐ ๋น„ํŠธ๋Š” ์‹ค์ œ๋กœ๋Š” ๊ฑฐ์˜ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •์ง€ ๋น„ํŠธ(๋˜๋Š” ๋น„ํŠธ)๋Š” ์ „์†ก์˜ ๋์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ตฌ์„ฑ์€ 8N1์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค: 8๊ฐœ์˜ ๋ฐ์ดํ„ฐ ๋น„ํŠธ, ํŒจ๋ฆฌํ‹ฐ ์—†์Œ, 1๊ฐœ์˜ ์ •์ง€ ๋น„ํŠธ. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž C ๋˜๋Š” ASCII์—์„œ 0x43์„ 8N1 UART ๊ตฌ์„ฑ์œผ๋กœ ์ „์†กํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋‹ค์Œ ๋น„ํŠธ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค: 0(์‹œ์ž‘ ๋น„ํŠธ); 0, 1, 0, 0, 0, 0, 1, 1(์ด์ง„์ˆ˜๋กœ 0x43์˜ ๊ฐ’), ๊ทธ๋ฆฌ๊ณ  0(์ •์ง€ ๋น„ํŠธ).

UART์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๋„๊ตฌ:

  • USB-์ง๋ ฌ ์–ด๋Œ‘ํ„ฐ
  • CP2102 ๋˜๋Š” PL2303 ์นฉ์ด ์žˆ๋Š” ์–ด๋Œ‘ํ„ฐ
  • Bus Pirate, Adafruit FT232H, Shikra ๋˜๋Š” Attify Badge์™€ ๊ฐ™์€ ๋‹ค๋ชฉ์  ๋„๊ตฌ

UART ํฌํŠธ ์‹๋ณ„

UART์—๋Š” 4๊ฐœ์˜ ํฌํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค: TX(์ „์†ก), RX(์ˆ˜์‹ ), Vcc(์ „์••), ๋ฐ GND(์ ‘์ง€). PCB์— TX ๋ฐ RX ๋ฌธ์ž๊ฐ€ ์ž‘์„ฑ๋œ 4๊ฐœ์˜ ํฌํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ‘œ์‹œ๊ฐ€ ์—†๋‹ค๋ฉด, ๋ฉ€ํ‹ฐ๋ฏธํ„ฐ ๋˜๋Š” ๋กœ์ง ๋ถ„์„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์ฐพ์•„์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ€ํ‹ฐ๋ฏธํ„ฐ์™€ ์žฅ์น˜ ์ „์›์ด ๊บผ์ง„ ์ƒํƒœ์—์„œ:

  • GND ํ•€์„ ์‹๋ณ„ํ•˜๋ ค๋ฉด ์—ฐ์†์„ฑ ํ…Œ์ŠคํŠธ ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ฒ€์€์ƒ‰ ๋ฆฌ๋“œ๋ฅผ ์ ‘์ง€์— ๋†“๊ณ  ๋นจ๊ฐ„์ƒ‰ ๋ฆฌ๋“œ๋กœ ํ…Œ์ŠคํŠธํ•˜์—ฌ ๋ฉ€ํ‹ฐ๋ฏธํ„ฐ์—์„œ ์†Œ๋ฆฌ๊ฐ€ ๋‚  ๋•Œ๊นŒ์ง€ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. PCB์—์„œ ์—ฌ๋Ÿฌ GND ํ•€์„ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ UART์— ํ•ด๋‹นํ•˜๋Š” ํ•€์„ ์ฐพ์•˜๋Š”์ง€ ์—ฌ๋ถ€๋Š” ํ™•์‹คํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • VCC ํฌํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด DC ์ „์•• ๋ชจ๋“œ๋กœ ์„ค์ •ํ•˜๊ณ  20V๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์€์ƒ‰ ํ”„๋กœ๋ธŒ๋ฅผ ์ ‘์ง€์— ๋†“๊ณ  ๋นจ๊ฐ„์ƒ‰ ํ”„๋กœ๋ธŒ๋ฅผ ํ•€์— ๋†“์Šต๋‹ˆ๋‹ค. ์žฅ์น˜๋ฅผ ์ผญ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ๋ฏธํ„ฐ๊ฐ€ 3.3V ๋˜๋Š” 5V์˜ ์ผ์ •ํ•œ ์ „์••์„ ์ธก์ •ํ•˜๋ฉด Vcc ํ•€์„ ์ฐพ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ „์••์ด ๋‚˜์˜ค๋ฉด ๋‹ค๋ฅธ ํฌํŠธ๋กœ ๋‹ค์‹œ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.
  • TX ํฌํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋ ค๋ฉด, DC ์ „์•• ๋ชจ๋“œ๋ฅผ 20V๋กœ ์„ค์ •ํ•˜๊ณ  ๊ฒ€์€์ƒ‰ ํ”„๋กœ๋ธŒ๋ฅผ ์ ‘์ง€์— ๋†“๊ณ  ๋นจ๊ฐ„์ƒ‰ ํ”„๋กœ๋ธŒ๋ฅผ ํ•€์— ๋†“๊ณ  ์žฅ์น˜๋ฅผ ์ผญ๋‹ˆ๋‹ค. ์ „์••์ด ๋ช‡ ์ดˆ ๋™์•ˆ ๋ณ€๋™ํ•˜๋‹ค๊ฐ€ Vcc ๊ฐ’์œผ๋กœ ์•ˆ์ •ํ™”๋˜๋ฉด TX ํฌํŠธ๋ฅผ ์ฐพ์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ „์›์ด ์ผœ์งˆ ๋•Œ ์ผ๋ถ€ ๋””๋ฒ„๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • RX ํฌํŠธ๋Š” ๋‚˜๋จธ์ง€ 3๊ฐœ ํฌํŠธ์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ํฌํŠธ๋กœ, ์ „์•• ๋ณ€๋™์ด ๊ฐ€์žฅ ์ ๊ณ  ๋ชจ๋“  UART ํ•€ ์ค‘์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์ „์ฒด ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

TX์™€ RX ํฌํŠธ๋ฅผ ํ˜ผ๋™ํ•ด๋„ ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์ง€๋งŒ, GND์™€ VCC ํฌํŠธ๋ฅผ ํ˜ผ๋™ํ•˜๋ฉด ํšŒ๋กœ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

UART ์ „์†ก ์†๋„ ์‹๋ณ„

์˜ฌ๋ฐ”๋ฅธ ์ „์†ก ์†๋„๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ TX ํ•€์˜ ์ถœ๋ ฅ์„ ๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ˆ˜์‹ ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์—†๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝ์„ ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ๋‹ค์Œ ๊ฐ€๋Šฅํ•œ ์ „์†ก ์†๋„๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. USB-์ง๋ ฌ ์–ด๋Œ‘ํ„ฐ๋‚˜ Bus Pirate์™€ ๊ฐ™์€ ๋‹ค๋ชฉ์  ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, baudrate.py์™€ ๊ฐ™์€ ๋„์šฐ๋ฏธ ์Šคํฌ๋ฆฝํŠธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ „์†ก ์†๋„๋Š” 9600, 38400, 19200, 57600 ๋ฐ 115200์ž…๋‹ˆ๋‹ค.

Caution

์ด ํ”„๋กœํ† ์ฝœ์—์„œ๋Š” ํ•œ ์žฅ์น˜์˜ TX๋ฅผ ๋‹ค๋ฅธ ์žฅ์น˜์˜ RX์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค!

CP210X UART to TTY ์–ด๋Œ‘ํ„ฐ

CP210X ์นฉ์€ Serial Communication์„ ์œ„ํ•ด NodeMCU(esp8266 ํฌํ•จ)์™€ ๊ฐ™์€ ๋งŽ์€ ํ”„๋กœํ† ํƒ€์ž… ๋ณด๋“œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์–ด๋Œ‘ํ„ฐ๋Š” ์ƒ๋Œ€์ ์œผ๋กœ ์ €๋ ดํ•˜๋ฉฐ ๋Œ€์ƒ์˜ UART ์ธํ„ฐํŽ˜์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์žฅ์น˜๋Š” 5๊ฐœ์˜ ํ•€์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: 5V, GND, RXD, TXD, 3.3V. ์†์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ƒ์ด ์ง€์›ํ•˜๋Š” ์ „์••์œผ๋กœ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์–ด๋Œ‘ํ„ฐ์˜ RXD ํ•€์„ ๋Œ€์ƒ์˜ TXD์—, ์–ด๋Œ‘ํ„ฐ์˜ TXD ํ•€์„ ๋Œ€์ƒ์˜ RXD์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์–ด๋Œ‘ํ„ฐ๊ฐ€ ๊ฐ์ง€๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์— CP210X ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๊ฐ์ง€๋˜๊ณ  ์—ฐ๊ฒฐ๋˜๋ฉด picocom, minicom ๋˜๋Š” screen๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Linux/MacOS ์‹œ์Šคํ…œ์— ์—ฐ๊ฒฐ๋œ ์žฅ์น˜๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด:

ls /dev/

UART ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”:

picocom /dev/<adapter> --baud <baudrate>

minicom์˜ ๊ฒฝ์šฐ, ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค:

minicom -s

Serial port setup ์˜ต์…˜์—์„œ baudrate ๋ฐ ์žฅ์น˜ ์ด๋ฆ„๊ณผ ๊ฐ™์€ ์„ค์ •์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋˜๋ฉด minicom ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ UART ์ฝ˜์†”์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

UART Via Arduino UNO R3 (Removable Atmel 328p Chip Boards)

UART Serial to USB ์–ด๋Œ‘ํ„ฐ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, Arduino UNO R3๋ฅผ ๋น ๋ฅธ ํ•ดํ‚น์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Arduino UNO R3๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋””์„œ๋‚˜ ๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Arduino UNO R3์—๋Š” ๋ณด๋“œ ์ž์ฒด์— USB to Serial ์–ด๋Œ‘ํ„ฐ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. UART ์—ฐ๊ฒฐ์„ ์–ป์œผ๋ ค๋ฉด Atmel 328p ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ ์นฉ์„ ๋ณด๋“œ์—์„œ ๋ถ„๋ฆฌํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•ดํ‚น์€ Atmel 328p๊ฐ€ ๋ณด๋“œ์— ๋‚ฉ๋•œ๋˜์ง€ ์•Š์€ Arduino UNO R3 ๋ณ€ํ˜•์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(์—ฌ๊ธฐ์„œ๋Š” SMD ๋ฒ„์ „์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค). Arduino์˜ RX ํ•€(๋””์ง€ํ„ธ ํ•€ 0)์„ UART ์ธํ„ฐํŽ˜์ด์Šค์˜ TX ํ•€์— ์—ฐ๊ฒฐํ•˜๊ณ  Arduino์˜ TX ํ•€(๋””์ง€ํ„ธ ํ•€ 1)์„ UART ์ธํ„ฐํŽ˜์ด์Šค์˜ RX ํ•€์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, Serial Console์„ ์–ป๊ธฐ ์œ„ํ•ด Arduino IDE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฉ”๋‰ด์˜ tools ์„น์…˜์—์„œ Serial Console ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  UART ์ธํ„ฐํŽ˜์ด์Šค์— ๋”ฐ๋ผ baud rate๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Bus Pirate

์ด ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” Arduino์˜ UART ํ†ต์‹ ์„ ์Šค๋‹ˆํ•‘ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์ถœ๋ ฅ์„ Serial Monitor๋กœ ์ „์†กํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.

# Check the modes
UART>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
10. PIC
11. DIO
x. exit(without change)

# Select UART
(1)>3
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value

# Select the speed the communication is occurring on (you BF all this until you find readable things)
# Or you could later use the macro (4) to try to find the speed
(1)>5
Data bits and parity:
1. 8, NONE *default
2. 8, EVEN
3. 8, ODD
4. 9, NONE

# From now on pulse enter for default
(1)>
Stop bits:
1. 1 *default
2. 2
(1)>
Receive polarity:
1. Idle 1 *default
2. Idle 0
(1)>
Select output type:
1. Open drain (H=Hi-Z, L=GND)
2. Normal (H=3.3V, L=GND)

(1)>
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'
Ready

# Start
UART>W
POWER SUPPLIES ON
Clutch engaged!!!

# Use macro (2) to read the data of the bus (live monitor)
UART>(2)
Raw UART input
Any key to exit
Escritura inicial completada:
AAA Hi Dreg! AAA
waiting a few secs to repeat....

UART ์ฝ˜์†”์„ ํ†ตํ•œ ํŽŒ์›จ์–ด ๋คํ”„

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

์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ, SPI ์„น์…˜์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์žฅ์น˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ EEPROM์—์„œ ์ง์ ‘ ํŽŒ์›จ์–ด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌผ๋ฆฌ์  ์žฅ์น˜์™€ ์™ธ๋ถ€ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•œ ํŽŒ์›จ์–ด ๋คํ”„๋Š” ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋จผ์ € UART๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŽŒ์›จ์–ด๋ฅผ ๋คํ”„ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

UART ์ฝ˜์†”์—์„œ ํŽŒ์›จ์–ด๋ฅผ ๋คํ”„ํ•˜๋ ค๋ฉด ๋จผ์ € ๋ถ€ํŠธ๋กœ๋”์— ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์ธ๊ธฐ ์žˆ๋Š” ๊ณต๊ธ‰์—…์ฒด๋Š” Linux๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด uboot(์œ ๋‹ˆ๋ฒ„์„ค ๋ถ€ํŠธ๋กœ๋”)๋ฅผ ๋ถ€ํŠธ๋กœ๋”๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ uboot์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ถ€ํŠธ๋กœ๋”์— ์ ‘๊ทผํ•˜๋ ค๋ฉด UART ํฌํŠธ๋ฅผ ์ปดํ“จํ„ฐ์— ์—ฐ๊ฒฐํ•˜๊ณ  ๋ชจ๋“  Serial Console ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์žฅ์น˜์˜ ์ „์› ๊ณต๊ธ‰ ์žฅ์น˜๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด Enter ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ ์žฅ์น˜์— ์ „์› ๊ณต๊ธ‰ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  ๋ถ€ํŒ…์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด uboot์˜ ๋กœ๋”ฉ์ด ์ค‘๋‹จ๋˜๊ณ  ๋ฉ”๋‰ด๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. uboot ๋ช…๋ น์–ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋„์›€๋ง ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชฉ๋ก์„ ๋‚˜์—ดํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” help ๋ช…๋ น์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ฐ ๊ตฌ์„ฑ์„ ๊ฐœ๋ณ„์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ํŽŒ์›จ์–ด๋ฅผ ๋คํ”„ํ•˜๋Š” ๋ช…๋ น์€:

md

โ€œ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„โ€œ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฉ”๋ชจ๋ฆฌ(EEPROM ๋‚ด์šฉ)๋ฅผ ํ™”๋ฉด์— ๋คํ”„ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋คํ”„๋ฅผ ์บก์ฒ˜ํ•˜๊ธฐ ์œ„ํ•ด ์ ˆ์ฐจ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Serial Console ์ถœ๋ ฅ์„ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ๋กœ๊ทธ ํŒŒ์ผ์—์„œ ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ณ  ํŒŒ์ผ์„ filename.rom์œผ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ binwalk๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด์šฉ์„ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค:

binwalk -e <filename.rom>

์ด๊ฒƒ์€ ํ—ฅ์Šค ํŒŒ์ผ์—์„œ ๋ฐœ๊ฒฌ๋œ ์„œ๋ช…์— ๋”ฐ๋ผ EEPROM์˜ ๊ฐ€๋Šฅํ•œ ๋‚ด์šฉ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ uboot๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋”๋ผ๋„ ํ•ญ์ƒ ์ž ๊ธˆ ํ•ด์ œ๊ฐ€ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ผ๋Š” ์ ์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Enter ํ‚ค๊ฐ€ ์•„๋ฌด๋Ÿฐ ๋ฐ˜์‘์„ ๋ณด์ด์ง€ ์•Š์œผ๋ฉด Space ํ‚ค์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ‚ค๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋ถ€ํŠธ๋กœ๋”๊ฐ€ ์ž ๊ฒจ ์žˆ๊ณ  ์ค‘๋‹จ๋˜์ง€ ์•Š์œผ๋ฉด ์ด ๋ฐฉ๋ฒ•์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. uboot๊ฐ€ ์žฅ์น˜์˜ ๋ถ€ํŠธ๋กœ๋”์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์žฅ์น˜ ๋ถ€ํŒ… ์ค‘ UART ์ฝ˜์†”์˜ ์ถœ๋ ฅ์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋ถ€ํŒ… ์ค‘์— uboot๊ฐ€ ์–ธ๊ธ‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ