
अन्य होस्टों के विभिन्न दृष्टिकोणों से नेटवर्क दृश्यता बढ़ाएँ
युद्ध में, CornerShot एक हथियार है जो एक सैनिक को बिना जोखिम के कोने के पीछे देखने (और संभवतः गोली चलाने) की अनुमति देता है। इसी प्रकार, CornerShot पैकेज किसी दूरस्थ होस्ट के नेटवर्क एक्सेस को देखने की अनुमति देता है, बिना उस होस्ट पर किसी विशेष विशेषाधिकार की आवश्यकता के।
CornerShot का उपयोग करके, एक स्रोत, जिसके पास कैरियर तक नेटवर्क पहुंच है, यह निर्धारित कर सकता है कि किसी विशिष्ट पोर्ट p के लिए कैरियर और लक्ष्य के बीच नेटवर्क पहुंच है या नहीं।
उदाहरण के लिए, मान लेते हैं कि एक रेड टीम "समझौता" किए गए स्रोत होस्ट A से लक्ष्य होस्ट X तक प्रसार करने का प्रयास कर रही है, जिस तक होस्ट A की पहुंच नहीं है। यदि वे होस्ट B के माध्यम से प्रसार करते हैं, तभी उन्हें पता चलेगा कि होस्ट B और X के बीच नेटवर्क पहुंच नहीं है।
CornerShot का उपयोग करके, टीम पता लगा सकती है कि होस्ट C के पास वास्तव में लक्ष्य X तक पहुंच है, इसलिए लक्ष्य X की ओर प्रसार पहले होस्ट C के माध्यम से होना चाहिए।
+-----+ +-----+ +-----+
| | | | filtered | |
| A +--------> B +----X--->(p) X |
| | | | | |
+-----+ +-----+ +-(p)-+
source carrier target
+ ^
| |
| +-----+ |
| | | open |
+---------->+ C +-------------+
| |
+-----+
nmap के समान, CornerShot पोर्ट की निम्नलिखित स्थितियों के बीच अंतर करता है: खुला, बंद, फ़िल्टर्ड और अज्ञात (यदि निर्धारित नहीं किया जा सकता)।
निम्नलिखित डेमो दो कैरियर होस्ट 172.0.1.12 और 172.0.1.13 के विरुद्ध CornerShot चलाने को दर्शाता है, ताकि यह निर्धारित किया जा सके कि उनके पास 192.168.200.1 तक नेटवर्क पहुंच है या नहीं:

यहाँ और पढ़ें।
नेटवर्क में किसी होस्ट B की होस्ट C तक पहुंच की पहचान करने का सरल प्रतीत होने वाला कार्य, नेटवर्क सेंसर, डिवाइस एजेंटों की बड़े पैमाने पर तैनाती या फ़ायरवॉल नियमों, राउटर कॉन्फ़िगरेशन और होस्ट नीतियों के संग्रह की आवश्यकता हो सकती है।
CornerShot एक (या बहुत कम) एजेंटों का उपयोग करके इस प्रक्रिया को सरल बना सकता है जो नेटवर्क में अन्य होस्ट से पूछताछ करके दूरस्थ होस्ट तक उनकी पहुंच निर्धारित कर सकते हैं।
सुरक्षा टीमें जो अपने नेटवर्क के अंदर विशेषाधिकार वृद्धि पथों को खोजने और कम करने के लिए BloodHound का उपयोग करती हैं, अक्सर BloodHound द्वारा खोजे गए लाखों तार्किक पथों से जूझती हैं।
ShotHound एक उपकरण है जो नेटवर्क पहुंच द्वारा समर्थित व्यावहारिक पथों की खोज करने के लिए CornerShot को BloodHound के साथ एकीकृत करता है।
CornerShot को एक पैकेज के रूप में या एक स्टैंडअलोन मॉड्यूल के रूप में उपयोग किया जा सकता है। एकमात्र आवश्यकताएँ Python 3 और impacket पैकेज हैं।
pip install cornershot
मूल उपयोग के लिए एक वैध डोमेन उपयोगकर्ता के क्रेडेंशियल, एक FQDN डोमेन, एक कैरियर IP और लक्ष्य IP की आवश्यकता होती है।
python -m cornershot <user> <password> <domain> <carrier> <target>
कैरियर की एक श्रेणी को लक्ष्यों की एक श्रेणी के विरुद्ध स्कैन करने के लिए, सबनेट या IP रेंज का उपयोग अल्पविराम से सीमांकित सूची में किया जा सकता है:
python -m cornershot <user> <password> <domain> 192.168.1.10-192.168.1.20 192.168.5.0/24,192.168.6.0/24
डिफ़ॉल्ट रूप से, CornerShot निम्नलिखित पोर्ट को स्कैन करने का प्रयास करेगा: 135, 445, 3389, 5985, 5986. उपयोगकर्ता पोर्ट और पोर्ट रेंज की अल्पविराम से सीमांकित सूची प्रदान कर सकता है:
python -m cornershot -tp 22,8080,45000-45005 <user> <password> <domain> <carrier> <target>
कोड के भीतर, एक वैध डोमेन उपयोगकर्ता के उपयोगकर्ता नाम, पासवर्ड और डोमेन नाम के साथ CornerShot ऑब्जेक्ट को इंस्टैंशिएट करना आवश्यक है। कैरियर, लक्ष्य और पोर्ट जोड़ना add_shots विधि के माध्यम से प्राप्त किया जाता है। तैयार होने पर, open_fire विधि को कॉल किया जा सकता है, जो आवश्यक पोर्ट के आधार पर केवल प्रासंगिक RPC कॉल करता है।
from cornershot import CornerShot
cs = CornerShot("username", "password", "fqdn")
cs.add_shots(carriers=["192.168.1.1"],targets=["192.168.1.2","192.168.1.3"])
results = cs.open_fire()
open_fire का परिणाम एक शब्दकोश है जिसमें कैरियर की कुंजियाँ हैं, प्रत्येक कैरियर के पास लक्ष्यों के लिए कुंजियों का एक और सेट है, और अंत में, प्रत्येक लक्ष्य पोर्ट और उनकी संबंधित स्थितियों का एक शब्दकोश रखता है। यह परिणाम का एक उदाहरण प्रारूप है:
{'carrier_1':
{'target_1':
{135: 'unknown', 445: 'filtered', 3389: 'filtered', 5986: 'filtered', 5985: 'filtered'},
'target_2':
{135: 'unknown', 445: 'open', 5985: 'unknown', 5986: 'filtered', 3389: 'open'}
},
'carrier_2':
{'target_1':
{3389: 'filtered', 135: 'filtered', 5985: 'filtered', 445: 'filtered', 5986: 'unknown'},
'target_2':
{5985: 'filtered', 5986: 'filtered', 445: 'filtered', 135: 'filtered', 3389: 'open'}
}
}
CornerShot विभिन्न, सुप्रलेखित, मानक दूरस्थ प्रक्रिया कॉल (RPC) विधियों पर निर्भर करता है जिनका उपयोग विभिन्न Microsoft सेवाओं द्वारा किया जाता है। डोमेन में केवल एक प्रमाणित खाते की आवश्यकता वाली विधियों का उपयोग करके, CornerShot कैरियर होस्ट से लक्ष्य तक नेटवर्क ट्रैफ़िक को ट्रिगर करने में सक्षम है।
CornerShot एक RPC कॉल में लगने वाले समय को मापकर और प्रत्येक RPC विधि के लिए विभिन्न त्रुटि कोड का उपयोग करके रिमोट के पोर्ट की स्थिति निर्धारित करने में सक्षम है।