
배경
공유기 취약점 분석 프로젝트를 진행하면서 하드웨어 해킹을 처음 경험하게 되었습니다. 소프트웨어적인 취약점 분석과 달리, 직접 장치를 분해하고 접근하는 과정에서 예상치 못한 문제가 많이 발생했습니다. 그 과정에서 공유기를 망가뜨린 적도 있었는데, 같은 시행착오를 겪지 않도록 이 경험을 공유하고자 합니다.
파괴일지
1. USB to TTL

첫 번째 공유기를 파괴시킨 범인 1. USB to TTL 컨버터는 하드웨어 해킹에서 일반적으로 사용되는 도구로, UART 포트를 호스트와 연결해 시리얼 통신을 가능하게 합니다. 직접적으로 공유기를 파괴한 원인은 아니지만, 일부 관여하였습니다.
보통 저가형 컨버터가 많이 사용되기 때문에, 프로젝트에서도 저가형 제품을 활용했습니다. 시리얼 통신을 원활하게 하기 위해서는 baud rate를 맞춰야 하며, UART 포트의 핀을 정확히 식별하지 못한 경우 가능한 조합을 하나씩 시도해야 합니다. 컨버터가 정상적으로 동작한다고 가정하면, 각 조합을 실험할 때마다 공유기를 재부팅해야 하며, 만약 컨버터가 불량이라면 과도한 재부팅으로 인해 공유기에 부담을 줄 수 있습니다.
그 과정에서 허브의 문제로 착각하여 USB 3.0과 컨버터를 연결하는 과정에서 과전압이 발생해 공유기에 치명적인 문제를 발생시킨 것으로 추정됩니다. 그렇기 때문에 공유기가 매우 저렴한 제품이 아니라면, 신뢰할 수 있는 컨버터를 구매하는 것을 추천합니다. 그리고, 시리얼 통신이 수신이 잘 되지 않을 경우, 컨버터의 문제가 아닌 지 고민해 보는 과정을 꼭 거쳐야 합니다.
2. GND & VCC

첫 번째 공유기를 파괴시킨 범인 2. UART 핀은 기본적으로 VCC, TX, RX, GND로 구성됩니다. 하드웨어 해킹을 위한 시리얼 통신을 수행할 때는 올바르게 연결해야 하며, 멀티미터나 LED 등을 이용해 핀을 검증할 수 있습니다.
하지만 이러한 방법이 불가능한 경우, 경우의 수를 하나씩 테스트해야 합니다. 이 과정에서 VCC와 GND 핀이 잘못 연결되면 쇼트가 발생할 수 있으므로 주의해야 하지만, 일반적으로 VCC나 GND 핀에는 마킹이 되어 있어 큰 문제는 발생하지 않습니다.
그러나 앞서 언급한 USB to TTL 컨버터의 문제로 인해 가능한 모든 조합을 시도하던 중, 공유기와 컨버터 사이에서 VCC와 GND가 연결되는 실수가 발생했고, 결국 공유기 내부의 소자가 손상되었습니다. 이로 인해 공유기의 와이파이 관련 기능이 정상적으로 동작하지 않게 되었습니다. 만약 단순히 "빛나는 벽돌"을 만들고 싶은 것이 아니라면, 가능한 모든 방법을 동원해 핀을 정확히 검증한 후 시리얼 통신을 시도하는 것이 바람직합니다.
3. 펌웨어 플래싱

두 번째 공유기를 파괴시킨 범인. 공유기 취약점 중 하나로 Firmware Repackaging이 있으며, 이는 사용자가 조작한 펌웨어를 공유기에 업로드할 수 있는 경우 발생합니다. 이를 통해 Root Shell을 획득하는 등 다양한 취약점을 트리거할 수 있기 때문에 반드시 검증해야 하는 취약점입니다.
대부분의 공유기는 이러한 과정을 방지하기 위해 CRC, 해시 등을 이용해 펌웨어 업로드 시 무결성 검사를 수행합니다. 따라서 파일 시스템을 디스어셈블하여 무결성 검사 로직이 존재하는지 확인하고, 해당 검증을 우회하거나 수정해야 합니다. 만약 무결성 검사 로직을 확인하지 않고 리패키징한 펌웨어를 업로드하면, 리셋이 동작하지 않는 벽돌 상태가 될 수 있습니다.
이러한 위험성을 인지하고 있었으며, 무결성 검사가 어떻게 이루어지는지 대략적으로 파악한 상태에서 최대한 주의하여 업로드를 진행했습니다. 그러나 예상치 못한 문제가 발생했는데, 어댑터와 110-220V 컨버터 간 연결 문제로 인해 플래싱 도중 공유기의 전원이 꺼졌습니다. 이로 인해 업로드가 중단되었고, 결국 공유기가 벽돌이 되었습니다.
비록 플래싱 자체의 문제는 아니었지만, 해외 공유기를 대상으로 이 과정을 수행할 경우 동일한 문제가 발생할 가능성이 높습니다. 따라서 펌웨어 무결성 검사 로직을 철저히 분석하는 것뿐만 아니라, 전원 공급 환경도 안정적으로 구성해야 합니다.
마무리
일지는 문제가 마치 외부적인 요인인 것처럼 작성하였지만, 결국 이를 수행한 것은 저 자신이었기에 진짜 범인은 바로 저입니다. 하드웨어 기기의 가격이 적지 않은 만큼, 실수로 인해 팀원의 원성을 사거나 프로젝트 진행에 차질이 생기지 않도록 더욱 신중하게 작업해야 합니다. 같은 실수를 반복하지 않도록 다양한 요소를 고려하여, 저와 같이 공유기를 파괴하는 일이 없기를 바랍니다.
'석정원' 카테고리의 다른 글
| Debugging with MIPSel + Musl Env (0) | 2025.01.29 |
|---|---|
| squashFS 구조 (0) | 2024.12.09 |
| 펌웨어 취약점 분석 with EMBA (0) | 2024.11.11 |

stellarflare 님의 블로그 입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!