
BLE(Bluetooth Low Energy) 보안 평가를 위해 Man-in-the-Middle 및 기타 공격을 사용하는 Node.js 패키지

BLE(Bluetooth Low Energy) 중간자 공격(MitM) 등을 위한 Node.js 패키지입니다.
참고:
https://github.com/sandeepmistry/noble
https://github.com/sandeepmistry/bleno
npm install gattacker
두 구성 요소를 모두 실행하려면 config.env에서 변수를 설정하십시오:
"중앙" 및 "주변 장치" 모듈을 각각 하나의 BT4 인터페이스가 있는 별도의 상자에서 실행하는 경우 값을 주석 처리한 상태로 둘 수 있습니다.
sudo node ws-slave
대상 주변 장치에 연결하고 웹소켓 서버 역할을 합니다.
디버그:
DEBUG=ws-slave sudo node ws-slave
node scan
매개변수 없이 실행하면 브로드캐스트된 광고를 스캔하여 DEVICES_PATH에 .adv.json 파일로 기록합니다.
node scan <주변장치>
선택한 주변 장치의 서비스 및 특성을 탐색합니다. 탐색된 서비스 구조를 DEVICES_PATH에 .srv.json 파일로 저장합니다.
활성 요청/응답 변조를 위해 장치의 json 서비스 파일에 특성에 대한 후크 함수를 구성하십시오.
예시:
{
"uuid": "06d1e5e779ad4a718faa373789f7d93c",
"name": null,
"properties": [
"write",
"notify"
],
"startHandle": 8,
"valueHandle": 9,
"endHandle": 10,
"descriptors": [
{
"handle": 10,
"uuid": "2902",
"value": ""
}
],
"hooks": {
"dynamicWrite": "dynamicWriteFunction",
"dynamicNotify": "customLog"
}
}
함수:
<dynamic|static><Write|Read|Notify>
dynamic: 원래 장치에 연결
static: 원래 장치에 연결하지 않고 로컬에서 변조 함수 실행
지정된 함수를 hookFunctions에서 호출하려고 시도하며, 자신의 함수를 포함할 수 있습니다. 몇 가지 예제가 hookFunctions 하위 디렉터리에 제공되어 있습니다.
staticValue - 정적 값
node advertise -a <광고_json_파일> [ -s <서비스_json_파일> ]
웹소켓을 통해 ws-slave에 연결하여 원래 장치로 요청을 전달합니다. 정적 실행(-s)은 서비스를 로컬로 설정하며 ws-slave에 연결하지 않습니다. 후크를 적절히 구성해야 합니다.
많은 응용 프로그램에서 원래 장치의 MAC 주소를 복제해야 합니다. Bluez의 도우미 도구 bdaddr이 helpers/bdaddr에 제공되어 있습니다.
cd helpers/bdaddr
make
래퍼 스크립트:
./mac_adv -a <광고_json_파일> [ -s <서비스_json_파일> ]
덤프 파일은 config.env의 DUMP_PATH에 설정된 경로(기본값 dump)에 저장됩니다.
자세한 정보:
https://github.com/securing/gattacker/wiki/Dump-and-replay
끄고, 손가락을 교차하고, 다시 시도하세요 ;)
hciconfig <hci_interface> reset
이 구성에서는 다양한 문제가 발생할 수 있습니다.
NOBLE_HCI_INTERFACE와 BLENO_HCI_INTERFACE를 전환해 보십시오.
hcidump -x -t <hci_interface>
FAQ: https://github.com/securing/gattacker/wiki/FAQ
추가 정보: www.gattack.io
Copyright (C) 2016 Slawomir Jasek, SecuRing [email protected]
이 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 획득하는 모든 사람에게는 제한 없이 소프트웨어를 다룰 수 있는 권한이 부여됩니다. 여기에는 소프트웨어의 사용, 복사, 수정, 병합, 게시, 배포, 재라이선스 및/또는 판매 권한과 소프트웨어를 제공받은 사람이 이를 수행할 수 있도록 허용하는 권한이 포함됩니다. 단, 다음 조건을 충족해야 합니다.
위의 저작권 표시 및 이 허가 표시는 소프트웨어의 모든 사본 또는 주요 부분에 포함되어야 합니다.
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함한 어떠한 명시적이거나 묵시적인 보증도 없이 제공됩니다. 어떠한 경우에도 저작자 또는 저작권 소유자는 계약, 불법 행위 또는 기타 행위로 인해 소프트웨어 또는 소프트웨어의 사용 또는 기타 거래로 인해 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.