
Linux/BlueZ पर Bluetooth Low Energy सुरक्षा परीक्षण के लिए एकल Go बाइनरी: स्कैन, GATT की गणना, पढ़ें/लिखें/सूचित करें, विशेषताओं को फ़ज़ करें, और JSON आउटपुट के साथ संरचित मूल्यांकन चलाएँ।
Linux/BlueZ पर संपूर्ण Bluetooth Low Energy मूल्यांकन कार्यप्रवाह के लिए एक ही Go बाइनरी: स्कैन, एन्यूमरेट, पढ़ें/लिखें/सूचित करें, फ़ज़, और संरचित सुरक्षा मूल्यांकन, स्क्रिप्ट और एजेंट के लिए JSON आउटपुट के साथ।
Caeruleus Bluetooth Low Energy (BLE) सुरक्षा परीक्षण को Linux BlueZ स्टैक पर बनी एक ही Go बाइनरी में समाहित करता है। यह BlueZ D-Bus और रॉ L2CAP/HCI सॉकेट के माध्यम से परिधीय उपकरणों से संवाद करता है और पूरे जीवनचक्र को कवर करता है: उपकरणों की खोज करें, GATT ट्री ब्राउज़ करें और पढ़ें/लिखें, नोटिफिकेशन कैप्चर करें, लिखने योग्य विशेषताओं को फ़ज़ करें, और दोहराने योग्य सुरक्षा-मूल्यांकन कार्यप्रवाह चलाएँ। प्रत्येक कमांड स्क्रिप्टिंग, रिपोर्टिंग, और LLM एजेंट के लिए संरचित -o json / -o jsonl आउटपुट उत्सर्जित करता है।
ऑफेंसिव सिक्योरिटी इंजीनियरों द्वारा bettercap, gatttool, hcitool, bluetoothctl, और एकबारगी Bleak स्क्रिप्ट के सामान्य ढेर को बदलने के लिए बनाया गया, Caeruleus अमूर्तनों को उस स्तर पर रखता है जहाँ एक मानव या एजेंट वास्तव में काम करता है।
caeruleus: Bluetooth Low Energy में "blue" के लिए लैटिन
BLE सुरक्षा परीक्षण के लिए मानक कार्यप्रवाह उन उपकरणों में एक खोज-अभियान है जो कभी एक साथ काम करने के लिए डिज़ाइन ही नहीं किए गए थे:
hcitool / hciconfig एडाप्टर कॉन्फ़िगरेशन और खोज के लिए, दोनों BlueZ द्वारा अप्रचलित और कई आधुनिक डिस्ट्रोज़ में अनुपस्थित।bettercap ble.recon और ble.enum के लिए। शक्तिशाली, लेकिन केवल एक GATT ट्री ब्राउज़ करने के लिए आप एक पूरा नेटवर्क-हमला फ्रेमवर्क इंस्टॉल करते हैं।gatttool हैंडल पढ़ने और लिखने के लिए, वर्षों से अप्रचलित लेकिन अभी भी हर ट्यूटोरियल में।प्रत्येक अपनी अलग बोली बोलता है, और कोई भी मशीन-पठनीय आउटपुट उत्सर्जित नहीं करता जिसे आप अगले चरण में पाइप कर सकें, इसलिए आप ही एकीकरण परत बन जाते हैं, टर्मिनलों के बीच MAC पते और हैंडल हाथ से कॉपी करते हुए। BlueZ के स्वयं के समर्थित फ्रंटएंड (bluetoothctl, btmgmt) सामान्य-उद्देश्य प्रबंधन उपकरण हैं जो मूल्यांकन कार्य के लिए गलत अमूर्तन स्तर पर हैं।
Caeruleus उस पूरे ढेर को एक सुसंगत कमांड सतह से बदल देता है:
| उपयोग का मामला | पिछली विधि | Caeruleus के साथ |
|---|---|---|
| आस-पास के उपकरणों की खोज करें | hcitool lescan / bettercap ble.recon / bluetoothctl scan on | caeruleus scan |
| सेवाओं/विशेषताओं की सूची बनाएँ और पढ़ें | bettercap ble.enum <mac> | caeruleus enumerate -b <mac> --values |
| इंटरैक्टिव सत्र | gatttool -I / bluetoothctl | caeruleus shell -b <mac> |
| एक हैंडल पढ़ें | gatttool --char-read-hnd 0x0013 | caeruleus read -b <mac> -a 0x0013 |
| एक हैंडल लिखें | gatttool -b <mac> --char-write-req -a 0x002c -n $(...) | caeruleus write -b <mac> -a 0x002c --req -s "value" |
| नोटिफिकेशन कैप्चर करें | कस्टम Bleak लॉगर | caeruleus listen -b <mac> -a <handle> |
| अनधिकृत एक्सपोज़र का ऑडिट करें | कस्टम Bleak ऑडिट स्क्रिप्ट | caeruleus recon / caeruleus assess ... |
| एक विशेषता को फ़ज़ करें | कस्टम फ़ज़र / boofuzz | caeruleus fuzz write -b <mac> -a <handle> |
| कनेक्शन पैरामीटर, MTU | hcitool con / btmgmt con-info | caeruleus conn-params -b <mac> |
| एडाप्टर पावर और रिकवरी | btmgmt power / hciconfig reset / rfkill | caeruleus doctor / caeruleus adapter power cycle |
हर जगह संरचित आउटपुट। आउटपुट उत्पन्न करने वाला प्रत्येक कमांड -o text|json|jsonl का समर्थन करता है। JSON विहित प्रतिनिधित्व है, द्वितीयक निर्यात नहीं; jsonl scan --live और listen के लिए प्रति इवेंट एक रिकॉर्ड स्ट्रीम करता है। enumerate --compact grep या LLM कॉन्टेक्स्ट विंडो के लिए प्रति विशेषता एक key=value पंक्ति उत्सर्जित करता है।
BLE स्टैक स्वास्थ्य। caeruleus doctor BlueZ और कर्नेल स्थिति को टहलता है और एक OK/WARN/FAIL चेकलिस्ट प्रिंट करता है: bluetoothd चल रहा है, एडाप्टर पावर्ड, कोई लीक हुआ डिस्कवरी सत्र नहीं, BlueZ-कैश्ड पता बनाम MGMT चिप-लाइव पता, एक लाइव 2-सेकंड स्कैन प्रोब, और एक सुरक्षित बैंड में ExchangeMTU। प्रत्येक गैर-OK निष्कर्ष एक ठोस फ़िक्स कमांड लेकर आता है, और एग्ज़िट कोड grep/diff परंपरा का पालन करता है (0 स्पष्ट, विफलता पर 2)।
स्वच्छ टियरडाउन। SIGTERM/SIGHUP पर टूल डिस्कनेक्ट पथ चलाता है और तब तक पोल करता है जब तक Connected=false BlueZ के माध्यम से प्रसारित न हो जाए, ताकि परिधीय तुरंत पुनः-विज्ञापित हो बजाय अपने सुपरविज़न टाइमआउट के लिए रुकने के। क्रैश के बाद अब और "भूत कनेक्शन" नहीं।
स्क्रिप्टिंग और ऑटोमेशन। serve/send एक Unix सॉकेट पर एक GATT लिंक खुला रखते हैं ताकि एक स्क्रिप्ट या एजेंट प्रति कमांड ~1.5s पुनःकनेक्ट लागत से बचे; batch stdin से कमांड एक ही स्थायी कनेक्शन पर चलाता है; listen --trigger-value एक नोटिफिकेशन सेट करता है, एक राइट फायर करता है, और प्रतिक्रिया को परमाणु रूप से कैप्चर करता है।
सुविधा विवरण। GAP Appearance और विज्ञापित सेवाओं से डिवाइस-प्रकार अनुमान (एक घड़ी "Smartwatch" के रूप में दिखती है, कच्चे appearance कोड के रूप में नहीं); क्षमाशील इनपुट पार्सिंग (0x002a, 0X2A, या 42 के रूप में हैंडल; deadbeef, de:ad:be:ef, या 0xdeadbeef के रूप में हेक्स); caeruleus recipes 19 सामान्य कार्यप्रवाहों को सूचीबद्ध और कीवर्ड-खोजता है; conn-params वह बातचीत-निर्धारित अंतराल, विलंबता, और सुपरविज़न टाइमआउट सामने लाता है जो न तो gatttool और न ही bettercap उजागर करते हैं।
Caeruleus LLM एजेंट को प्रथम-श्रेणी उपयोगकर्ता मानता है। -o json / -o jsonl टोकन-कुशल, संरचित आउटपुट देते हैं जिसे एक एजेंट मानव-स्वरूपित तालिकाओं को स्क्रैप किए बिना पार्स करता है, और रेपो एक पोर्टेबल Agent Skill (skills/caeruleus/SKILL.md) भेजता है जो किसी भी Agent Skills-संगत सहायक को कमांड सतह और एक अनुशंसित मूल्यांकन पद्धति सिखाता है। एक एजेंट को एक डिवाइस पर इंगित करें और यह पूरी पद्धति को शुरू से अंत तक चलाता है।
हमारे बेंचमार्क में, Caeruleus और उसके स्किल के साथ Opus 4.8 (xHigh) ने कार्य को 62% समय और 70% टोकन में पूरा किया, उसी मॉडल के मुक्त टूल चयन की तुलना में (जिसने hcitool और Bleak स्क्रिप्ट तक पहुँचा)।
Caeruleus Linux with BlueZ (bluetoothd) और एक मानक BLE एडाप्टर को लक्षित करता है। यह macOS या Windows पर बिल्ड या रन नहीं होता। कुछ रॉ-सॉकेट कमांड को root चाहिए।
Go टूलचेन के साथ:
go install github.com/praetorian-inc/caeruleus/cmd/caeruleus@latest
प्रीबिल्ट रिलीज़ बाइनरी (x86_64 और arm64): Releases पृष्ठ से अपनी आर्किटेक्चर के लिए आर्काइव डाउनलोड करें, निकालें, और caeruleus को अपने $PATH पर रखें।
सोर्स से:
git clone https://github.com/praetorian-inc/caeruleus
cd caeruleus
make build # -> ./caeruleus
make test # unit tests + shell tests
एडाप्टर की सैनिटी-जाँच करें, फिर खोजें कि आस-पास क्या है: