본문 바로가기

Let's Study/Tips

[잠깐메모..] ubertooth-one, gattacker를 이용한 블루투스 해킹

오랜만에 글씁니다. 


블로그 관리할 시간이 나질 않네요.. ㅜㅠ 여러분이 댓글 남겨주신거 정성스럽게 답글 남겨드리고는 싶은데 상황이 여의치 않아요 '-'..




아마존 에코 취약점분석 중인데, 결과가 좋으면 여기에도 꼭 공유하도록 하겠습니다.


아래 메모한 건 다음에 더 예쁘고 자세하게 써놓을게요.


지금은 급하게 메모한 것만 갈겨놓겠습니다.



BLE 해킹 환경 세팅하기


환경세팅한 OS : 우분투 14.04 64bit


참고사이트 : https://blog.attify.com/hacking-bluetooth-low-energy

  —> 블루투스 해킹을 스텝 별로 나누어 설명

https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

—> noble, blend, gattacker 설치하려면 우선 여기부터 참고해야

https://github.com/greatscottgadgets/ubertooth/wiki/Firmware

—> 우버투스 펌웨어 업데이트할 참고

https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide

  —> 우버투스 설치할 참고함

blog.dork94.com/34?category=735144

—> 우버투스로 블루투스 패킷 스니핑할 참고함



— npm 설치

sudo apt-get install npm



— nodejs 설치하기 (있어도 그냥 nodesource 서버를 통해 다시 설치) — 

 —> 과정 없으면  npm install noble, bleno, gattacker 설치 안된다.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt-get install -y nodejs



블루투스 관련 패키지 설치 

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev


우버투스 설치

 —> 참고사이트 : https://github.com/greatscottgadgets/ubertooth/wiki/Build-Guide

** 참고로.. 우버투스 쓰시려면 ubertooth-one 기기 있어야 되는건 아시죠? 한 14만원 정도 합니다.

툴만 설치하면 아무것도 안되요.


sudo apt-get install make libusb-1.0-0-dev make gcc g++

wget https://github.com/greatscottgadgets/libbtbb/archive/2018-06-R1.tar.gz -O libbtbb-2018-06-R1.tar.gz

—> libbtbb ubertooth 도구로 블루투스 패킷을 해독하는데 사용됨

—> 2018-06-R1 현재 날짜(2018.07.06)의 최신 버전으로, 변경될 있음. 최신버전은 우버투스 깃헙에서 확인 바람


tar xf libbtbb-2018-06-R1.tar.gz

cd libbtbb-2018-06-R1

mkdir build

cd build

cmake ..

make

sudo make install


wget https://github.com/greatscottgadgets/ubertooth/releases/download/2018-06-R1/ubertooth-2018-06-R1.tar.xz -O ubertooth-2018-R1.tar.xz

tar xf ubertooth-2018-06-R1.tar.xz

cd ubertooth-2018-06-R1/host

mkdir build

cd build

cmake ..

make

sudo make install


와이어샤크 설치

sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake

cd libbtbb-2018-06-R1/wireshark/plugins/btbb

mkdir build

cd build

cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..

make

sudo make install


sudo apt-get install wireshark wireshark-dev libwireshark-dev cmake

cd libbtbb-2018-06-R1/wireshark/plugins/btbredr

mkdir build

cd build

cmake -DCMAKE_INSTALL_LIBDIR=/usr/lib/x86_64-linux-gnu/wireshark/libwireshark3/plugins ..

make

sudo make install


우버투스 펌웨어 업그레이드

—> 펌웨어 버전이 낮아서 실행이 안된다면 아래 과정을 수행해야 함

cd ubertooth-2018-06-R1/ubertooth-one-firmware-bin

ubertooth-dfu -d bluetooth_rxtx.dfu -r

cd ../firmware

sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi

make clean all && make

ubertooth-dfu -r -d bluetooth_rxtx/bluetooth_rxtx.dfu

cd bluetooth_rxtx

make


우버투스를 통해 블루투스 패킷 스니핑

mkfifo /tmp/pipe

wireshark     —> 와이어샤크 실행


와샥에서 Capture Options -> Manage Interfaces 가서

Pipe 탭을 보면, + 버튼이 있는데 그거 누르고 /tmp/pipe 추가


이후, 메인화면을 보면 eth0, nflog, .... , /tmp/pipe 추가된 있는데 

/tmp/pipe 클릭하고 실행.

실행하면 아무 패킷도 잡히지 않는다. 상태에서 터미널 새로 하나 열고


ubertooth-btle -f -c /tmp/pipe


하게 되면 블루투스 패킷을 잡기 시작함.