diff --git a/src/todo/radio-hacking/pentesting-rfid.md b/src/todo/radio-hacking/pentesting-rfid.md index 00e77e2a8..e3337fb83 100644 --- a/src/todo/radio-hacking/pentesting-rfid.md +++ b/src/todo/radio-hacking/pentesting-rfid.md @@ -2,52 +2,52 @@ {{#include ../../banners/hacktricks-training.md}} -## Introduction +## परिचय -**रेडियो फ़्रीक्वेंसी पहचान (RFID)** सबसे लोकप्रिय शॉर्ट-रेंज रेडियो समाधान है। इसका उपयोग आमतौर पर किसी इकाई की पहचान करने वाली जानकारी को स्टोर और ट्रांसमिट करने के लिए किया जाता है। +**Radio Frequency Identification (RFID)** सबसे लोकप्रिय short-range radio समाधान है। आम तौर पर इसका उपयोग उस entity की पहचान करने वाली जानकारी को स्टोर और ट्रांसमिट करने के लिए किया जाता है। -एक RFID टैग **अपनी खुद की पावर स्रोत (सक्रिय)** पर निर्भर कर सकता है, जैसे कि एक एम्बेडेड बैटरी, या पढ़ने वाली एंटीना से **प्राप्त रेडियो तरंगों से प्रेरित वर्तमान** से अपनी शक्ति प्राप्त कर सकता है (**निष्क्रिय**)। +एक RFID tag अपने power source (active), जैसे कि एम्बेडेड बैटरी, पर निर्भर कर सकता है, या पढ़ने वाले एंटेना से प्राप्त रेडियो तरंगों से induced करंट के जरिए अपनी पावर प्राप्त कर सकता है (passive)। ### Classes -EPCglobal RFID टैग को छह श्रेणियों में विभाजित करता है। प्रत्येक श्रेणी में एक टैग में पिछले श्रेणी में सूचीबद्ध सभी क्षमताएँ होती हैं, जिससे यह पीछे की ओर संगत होता है। +EPCglobal RFID tags को छह श्रेणियों में बाँटता है। हर श्रेणी का tag पिछली श्रेणी में सूचीबद्ध सभी क्षमताएँ रखता है, जिससे यह backward compatible होता है। -- **क्लास 0** टैग **निष्क्रिय** टैग होते हैं जो **UHF** बैंड में काम करते हैं। विक्रेता इन्हें उत्पादन फैक्ट्री में **पूर्व-प्रोग्राम** करता है। परिणामस्वरूप, आप **उनकी मेमोरी में स्टोर की गई जानकारी को नहीं बदल सकते**। -- **क्लास 1** टैग भी **HF** बैंड में काम कर सकते हैं। इसके अलावा, इन्हें उत्पादन के बाद **केवल एक बार लिखा जा सकता है**। कई क्लास 1 टैग भी प्राप्त किए गए आदेशों के **साइक्लिक रेडंडेंसी चेक** (CRCs) को प्रोसेस कर सकते हैं। CRCs आदेशों के अंत में त्रुटि पहचान के लिए कुछ अतिरिक्त बाइट्स होते हैं। -- **क्लास 2** टैग को **कई बार लिखा जा सकता है**। -- **क्लास 3** टैग में **एंबेडेड सेंसर** हो सकते हैं जो पर्यावरणीय मापदंडों को रिकॉर्ड कर सकते हैं, जैसे वर्तमान तापमान या टैग की गति। ये टैग **सेमी-पैसिव** होते हैं, क्योंकि हालांकि इनमें एक एम्बेडेड पावर स्रोत होता है, जैसे एक एकीकृत **बैटरी**, वे अन्य टैग या रीडर्स के साथ वायरलेस **संवाद** शुरू नहीं कर सकते। -- **क्लास 4** टैग समान श्रेणी के अन्य टैग के साथ संवाद शुरू कर सकते हैं, जिससे वे **सक्रिय टैग** बन जाते हैं। -- **क्लास 5** टैग अन्य टैग को **शक्ति प्रदान कर सकते हैं और सभी पिछले टैग** श्रेणियों के साथ संवाद कर सकते हैं। क्लास 5 टैग **RFID रीडर्स** के रूप में कार्य कर सकते हैं। +- **Class 0** tags **passive** tags होते हैं जो **UHF** बैंड में काम करते हैं। vendor इन्हें production फैक्ट्री में **preprograms** करता है। नतीजतन, आप इनके memory में संग्रहीत जानकारी को **change** नहीं कर सकते। +- **Class 1** tags **HF** बैंड में भी काम कर सकते हैं। इसके अलावा, इन्हें production के बाद **written only once** किया जा सकता है। कई Class 1 tags प्राप्त commands के **cyclic redundancy checks (CRCs)** भी प्रोसेस कर सकते हैं। CRCs commands के अंत में error detection के लिए कुछ अतिरिक्त bytes होते हैं। +- **Class 2** tags को **multiple times** लिखा जा सकता है। +- **Class 3** tags में एम्बेडेड sensors हो सकते हैं जो पर्यावरणीय पैरामीटर रिकॉर्ड कर सकें, जैसे वर्तमान तापमान या tag की motion। ये tags **semi-passive** होते हैं, क्योंकि हालांकि इनमें एक एम्बेडेड power source, जैसे integrated **battery**, होता है, वे अन्य tags या readers के साथ वायरलेस **communication** शुरू नहीं कर सकते। +- **Class 4** tags समान क्लास के अन्य tags के साथ communication शुरू कर सकते हैं, जिससे वे **active tags** बन जाते हैं। +- **Class 5** tags अन्य tags को **power** प्रदान कर सकते हैं और सभी पिछली tag classes के साथ communicate कर सकते हैं। Class 5 tags **RFID readers** के रूप में कार्य कर सकते हैं। -### Information Stored in RFID Tags +### RFID Tags में संग्रहीत जानकारी -एक RFID टैग की मेमोरी आमतौर पर चार प्रकार के डेटा को स्टोर करती है: **पहचान डेटा**, जो उस **इकाई** की पहचान करता है जिस पर टैग लगा होता है (इस डेटा में उपयोगकर्ता-परिभाषित फ़ील्ड शामिल होते हैं, जैसे बैंक खाते); **पूरक डेटा**, जो इकाई के बारे में **अधिक** **विवरण** प्रदान करता है; **नियंत्रण डेटा**, जो टैग की आंतरिक **कॉन्फ़िगरेशन** के लिए उपयोग किया जाता है; और टैग का **निर्माता डेटा**, जिसमें टैग का यूनिक आइडेंटिफायर (**UID**) और टैग के **उत्पादन**, **प्रकार**, और **विक्रेता** के बारे में विवरण होता है। आप पहले दो प्रकार के डेटा सभी व्यावसायिक टैग में पाएंगे; अंतिम दो टैग के विक्रेता के आधार पर भिन्न हो सकते हैं। +एक RFID tag की memory आमतौर पर चार प्रकार के डेटा स्टोर करती है: **identification data**, जो उस entity की पहचान करता है जिस से tag जुड़ा होता है (इस डेटा में user-defined फ़ील्ड शामिल होते हैं, जैसे bank accounts); **supplementary data**, जो entity के बारे में आगे के विवरण प्रदान करता है; **control data**, जो tag की आंतरिक configuration के लिए उपयोग होता है; और tag का **manufacturer data**, जिसमें tag का Unique Identifier (**UID**) और tag के **production**, **type**, और **vendor** के बारे में विवरण होते हैं। आपको पहले दो प्रकार के डेटा सभी commercial tags में मिलेंगे; अंतिम दो vendor के आधार पर भिन्न हो सकते हैं। -ISO मानक एप्लिकेशन फैमिली आइडेंटिफायर (**AFI**) मान को निर्दिष्ट करता है, जो एक कोड है जो टैग जिस **वस्तु** से संबंधित है उसे इंगित करता है। एक अन्य महत्वपूर्ण रजिस्टर, जिसे ISO द्वारा भी निर्दिष्ट किया गया है, डेटा स्टोरेज फॉर्मेट आइडेंटिफायर (**DSFID**) है, जो **उपयोगकर्ता डेटा** के तार्किक संगठन को परिभाषित करता है। +ISO standard Application Family Identifier (**AFI**) value निर्दिष्ट करता है, एक कोड जो tag जिस प्रकार के object से संबंधित है उसे दर्शाता है। एक और महत्वपूर्ण रजिस्टर, जो ISO द्वारा निर्दिष्ट है, वह है Data Storage Format Identifier(**DSFID**), जो user data के तार्किक संगठन को परिभाषित करता है। -अधिकांश RFID **सुरक्षा नियंत्रण** में ऐसे तंत्र होते हैं जो प्रत्येक उपयोगकर्ता मेमोरी ब्लॉक और AFI और DSFID मानों को समाहित करने वाले विशेष रजिस्टरों पर **पढ़ने** या **लिखने** के संचालन को **सीमित** करते हैं। ये **लॉक** **तंत्र** नियंत्रण मेमोरी में स्टोर किए गए डेटा का उपयोग करते हैं और विक्रेता द्वारा पूर्व-निर्धारित **डिफ़ॉल्ट पासवर्ड** होते हैं लेकिन टैग मालिकों को **कस्टम पासवर्ड** कॉन्फ़िगर करने की अनुमति देते हैं। +अधिकांश RFID **security controls** में ऐसे mechanisms होते हैं जो प्रत्येक user memory block और AFI तथा DSFID values वाले विशेष रजिस्टरों पर read या write operations को **restrict** करते हैं। ये **lock mechanisms** control memory में संग्रहीत डेटा का उपयोग करते हैं और vendor द्वारा preconfigured default passwords होते हैं, पर tag मालिकों को **custom passwords** configure करने की अनुमति भी देते हैं। -### Low & High frequency tags comparison +### Low & High frequency tags तुलना
## Low-Frequency RFID Tags (125kHz) -**लो-फ्रीक्वेंसी टैग** अक्सर उन सिस्टम में उपयोग किए जाते हैं जो **उच्च सुरक्षा की आवश्यकता नहीं होती**: भवन की पहुंच, इंटरकॉम कुंजी, जिम सदस्यता कार्ड, आदि। उनकी उच्च रेंज के कारण, इन्हें भुगतान की गई कार पार्किंग के लिए उपयोग करना सुविधाजनक होता है: चालक को कार्ड को रीडर के करीब लाने की आवश्यकता नहीं होती, क्योंकि इसे दूर से सक्रिय किया जाता है। साथ ही, लो-फ्रीक्वेंसी टैग बहुत प्राइमिटिव होते हैं, इनकी डेटा ट्रांसफर दर कम होती है। इस कारण, जटिल दो-तरफा डेटा ट्रांसफर को लागू करना असंभव है, जैसे कि बैलेंस बनाए रखना और क्रिप्टोग्राफी। लो-फ्रीक्वेंसी टैग केवल अपनी छोटी ID को बिना किसी प्रमाणीकरण के ट्रांसमिट करते हैं। +**Low-frequency tags** का अक्सर उन सिस्टमों में उपयोग होता है जिन्हें high security की आवश्यकता नहीं होती: building access, intercom keys, gym membership cards, आदि। उनकी अधिक range के कारण, इन्हें paid car parking के लिए उपयोग करना सुविधाजनक है: driver को card को reader के बहुत पास लाने की जरूरत नहीं होती, क्योंकि यह अधिक दूरी से ट्रिगर हो जाता है। साथ ही, low-frequency tags बहुत primitive होते हैं और उनकी data transfer rate कम होती है। इसलिए, ऐसे जटिल दो-तरफ़ा data transfer जैसे balance रखने और cryptography को लागू करना असंभव है। Low-frequency tags केवल अपना short ID ट्रांसमिट करते हैं बिना किसी authentication के। -ये उपकरण **निष्क्रिय** **RFID** तकनीक पर निर्भर करते हैं और **30 kHz से 300 kHz** की रेंज में काम करते हैं, हालांकि 125 kHz से 134 kHz का उपयोग करना अधिक सामान्य है: +ये डिवाइस passive RFID टेक्नोलॉजी पर आधारित हैं और आम तौर पर **30 kHz से 300 kHz** की रेंज में ऑपरेट करते हैं, हालांकि सामान्यतः 125 kHz से 134 kHz का उपयोग होता है: -- **लॉन्ग रेंज** — कम फ़्रीक्वेंसी उच्च रेंज में परिवर्तित होती है। कुछ EM-Marin और HID रीडर्स हैं, जो एक मीटर की दूरी से काम करते हैं। इनका अक्सर कार पार्किंग में उपयोग किया जाता है। -- **प्राइमिटिव प्रोटोकॉल** — डेटा ट्रांसफर दर कम होने के कारण ये टैग केवल अपनी छोटी ID को ट्रांसमिट कर सकते हैं। अधिकांश मामलों में, डेटा को प्रमाणीकरण नहीं किया जाता है और इसे किसी भी तरह से सुरक्षित नहीं किया जाता है। जैसे ही कार्ड रीडर की रेंज में आता है, यह बस अपनी ID ट्रांसमिट करना शुरू कर देता है। -- **कम सुरक्षा** — इन कार्डों को आसानी से कॉपी किया जा सकता है, या यहां तक कि किसी और की जेब से पढ़ा जा सकता है, क्योंकि प्रोटोकॉल प्राइमिटिव है। +- **Long Range** — lower frequency का मतलब higher range होता है। कुछ EM-Marin और HID readers हैं, जो लगभग एक मीटर की दूरी से काम करते हैं। इन्हें अक्सर car parking में उपयोग किया जाता है। +- **Primitive protocol** — low data transfer rate के कारण ये tags केवल अपना short ID ट्रांसमिट कर सकते हैं। अधिकांश मामलों में डेटा authenticated नहीं होता और किसी भी तरह से protected नहीं होता। जैसे ही कार्ड reader की रेंज में आता है, यह बस अपना ID भेजना शुरू कर देता है। +- **Low security** — ये कार्ड आसानी से copy किए जा सकते हैं, या protocol की primitiveness के कारण किसी और की जेब से भी पढ़े जा सकते हैं। -**लोकप्रिय 125 kHz प्रोटोकॉल:** +**लोकप्रिय 125 kHz protocols:** -- **EM-Marin** — EM4100, EM4102। CIS में सबसे लोकप्रिय प्रोटोकॉल। इसकी सरलता और स्थिरता के कारण लगभग एक मीटर से पढ़ा जा सकता है। -- **HID Prox II** — HID Global द्वारा पेश किया गया लो-फ्रीक्वेंसी प्रोटोकॉल। यह प्रोटोकॉल पश्चिमी देशों में अधिक लोकप्रिय है। यह अधिक जटिल है और इस प्रोटोकॉल के लिए कार्ड और रीडर्स अपेक्षाकृत महंगे हैं। -- **Indala** — बहुत पुराना लो-फ्रीक्वेंसी प्रोटोकॉल जो Motorola द्वारा पेश किया गया था, और बाद में HID द्वारा अधिग्रहित किया गया। आप इसे पिछले दो की तुलना में कम ही पाएंगे क्योंकि इसका उपयोग कम हो रहा है। +- **EM-Marin** — EM4100, EM4102. CIS में सबसे लोकप्रिय protocol। इसकी सरलता और स्थिरता के कारण यह लगभग एक मीटर से पढ़ा जा सकता है। +- **HID Prox II** — HID Global द्वारा पेश किया गया low-frequency protocol। यह protocol पश्चिमी देशों में अधिक लोकप्रिय है। यह अधिक जटिल है और इस protocol के कार्ड और readers अपेक्षाकृत महंगे होते हैं। +- **Indala** — Motorola द्वारा पेश किया गया बहुत पुराना low-frequency protocol, जिसे बाद में HID ने acquire किया। पिछले दो की तुलना में wild में इससे मिलने की संभावना कम है क्योंकि यह उपयोग से बाहर जा रहा है। -वास्तव में, और भी बहुत सारे लो-फ्रीक्वेंसी प्रोटोकॉल हैं। लेकिन वे सभी भौतिक स्तर पर समान मॉड्यूलेशन का उपयोग करते हैं और इन्हें एक तरह से या किसी अन्य तरीके से ऊपर सूचीबद्ध प्रोटोकॉल का एक रूप माना जा सकता है। +वास्तव में, बहुत सारे low-frequency protocols मौजूद हैं। पर वे सभी physical layer पर समान modulation का उपयोग करते हैं और किसी न किसी रूप में ऊपर सूचीबद्ध प्रोटोकॉल का variation माने जा सकते हैं। ### Attack @@ -60,24 +60,24 @@ flipper-zero/fz-125khz-rfid.md ## High-Frequency RFID Tags (13.56 MHz) -**हाई-फ्रीक्वेंसी टैग** का उपयोग तब किया जाता है जब आपको क्रिप्टोग्राफी, बड़े दो-तरफा डेटा ट्रांसफर, प्रमाणीकरण आदि की आवश्यकता होती है।\ -यह आमतौर पर बैंक कार्ड, सार्वजनिक परिवहन, और अन्य सुरक्षित पास में पाया जाता है। +**High-frequency tags** उन स्थितियों में उपयोग होते हैं जहाँ आपको cryptography, बड़ा दो-तरफ़ा data transfer, authentication आदि जैसी जटिल reader-tag interaction की आवश्यकता होती है।\ +यह आम तौर पर bank cards, public transport, और अन्य secure passes में पाया जाता है। -**हाई-फ्रीक्वेंसी 13.56 MHz टैग मानकों और प्रोटोकॉल का एक सेट हैं**। इन्हें आमतौर पर [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) कहा जाता है, लेकिन यह हमेशा सही नहीं होता। भौतिक और तार्किक स्तर पर उपयोग किए जाने वाले मूल प्रोटोकॉल सेट ISO 14443 है। उच्च-स्तरीय प्रोटोकॉल, साथ ही वैकल्पिक मानक (जैसे ISO 19092), इसके आधार पर हैं। कई लोग इस तकनीक को **नियर फील्ड कम्युनिकेशन (NFC)** के रूप में संदर्भित करते हैं, जो 13.56 MHz फ़्रीक्वेंसी पर काम करने वाले उपकरणों के लिए एक शब्द है। +**High-frequency 13.56 MHz tags कई standards और protocols का सेट हैं**। इन्हें अक्सर [NFC](https://nfc-forum.org/what-is-nfc/about-the-technology/) कहा जाता है, लेकिन यह हमेशा सही नहीं है। physical और logical स्तरों पर उपयोग होने वाला basic protocol set ISO 14443 है। उच्च-स्तरीय प्रोटोकॉल, साथ ही वैकल्पिक मानक (जैसे ISO 19092), इसी पर आधारित होते हैं। कई लोग इस तकनीक को **Near Field Communication (NFC)** कहते हैं, जो 13.56 MHz पर ऑपरेट होने वाले उपकरणों के लिए प्रयुक्त शब्द है।
-साधारण शब्दों में, NFC की आर्किटेक्चर इस तरह काम करती है: ट्रांसमिशन प्रोटोकॉल उस कंपनी द्वारा चुना जाता है जो कार्ड बनाती है और इसे निम्न-स्तरीय ISO 14443 के आधार पर लागू किया जाता है। उदाहरण के लिए, NXP ने एक उच्च-स्तरीय ट्रांसमिशन प्रोटोकॉल का आविष्कार किया जिसे Mifare कहा जाता है। लेकिन निम्न स्तर पर, Mifare कार्ड ISO 14443-A मानक पर आधारित होते हैं। +सरल शब्दों में, NFC की आर्किटेक्चर इस तरह काम करती है: transmission protocol उस कंपनी द्वारा चुना जाता है जो कार्ड बनाती है और इसे low-level ISO 14443 के आधार पर लागू किया जाता है। उदाहरण के लिए, NXP ने अपना उच्च-स्तरीय transmission protocol Mifare बनाया। लेकिन निचले स्तर पर, Mifare cards ISO 14443-A standard पर आधारित होते हैं। -Flipper निम्न-स्तरीय ISO 14443 प्रोटोकॉल के साथ-साथ Mifare Ultralight डेटा ट्रांसफर प्रोटोकॉल और बैंक कार्ड में उपयोग किए जाने वाले EMV के साथ इंटरैक्ट कर सकता है। हम Mifare Classic और NFC NDEF के लिए समर्थन जोड़ने पर काम कर रहे हैं। NFC के निर्माण करने वाले प्रोटोकॉल और मानकों पर एक गहन नज़र एक अलग लेख के लायक है जिसे हम बाद में प्रकाशित करने की योजना बना रहे हैं। +Flipper दोनों low-level ISO 14443 protocol और Mifare Ultralight data transfer protocol और bank cards में उपयोग होने वाले EMV के साथ interact कर सकता है। हम Mifare Classic और NFC NDEF के लिए समर्थन जोड़ने पर काम कर रहे हैं। NFC को बनाने वाले protocols और standards का एक विस्तृत विश्लेषण एक अलग लेख का विषय होगा जिसे हम बाद में प्रकाशित करने की योजना बना रहे हैं। -ISO 14443-A मानक पर आधारित सभी उच्च-फ्रीक्वेंसी कार्ड में एक अद्वितीय चिप ID होती है। यह कार्ड का सीरियल नंबर के रूप में कार्य करता है, जैसे नेटवर्क कार्ड का MAC पता। **आमतौर पर, UID 4 या 7 बाइट लंबा होता है**, लेकिन यह **10** तक भी जा सकता है। UIDs कोई रहस्य नहीं होते हैं और इन्हें आसानी से पढ़ा जा सकता है, **कभी-कभी तो कार्ड पर ही प्रिंट किया जाता है**। +ISO 14443-A standard पर आधारित सभी high-frequency cards के पास एक unique chip ID होती है। यह कार्ड के serial number की तरह कार्य करता है, जैसे network card का MAC address। **आम तौर पर, UID 4 या 7 bytes लंबा होता है**, लेकिन कभी-कभार **10 तक** भी हो सकता है। UIDs कोई secret नहीं होते और आसानी से पढ़े जा सकते हैं, **कभी-कभी तो कार्ड पर ही छपे होते हैं**। -कई एक्सेस कंट्रोल सिस्टम UID पर **प्रमाणित और पहुंच प्रदान करने** के लिए निर्भर करते हैं। कभी-कभी यह तब भी होता है जब RFID टैग **क्रिप्टोग्राफी** का समर्थन करते हैं। ऐसी **दुरुपयोग** उन्हें **125 kHz कार्डों** के स्तर पर ले आता है। वर्चुअल कार्ड (जैसे Apple Pay) एक गतिशील UID का उपयोग करते हैं ताकि फोन मालिक अपने भुगतान ऐप के साथ दरवाजे न खोल सकें। +कई access control systems UID पर निर्भर करते हुए **authenticate और grant access** करते हैं। कभी-कभी यह तब भी होता है जब RFID tags में cryptography का समर्थन होता है। ऐसी **गलत प्रथाएँ** उन्हें security के मामले में मूर्खतापूर्ण **125 kHz cards** के स्तर पर ला देती हैं। Virtual cards (जैसे Apple Pay) dynamic UID का उपयोग करते हैं ताकि फोन मालिक अपने payment app से दरवाजे खोलते समय सुरक्षा बनी रहे। -- **कम रेंज** — उच्च-फ्रीक्वेंसी कार्ड विशेष रूप से इस तरह से डिज़ाइन किए गए हैं कि उन्हें रीडर के करीब रखा जाना चाहिए। यह कार्ड को अनधिकृत इंटरैक्शन से भी बचाने में मदद करता है। अधिकतम पढ़ने की रेंज जो हमें प्राप्त करने में सक्षम थी वह लगभग 15 सेमी थी, और वह कस्टम-निर्मित उच्च-रेंज रीडर्स के साथ थी। -- **उन्नत प्रोटोकॉल** — डेटा ट्रांसफर की गति 424 kbps तक जटिल प्रोटोकॉल की अनुमति देती है जिसमें पूर्ण-फledged दो-तरफा डेटा ट्रांसफर होता है। जो बदले में **क्रिप्टोग्राफी**, डेटा ट्रांसफर आदि की अनुमति देता है। -- **उच्च सुरक्षा** — उच्च-फ्रीक्वेंसी संपर्क रहित कार्ड स्मार्ट कार्डों के मुकाबले किसी भी तरह से कम नहीं होते हैं। ऐसे कार्ड हैं जो क्रिप्टोग्राफिक रूप से मजबूत एल्गोरिदम जैसे AES का समर्थन करते हैं और विषम क्रिप्टोग्राफी को लागू करते हैं। +- **Low range** — high-frequency cards विशेष रूप से इस तरह डिज़ाइन किए गए हैं कि इन्हें reader के पास रखना होगा। यह unauthorized interactions से कार्ड की रक्षा में भी मदद करता है। अधिकतम read range जो हमने हासिल की वह लगभग 15 cm थी, और वह भी custom-made high-range readers के साथ। +- **Advanced protocols** — 424 kbps तक की data transfer speeds जटिल प्रोटोकॉल और पूर्ण दो-तरफ़ा data transfer की अनुमति देती हैं। जो कि बदले में **cryptography**, data transfer आदि की अनुमति देता है। +- **High security** — high-frequency contactless cards किसी भी तरह से smart cards से कम नहीं हैं। कुछ cards cryptographically strong algorithms जैसे **AES** का समर्थन करते हैं और asymmetrical cryptography को लागू करते हैं। ### Attack @@ -95,9 +95,55 @@ Or using the **proxmark**: proxmark-3.md {{#endref}} -### Building a Portable HID MaxiProx 125 kHz Mobile Cloner +### MiFare Classic offline stored-value tampering (broken Crypto1) -यदि आपको **लॉन्ग-रेंज**, **बैटरी-पावर्ड** समाधान की आवश्यकता है ताकि आप रेड-टीम एंगेजमेंट के दौरान HID Prox® बैज को इकट्ठा कर सकें, तो आप दीवार पर लगे **HID MaxiProx 5375** रीडर को एक स्वायत्त क्लोनर में परिवर्तित कर सकते हैं जो एक बैकपैक में फिट हो। पूरा मैकेनिकल और इलेक्ट्रिकल वॉक-थ्रू यहाँ उपलब्ध है: +जब कोई सिस्टम monetary balance सीधे MiFare Classic कार्ड पर स्टोर करता है, तो आप अक्सर इसे manipulate कर सकते हैं क्योंकि Classic NXP के deprecated Crypto1 cipher का उपयोग करता है। Crypto1 वर्षों से broken है, जिससे sector keys की recovery और कार्ड memory का पूर्ण read/write commodity hardware (उदा., Proxmark3) के साथ संभव है। + +End-to-end workflow (abstracted): + +1) Dump the original card and recover keys +```bash +# Attempt all built-in Classic key recovery attacks and dump the card +hf mf autopwn +``` +This typically recovers sector keys (A/B) and generates a full-card dump in the client dumps folder. + +2) value/integrity fields को ढूंढें और समझें + +- मूल कार्ड पर वैध top-ups करें और कई dumps लें (before/after). +- दोनों dumps का diff करें ताकि उन बदलने वाले blocks/bytes की पहचान हो सके जो balance और किसी भी integrity fields का प्रतिनिधित्व करते हैं. +- कई Classic deployments या तो native "value block" encoding का उपयोग करते हैं या अपने खुद के checksums बनाते हैं (e.g., XOR of the balance with another field and a constant). balance बदलने के बाद, integrity bytes को फिर से गणना करें और सुनिश्चित करें कि सभी duplicated/complemented fields consistent हों. + +3) संशोधित dump को एक writable “Chinese magic” Classic tag पर लिखें +```bash +# Load a modified binary dump onto a UID-changeable Classic tag +hf mf cload -f modified.bin +``` +4) मूल UID क्लोन करें ताकि टर्मिनल कार्ड को पहचान सके +```bash +# Set the UID on a UID-changeable tag (gen1a/gen2 magic) +hf mf csetuid -u +``` +5) टर्मिनलों पर उपयोग + +जो रीडर कार्ड पर मौजूद बैलेंस और UID पर भरोसा करते हैं, वे बदला हुआ कार्ड स्वीकार कर लेंगे। फील्ड पर्यवेक्षण दिखाते हैं कि कई डिप्लॉयमेंट्स बैलेंस को फ़ील्ड की चौड़ाई के आधार पर कैप कर देते हैं (उदा., 16-bit fixed-point)। + +नोट्स + +- यदि सिस्टम native Classic value blocks का उपयोग करता है, तो फॉर्मेट याद रखें: value (4B) + ~value (4B) + value (4B) + block address + ~address. सभी हिस्से मेल खाने चाहिए। +- simple checksums वाले custom formats के लिए, differential analysis बिना firmware रिवर्स किए integrity function निकालने का सबसे तेज़ तरीका है। +- केवल UID-changeable tags ("Chinese magic" gen1a/gen2) block 0/UID लिखने की अनुमति देते हैं। सामान्य Classic cards की UIDs read-only होती हैं। + +हैंड्स-ऑन Proxmark3 commands के लिए, देखें: + + +{{#ref}} +proxmark-3.md +{{#endref}} + +### पोर्टेबल HID MaxiProx 125 kHz मोबाइल क्लोनर बनाना + +यदि आपको red-team engagements के दौरान HID Prox® बैजेस harvest करने के लिए एक **long-range**, **battery-powered** समाधान चाहिए, तो आप wall-mounted **HID MaxiProx 5375** reader को एक self-contained क्लोनर में बदल सकते हैं जो बैकपैक में फिट हो जाता है। पूरी मैकेनिकल और इलेक्ट्रिकल वॉक‑थ्रू यहाँ उपलब्ध है: {{#ref}} @@ -106,9 +152,12 @@ maxiprox-mobile-cloner.md --- -## References +## संदर्भ - [https://blog.flipperzero.one/rfid/](https://blog.flipperzero.one/rfid/) - [Let's Clone a Cloner – Part 3 (TrustedSec)](https://trustedsec.com/blog/lets-clone-a-cloner-part-3-putting-it-all-together) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [MIFARE security overview (Wikipedia)](https://en.wikipedia.org/wiki/MIFARE#Security) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/todo/radio-hacking/proxmark-3.md b/src/todo/radio-hacking/proxmark-3.md index d04071444..5b8e92920 100644 --- a/src/todo/radio-hacking/proxmark-3.md +++ b/src/todo/radio-hacking/proxmark-3.md @@ -2,17 +2,17 @@ {{#include ../../banners/hacktricks-training.md}} -## Proxmark3 के साथ RFID सिस्टम पर हमला करना +## Proxmark3 के साथ RFID Systems पर हमला -आपको जो पहली चीज़ करने की ज़रूरत है वह है [**Proxmark3**](https://proxmark.com) होना और [**सॉफ़्टवेयर और इसके निर्भरताएँ स्थापित करना**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). +The first thing you need to do is to have a [**Proxmark3**](https://proxmark.com) and [**install the software and it's dependencie**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux)[**s**](https://github.com/Proxmark/proxmark3/wiki/Kali-Linux). -### MIFARE Classic 1KB पर हमला करना +### MIFARE Classic 1KB पर हमला -इसमें **16 सेक्टर** हैं, प्रत्येक में **4 ब्लॉक** हैं और प्रत्येक ब्लॉक में **16B** होता है। UID सेक्टर 0 ब्लॉक 0 में है (और इसे बदला नहीं जा सकता)।\ -प्रत्येक सेक्टर तक पहुँचने के लिए आपको **2 कुंजी** (**A** और **B**) की आवश्यकता होती है जो **प्रत्येक सेक्टर के ब्लॉक 3** (सेक्टर ट्रेलर) में संग्रहीत होती हैं। सेक्टर ट्रेलर में **एक्सेस बिट्स** भी होते हैं जो **प्रत्येक ब्लॉक** पर **पढ़ने और लिखने** की अनुमति देते हैं, 2 कुंजियों का उपयोग करके।\ -2 कुंजियाँ पढ़ने की अनुमति देने के लिए उपयोगी होती हैं यदि आप पहली को जानते हैं और लिखने के लिए यदि आप दूसरी को जानते हैं (उदाहरण के लिए)। +इसमें **16 sectors** हैं, प्रत्येक में **4 blocks** हैं और प्रत्येक block में **16B** होते हैं। UID sector 0 block 0 में है (और बदला नहीं जा सकता).\ +प्रत्येक sector में पहुँचने के लिये आपको **2 keys** (**A** और **B**) चाहिए जो **block 3 of each sector** (sector trailer) में स्टोर रहती हैं। sector trailer में वही **access bits** भी स्टोर रहते हैं जो 2 keys का उपयोग करके **each block** पर **read and write** permissions देते हैं।\ +2 keys इस तरह उपयोगी होते हैं कि अगर आप पहले key को जानते हैं तो read की अनुमति मिल सकती है और दूसरे को जानते हैं तो write (उदाहरण के लिये)। -कई हमले किए जा सकते हैं +कई प्रकार के attacks किए जा सकते हैं ```bash proxmark3> hf mf #List attacks @@ -31,11 +31,39 @@ proxmark3> hf mf eset 01 000102030405060708090a0b0c0d0e0f # Write those bytes to proxmark3> hf mf eget 01 # Read block 1 proxmark3> hf mf wrbl 01 B FFFFFFFFFFFF 000102030405060708090a0b0c0d0e0f # Write to the card ``` -Proxmark3 अन्य क्रियाएँ करने की अनुमति देता है जैसे **eavesdropping** एक **Tag to Reader communication** ताकि संवेदनशील डेटा खोजा जा सके। इस कार्ड में आप बस संचार को स्निफ कर सकते हैं और उपयोग किए गए कुंजी की गणना कर सकते हैं क्योंकि **उपयोग की गई क्रिप्टोग्राफिक ऑपरेशंस कमजोर हैं** और स्पष्ट और सिफर पाठ को जानकर आप इसे गणना कर सकते हैं (`mfkey64` टूल)। +The Proxmark3 अन्य क्रियाएँ भी करने की अनुमति देता है, जैसे संवेदनशील डेटा खोजने की कोशिश के लिए **eavesdropping** करना — एक **Tag to Reader communication**। इस कार्ड में आप संचार को बस sniff कर सकते हैं और प्रयुक्त कुंजी की गणना कर सकते हैं क्योंकि **cryptographic operations used are weak** और plain और cipher text जानने पर आप इसे (`mfkey64` tool) से निकाल सकते हैं। -### कच्चे आदेश +#### MiFare Classic के लिए stored-value दुरुपयोग का त्वरित वर्कफ़्लो -IoT सिस्टम कभी-कभी **nonbranded या noncommercial tags** का उपयोग करते हैं। इस मामले में, आप Proxmark3 का उपयोग करके कस्टम **कच्चे आदेश टैग को भेज सकते हैं**। +जब टर्मिनल Classic कार्ड्स पर बैलेंस स्टोर करते हैं, तो एक सामान्य end-to-end फ्लो इस प्रकार होता है: +```bash +# 1) Recover sector keys and dump full card +proxmark3> hf mf autopwn + +# 2) Modify dump offline (adjust balance + integrity bytes) +# Use diffing of before/after top-up dumps to locate fields + +# 3) Write modified dump to a UID-changeable ("Chinese magic") tag +proxmark3> hf mf cload -f modified.bin + +# 4) Clone original UID so readers recognize the card +proxmark3> hf mf csetuid -u +``` +नोट्स + +- `hf mf autopwn` nested/darkside/HardNested-style हमलों का संचालन करता है, keys पुनः प्राप्त करता है, और client dumps फ़ोल्डर में dumps बनाता है। +- ब्लॉक 0/UID लिखना केवल magic gen1a/gen2 cards पर ही काम करता है। सामान्य Classic cards का UID read-only होता है। +- कई तैनातीयों में Classic "value blocks" या साधारण checksums का उपयोग होता है। संपादन के बाद सुनिश्चित करें कि सभी duplicated/complemented fields और checksums सुसंगत हों। + +See a higher-level methodology and mitigations in: + +{{#ref}} +pentesting-rfid.md +{{#endref}} + +### रॉ कमांड्स + +IoT सिस्टम कभी-कभी **nonbranded या noncommercial tags** का उपयोग करते हैं। इस स्थिति में, आप Proxmark3 का उपयोग करके tags को कस्टम **raw commands भेज सकते हैं**। ```bash proxmark3> hf search UID : 80 55 4b 6c ATQA : 00 04 SAK : 08 [2] @@ -45,14 +73,21 @@ No chinese magic backdoor command detected Prng detection: WEAK Valid ISO14443A Tag Found - Quiting Search ``` -इस जानकारी के साथ, आप कार्ड के बारे में और इसके साथ संवाद करने के तरीके के बारे में जानकारी खोजने की कोशिश कर सकते हैं। Proxmark3 कच्चे कमांड भेजने की अनुमति देता है जैसे: `hf 14a raw -p -b 7 26` +इस जानकारी के साथ आप कार्ड और उससे संवाद करने के तरीके के बारे में जानकारी खोजने की कोशिश कर सकते हैं। Proxmark3 आपको raw कमांड भेजने की अनुमति देता है जैसे: `hf 14a raw -p -b 7 26` -### स्क्रिप्ट +### Scripts -Proxmark3 सॉफ़्टवेयर में **स्वचालन स्क्रिप्ट** की एक पूर्व लोड की गई सूची होती है जिसका उपयोग आप सरल कार्यों को करने के लिए कर सकते हैं। पूरी सूची प्राप्त करने के लिए, `script list` कमांड का उपयोग करें। इसके बाद, स्क्रिप्ट के नाम के साथ `script run` कमांड का उपयोग करें: +Proxmark3 सॉफ़्टवेयर में पहले से लोड की गई **automation scripts** की एक सूची आती है जिसे आप सरल कार्यों को निष्पादित करने के लिए उपयोग कर सकते हैं। पूरी सूची प्राप्त करने के लिए `script list` कमांड का उपयोग करें। फिर, `script run` कमांड का उपयोग करें, उसके बाद स्क्रिप्ट का नाम लिखें: ``` proxmark3> script run mfkeys ``` -आप एक स्क्रिप्ट बना सकते हैं ताकि **फज़ टैग रीडर्स** को, इसलिए एक **मान्य कार्ड** का डेटा कॉपी करने के लिए बस एक **Lua स्क्रिप्ट** लिखें जो एक या अधिक यादृच्छिक **बाइट्स** को **रैंडमाइज़** करे और जांचें कि क्या **रीडर क्रैश** होता है किसी भी पुनरावृत्ति के साथ। +आप एक स्क्रिप्ट बना सकते हैं ताकि **fuzz tag readers**, इसलिए किसी **valid card** के डेटा की कॉपी लेकर बस एक **Lua script** लिखें जो एक या अधिक **bytes** को **randomize** करे और जांचे कि किसी भी iteration में **reader crashes** होता है या नहीं। + +## संदर्भ + +- [Proxmark3 wiki: HF MIFARE](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Mifare) +- [Proxmark3 wiki: HF Magic cards](https://github.com/RfidResearchGroup/proxmark3/wiki/HF-Magic-cards) +- [NXP statement on MIFARE Classic Crypto1](https://www.mifare.net/en/products/chip-card-ics/mifare-classic/security-statement-on-crypto1-implementations/) +- [NFC card vulnerability exploitation in KioSoft Stored Value (SEC Consult)](https://sec-consult.com/vulnerability-lab/advisory/nfc-card-vulnerability-exploitation-leading-to-free-top-up-kiosoft-payment-solution/) {{#include ../../banners/hacktricks-training.md}}