Dork's port

Wireshark를 통한 Ubertooth bluetooth packet sniffing 본문

Linux

Wireshark를 통한 Ubertooth bluetooth packet sniffing

Dork94 2017. 10. 25. 00:24

저번 포스팅에서는 Linux에서 Ubertooth의 드라이버 설치를 하고, Ubertooth에 관련된 툴 들을 설치 해 보았습니다.


오늘은 Ubertooth와 Wireshark를 이용하여  BLE Packet을 capture하는 방법에 대해 알아 보도록 하겠습니다.


진행 전에 Ubertooth의 드라이버가 설치 되어야 하므로 설치가 되어있지 않은 분들 께서는 이전 포스팅을 참조 바랍니다.



아래의 사진과 같이 명령어를 입력하여 해당 파일을 만들어 줍니다.


# mkfifo /tmp/pipe




그리고 난 후, Wireshark를 실행시킵니다.



Capture에 Options에 들어갑니다.




오른쪽 하단의 Manage Interfaces를 클릭합니다. 그리고 난 후 Pipes 탭을 클릭 한 후 + 버튼을 클릭 합니다.





그러면 아래와 같이 입력 할 수 있게 텍스트 박스가 활성화 되는데 /tmp/pipe를 입력 후 Enter를 입력합니다.



그러면 아래 화면과 같이 /tmp/pipe 인터페이스가 추가 된 걸 볼 수 있습니다. 그리고 난 후 Start 버튼을 눌러 줍니다.



※ 가끔 에러로 인해 No interface select 에러와 함께 아래의 화면 처럼 나오는 경우가 있습니다. 그럴때에는 다른 인터페이스를 한번 클릭 후 다시 /tmp/pipe 인터페이스를 클릭하면 Cauture를 할 수 있도록 아이콘이 활성화 됩니다.




그러면 아래와 같이 Capture를 하고 있는 Wireshark를 볼 수 있습니다. 그러나 실제로 packet capture가 되지 않습니다.




아래의 명령을 통해 실제 ubertooth로 packet capture를 실시합니다.


# ubertooth-btle -f -c /tmp/pipe


그럼 마찬가지로  아래와 같이 wireshark에서도 BLE 패킷이 수신 되는 것을 볼 수 있습니다.



만약 아래와 같이 패킷이 수신 된다면 아래의 사항도 진행해 주시길 바랍니다.



먼저, Wireshark에서 Edit - Preference에 들어 간 후, Protocols를 클릭합니다.



그리고 난 후, DLT_USER항목을 찾습니다(키보드로 빠르게 이름을 입력하면 자동으로 Searching이 가능합니다).




그리고 + 버튼을 누르고 Payload protocol 박스에 btle를 입력합니다.




확인 후 다시 Capture를 진행 하시면 정상적으로 위와 같이 Packet이 보이는 것을 확인 할 수 있습니다.


질문은 댓글로 받도록 하겠습니다.

4 Comments
  • 프로필사진 Shayete 2018.07.08 16:21 안녕하세요. 질문드릴 것이 있는데요, 혹시 Ubertooth를 통한 블루투스 패킷 캡쳐는 주변기기 전체를 대상으로 패킷을 캡쳐하는 건가요?

    제가 우버투스를 이용해서 특정 임베디드 기기에 대한 블루투스 패킷을 캡쳐하려는데, 캡쳐를 못하고 있네요..
  • 프로필사진 Dork94 2018.07.08 16:25 신고 안녕하세요. 제가 아는 한 주변 기기를 대상으로 하는 것이 맞으며 특정 임베디드 기기에 대한 블루투스 패킷을 캡쳐하시려면 주변에 통신 기기가 없는 환경에서 시도하시거나 Address를 이용해 특정 패킷만 뽑아내는 방식이 있을 것 같습니다.
  • 프로필사진 2019.04.07 19:14 비밀댓글입니다
  • 프로필사진 Dork94 2019.04.07 19:18 신고 결론부터 말씀드리자면, 블루투스에서 암호화 level을 3이상으로 설정하여 통신하신다면 packet의 전달이 암호화 되는 것으로 확인했습니다.

    제 기억으론 PIN code를 이용해서 암호화하는 방식으로 알고있어서 방금 검색해봤는데. 그러던 중 아래에 대한 내용을 찾았습니다.

    When ever a device is paired with a PIN, the 'wireless Bluetooth data' is encrypted using a 8 to 128 bit PIN based encryption key and operates in Security mode 3 (Link-level enforced security mode).

    즉, PIN을 이용해 pairing을 한다면, PIN기반의 암호화가 적용되는 것으로 설명하고 있네요. 상세한건 Ref를 참조하시면 좋을 것 같습니다(이 설명은 특정 제품에 대한 설명일 수 있습니다).

    Ref: https://support.honeywellaidc.com/s/article/Bluetooth-Security-Mode-levels-encryption

    블루투스 paring에 관한 사이트 : https://blog.bluetooth.com/bluetooth-pairing-part-4
댓글쓰기 폼