스마트 전구 해킹, 802.11 Monitor mode를 이용해서!

Myeongwon Choi·2021년 6월 3일
1

스마트홈

목록 보기
1/2
post-thumbnail

비극의 시작

이사를 하고 나서 스마트홈 구축에 열을 올리던 나는 뻘짓의 유혹에 또 빠지고 말았다. aliexpress에서 몇 불 정도에 구입한 스마트 전구는 잘 작동하지만, 내가 지금 열을 올려서 주축하고 있는 home assistant 생태계 내에 두고 싶었다.

전구의 문제

스마트 전구는 일반적인 소비자 입장에서 매우 잘 작동한다. 출처 모를 중국산 APK를 설치해, 와이파이 패스워드를 해당 앱에 입력하고, 전구와 연결하는 과정을 거치면, 전구가 앱에 잘 등록되고, 그러면 스마트 전구에서 제공하는 RGB 기능, 온 오프를 LAN 내부에 있건 외부에 있건 사용할 수 있다. 참 좋은 세상이다. 이게 8달러라니;

근데 내 눈에는 이 과정이 참 불편하고 찝찝하고 문제적으로 보이지 아니할 수 없었다. 왜냐고?

  • 일단 앱이 너무 불안했다. 중국산이고, 앱스토어에 정식 등록되어 있지도 않은 앱이니깐
  • 서버를 거치는 것도 맘에 안 들었다. 내 공유기는 잘 작동중이고, 그냥 포트를 열어서 내가 전구를 직접 조작하면 안 되는 건가?
  • 그리고 중국 서버가 죽으면, 내 전구도 사용 못 하게 되는 건가?
  • home assistant 생태계 내에 있어야만 전구를 루틴에 맞추어서 쓸 수 있다

이런 문제점들은 내가 개발자라서 걱정하게 되는 것이지만, 어찌되었건 난 이 문제들을 해결해야 오늘 잠을 제대로 잘 수 있을 것 같았으므로 바로 작업에 착수하기로 한다.

가능한 옵션

커롬

보통 스마트홈 제품으로 나오는 중국산 물건들은 tywe3s따위의 ESP8266기반 와이파이 모듈겸 ap를 사용해서 작동하는데, 이런 칩들은 스펙이라던지 하는 것들이 너무나도 잘 알려져 있어서 커스텀 롬 따위도 매우 흔하게 나와있고, 이걸 사다가 올리기만 하면 사실 끝이다. 원하는 커스터마이제이션은 다 할 수 있다.
근데 슬프게도 이 전구는 정말 생전 듣도 보도 못한 칩이 달려 있었다.

브로드링크 칩인데, 모델명을 검색해 봐도 아무 것도 알아낼 수 없었고, 심지어 검색 결과가 제대로 나오지도 않았다. 이런 칩에 커스텀 롬을 올릴 수 있을 것이라는 기대는 접어 두도록 하고 곱게 다른 방법을 찾아보도록 했다.

스니핑

제아무리 잘난 칩이라도 인터넷으로 통신을 해야 하니깐, 그걸 캐치해서 리플레이를 시키던 하면 될 터. 바로 작업에 착수했다.

작업

먼저 무선 트래픽을 어떻게 잡아낼지부터가 문제다. 컴통 시간에 CSMA/CD는 promiscuous mode라는 걸 쓰면 뭐 media에 있는 모든 패킷을 잡아다 볼 수 있으니깐 이걸 사용해서 스니핑도 가능하고 어쩌고 이런 얘기를 했는데, 전구는 일단 802.11 무선 랜으로 연결이 되어 있으니깐, 조금 다른 workaround를 찾아봐야 할 터.
처음에는 무선 공유기를 어찌어찌 해서 트래픽을 가져와보려고 했는데 이건 조금 헛된 생각이었다. 왜냐면 iptime 공유기에서 트래픽을 다 캡쳐할 방법도 없고 딱히 지원도 없었다.

monitor mode

열심히 찾아보다가 802.11 lan card에는 monitor mode라는 게 있어서, media에 떠돌아다니는 모든 패킷을 일단 잡아다가 볼 수 있다는 사실을 알게 되었다. 얼렁 맥북을 꺼내가지고 wireshark를 켜서 패킷을 잡아보기 시작했다.

근데 이상한 거만 잡히길래 봤더니 이상하게 채널 6만 잡히더라. 그래서 내 공유기의 설정을 채널 6으로 바꿔주고, 보안을 풀고 다시 캡쳐를 해봤더니 패킷이 다 잡히는 걸 확인할 수 있었다.

아...


와;;;
디바이스를 다시 등록하고 밝기를 조절하면서 패킷을 찝어 보니 참 웃기지도 않는 상황이 벌어졌는데, 그게 뭐냐면 이게 암호화되어 있다는 것이다.
내가 이거 키를 알아내서 복호화할 자신은 없었기 때문에 조용히 컴퓨터를 덮었다. 그냥 새 전구를 하나 사야 할 수도 있겠다... 그래도 모니터 모드라는게 있다는 걸 알아낸 하루였기 때문에 나름 만족스러웠다.!

profile
잡식 개발자

0개의 댓글