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이 보이는 것을 확인 할 수 있습니다.


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

Comments