
Resolvable Private Address (RPA) समाधान हेतु Identity Resolving Keys (IRKs) का उपयोग करने वाला Bluetooth Low Energy (BLE) स्कैनर
उन्नत रिज़ॉल्वेबल प्राइवेट एड्रेस (RPA) रिज़ॉल्यूशन के साथ एक ब्लूटूथ लो एनर्जी (BLE) स्कैनर। आस-पास के BLE डिवाइसों को खोजें, MAC एड्रेस द्वारा किसी विशेष डिवाइस को ट्रैक करें, या आइडेंटिटी रिज़ॉल्विंग की (IRK) का उपयोग करके प्राइवेसी-रैंडमाइज़्ड एड्रेस को रिज़ॉल्व करें।
लेखक: डेविड कैनेडी (@HackingDave) कंपनी: TrustedSec
-o - समर्थित है)GPS स्थान स्टैम्पिंग के लिए कनेक्टेड GPS रिसीवर के साथ चल रहे gpsd डेमन की आवश्यकता होती है। यदि gpsd नहीं चल रहा है, तो btrpa-scan GPS के बिना सामान्य रूप से कार्य करता रहता है।
| प्लेटफ़ॉर्म | इंस्टॉल | स्टार्ट |
|---|---|---|
| macOS | brew install gpsd | gpsd -n /dev/tty.usbserial-* |
| Debian/Ubuntu | sudo apt install gpsd gpsd-clients | sudo systemctl start gpsd |
| Fedora/RHEL | sudo dnf install gpsd gpsd-clients | sudo systemctl start gpsd |
| Arch | sudo pacman -S gpsd | sudo systemctl start gpsd |
| Windows | WSL या MSYS2 के माध्यम से gpsd का उपयोग करें | ऊपर WSL निर्देश देखें |
gpsd काम कर रहा है यह सत्यापित करने के लिए:
# जाँचें कि gpsd सुन रहा है
gpspipe -w -n 5
# या कर्सेस मॉनिटर का उपयोग करें
cgps
| प्लेटफ़ॉर्म | नोट्स |
|---|---|
| macOS | CoreBluetooth का उपयोग करता है। IRK मोड UUID के बजाय वास्तविक ब्लूटूथ एड्रेस प्राप्त करने के लिए एक अप्रमाणित API का लाभ उठाता है। --active का कोई प्रभाव नहीं होता — CoreBluetooth हमेशा सक्रिय रूप से स्कैन करता है। |
| Linux | स्कैनिंग के लिए root या CAP_NET_ADMIN क्षमता की आवश्यकता हो सकती है। |
| Windows | नेटिव WinRT ब्लूटूथ API — वास्तविक MAC एड्रेस मूल रूप से उपलब्ध होते हैं। TUI के लिए pip install windows-curses आवश्यक है। |
यह प्रोजेक्ट pyproject.toml (PEP 621) — आधुनिक Python पैकेजिंग मानक का उपयोग करता है। यह प्रोजेक्ट को पंजीकृत CLI कमांड के साथ एक इंस्टॉल करने योग्य पैकेज के रूप में परिभाषित करता है — .py फ़ाइलों को सीधे चलाने की आवश्यकता नहीं है।
uvx btrpa-scan --all
uvx --from git+https://github.com/hackingdave/btrpa-scan.git btrpa-scan --all
uv tool install btrpa-scan
या सीधे GitHub से:
uv tool install git+https://github.com/hackingdave/btrpa-scan.git
pip install btrpa-scan
GUI समर्थन के लिए (Flask-आधारित रडार इंटरफ़ेस):
pip install btrpa-scan[gui]
git clone https://github.com/hackingdave/btrpa-scan.git
cd btrpa-scan
pip install .
usage: btrpa-scan [-h] [-a] [--irk HEX] [--irk-file PATH] [-t TIMEOUT]
[--output {csv,json,jsonl}] [-o FILE] [--log FILE]
[-v | -q] [--min-rssi DBM] [--rssi-window N] [--active]
[--environment {free_space,indoor,outdoor}]
[--ref-rssi DBM] [--name-filter PATTERN]
[--alert-within METERS] [--tui] [--gui] [--gui-port PORT]
[--no-gps] [--adapters LIST] [mac]
BLE स्कैनर — सभी डिवाइस खोजें या किसी विशेष की खोज करें
positional arguments:
mac खोजने के लिए लक्षित MAC एड्रेस (सभी स्कैन करने के लिए छोड़ दें)
optional arguments:
-h, --help यह सहायता संदेश दिखाएँ और बाहर निकलें
-a, --all सभी प्रसारण करने वाले डिवाइसों के लिए स्कैन करें
--irk HEX इस आइडेंटिटी रिज़ॉल्विंग की का उपयोग करके RPA रिज़ॉल्व करें (32 हेक्स वर्ण)
--irk-file PATH फ़ाइल से IRK पढ़ें (प्रति पंक्ति एक, हेक्स प्रारूप)
-t, --timeout TIMEOUT स्कैन टाइमआउट सेकंड में (डिफ़ॉल्ट: 30, या --irk के लिए अनंत)
--output {csv,json,jsonl}
स्कैन के अंत में लिखा जाने वाला बैच आउटपुट प्रारूप
-o, --output-file FILE
आउटपुट फ़ाइल पथ (डिफ़ॉल्ट: btrpa-scan-results.<format>;
stdout के लिए - उपयोग करें)
--log FILE डिटेक्शन को रीयल टाइम में CSV फ़ाइल में स्ट्रीम करें
-v, --verbose वर्बोज़ मोड — अतिरिक्त विवरण दिखाएँ
-q, --quiet क्वाइट मोड — प्रति-डिवाइस आउटपुट दबाएँ, केवल सारांश दिखाएँ
--min-rssi DBM न्यूनतम RSSI थ्रेशोल्ड (जैसे -70) — कमज़ोर सिग्नलों को अनदेखा करें
--rssi-window N औसत के लिए RSSI स्लाइडिंग विंडो आकार (डिफ़ॉल्ट: 1 = कोई औसत नहीं)
--active सक्रिय स्कैनिंग का उपयोग करें (अतिरिक्त डेटा के लिए SCAN_REQ भेजता है)
--environment {free_space,indoor,outdoor}
दूरी अनुमान पाथ-लॉस मॉडल (डिफ़ॉल्ट: free_space)
--ref-rssi DBM दूरी अनुमान के लिए 1 मीटर पर कैलिब्रेटेड RSSI
--name-filter PATTERN नाम द्वारा डिवाइस फ़िल्टर करें (केस-असंवेदनशील सबस्ट्रिंग मिलान)
--alert-within METERS निकटता अलर्ट जब डिवाइस इस दूरी के भीतर हो
--tui स्क्रॉलिंग आउटपुट के बजाय लाइव-अपडेट होने वाली टर्मिनल तालिका
--gui ब्राउज़र में वेब-आधारित रडार इंटरफ़ेस लॉन्च करें
--gui-port PORT GUI वेब सर्वर के लिए पोर्ट (डिफ़ॉल्ट: 5000)
--no-gps GPS स्थान स्टैम्पिंग अक्षम करें (GPS डिफ़ॉल्ट रूप से gpsd के माध्यम से चालू है)
--adapters LIST अल्पविराम-पृथक ब्लूटूथ अडैप्टर नाम (जैसे hci0,hci1)
सभी प्रसारण करने वाले BLE डिवाइसों के लिए स्कैन करें (डिफ़ॉल्ट 30-सेकंड टाइमआउट):
btrpa-scan --all
कस्टम टाइमआउट के साथ:
btrpa-scan --all -t 60
MAC एड्रेस द्वारा किसी विशेष डिवाइस को खोजें:
btrpa-scan AA:BB:CC:DD:EE:FF