
C# लक्षित हमले की टोह लेने वाले उपकरण
यह एक कस्टम .NET असेंबली है जो कई स्थितिजन्य जागरूकता (situational awareness) गतिविधियाँ करती है। वर्तमान में कई फीचरसेट (featuresets) हैं:
मुझे नहीं पता था कि GhostPack तब विकसित किया जा रहा था जब मैंने यह लिखा था; हमने लगभग उसी समय अपने टूल जारी किए। हकीकत यह है कि GhostPack अब कहीं अधिक फीचर-समृद्ध है। मैं PrivescCheck फंक्शन को हटा रहा हूँ क्योंकि SharpUp इसकी सभी कार्यक्षमताओं और अधिक को कवर करता है।
मुख्य बिंदु यह है कि यह सब रॉ .NET में लागू किया गया है - इसलिए कोई पावरशेल नहीं।
यह कमांड लाइन पैरामीटर द्वारा कॉन्फ़िगर और नियंत्रित किया जाता है, जो इसे Beacon के execute-assembly निर्देश के साथ उपयोग के लिए उपयुक्त बनाता है।
यह होस्ट से कई प्रकार की जानकारी प्राप्त करता है। सावधान रहें कि बहुत अधिक आउटपुट हो सकता है। यह निम्नलिखित प्रदर्शित करेगा:
कमांड लाइन पर वर्ब 'basic' पास करना होगा, उसके बाद विशिष्ट चेक जो आवश्यक हो। यदि दूसरे पैरामीटर के रूप में शब्द 'all' पास किया जाता है, तो हर चेक किया जाएगा।
ध्यान दें कि यदि 'all' का उपयोग किया जाता है, तो स्वचालित रूप से एक 'proxycheck http://www.google.com' शामिल किया जाता है। विवरण के लिए proxycheck अनुभाग देखें।
सभी बुनियादी जांच करें: beacon> execute-assembly /tmp/Reconerator.exe या beacon> execute-assembly /tmp/Reconerator.exe basic all
केवल mru गणना करें: beacon> execute-assembly /tmp/Reconerator.exe basic mru
केवल मैप किए गए ड्राइव सूचीबद्ध करें: beacon> execute-assembly /tmp/Reconerator.exe basic mappeddrives
काफी हद तक सुरक्षित। यह सिस्टम रजिस्ट्री को क्वेरी कर रहा है; इसके निगरानी किए जाने की संभावना नहीं है।
यह आपको एक LDAP क्वेरी करने की अनुमति देता है। इसे प्रदर्शित करने का सबसे आसान तरीका उदाहरण के द्वारा है।
यह डोमेन 'dc=stufus,dc=lan' पर सभी उपयोगकर्ताओं को डोमेन कंट्रोलर के रूप में W2K8DC के साथ दिखाएगा:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 0
यह डोमेन 'dc=stufus,dc=lan' पर अधिकतम 5 उपयोगकर्ताओं को डोमेन कंट्रोलर के रूप में W2K8DC के साथ दिखाएगा:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "objectClass=user" 5
यह डोमेन 'dc=stufus,dc=lan' पर डोमेन एडमिन समूह के सभी सदस्यों को डोमेन कंट्रोलर के रूप में W2K8DC के साथ दिखाएगा:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2K8DC/dc=stufus,dc=lan" "(&(objectClass=group)(cn=Domain Admins))" 0
यह डोमेन 'dc=stufus,dc=lan' पर डोमेन एडमिन या एंटरप्राइज़ एडमिन समूह के सभी सदस्यों को डोमेन कंट्रोलर के रूप में W2012DC के साथ दिखाएगा:
beacon> execute-assembly /tmp/Reconerator.exe ldap "LDAP://W2012DC/dc=stufus,dc=lan" "(&(objectClass=group)(|(cn=Enterprise Admins)(cn=Domain Admins)))" 0
यह आपके द्वारा निर्दिष्ट डोमेन कंट्रोलर को नेटवर्क ट्रैफ़िक उत्पन्न करेगा। संदेह से बचने के लिए, यह LDAP का उपयोग करता है (RPC या इसी तरह के बजाय)।
यह होस्ट के DNS सर्वर का उपयोग करके एक DNS क्वेरी करता है।
www.google.com को हल करें:
beacon> execute-assembly /tmp/Reconerator.exe resolvehost www.google.com
यह डोमेन कंट्रोलर को एक DNS क्वेरी उत्पन्न करेगा, लेकिन वैध DNS अनुरोधों की भारी मात्रा के कारण इसके अलर्ट के रूप में उठाए जाने की संभावना नहीं है।
यह आपको Windows Search (पहले Windows इंडेक्सिंग सर्विस) के साथ बातचीत करने की अनुमति देता है, जिससे आप दिलचस्प फ़ाइलों और फ़ोल्डरों (और उनकी सामग्री) को बहुत तेज़ी से खोज सकते हैं। ईमेल आमतौर पर अनुक्रमित होते हैं, लेकिन नेटवर्क फ़ोल्डर नहीं होते, इसलिए यदि उपयोगकर्ताओं के होम डायरेक्टरी दूरस्थ रूप से संग्रहीत हैं तो यह उनकी खोज के लिए सही नहीं हो सकता है। हालाँकि, यह बहुत तेज़ है।
Windows Search का इंटरफ़ेस SQL-जैसा है; यह कार्यान्वयन आपको, प्रभाव में, 'WHERE' खंड की सामग्री निर्दिष्ट करने की अनुमति देता है। उदाहरण द्वारा समझाना सबसे आसान है, लेकिन यदि आप हर संभव मानदंड जानना चाहते हैं तो आपको MSDN पढ़ने की आवश्यकता होगी।
वह सब कुछ खोजें जो अनुक्रमित किया गया है और जिसमें कहीं भी 'password' शब्द शामिल है (अर्थात फ़ाइलों और ईमेल की सामग्री खोजता है):
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "CONTAINS('password')"
वह सब कुछ खोजें जो अनुक्रमित किया गया है और जिसमें पथ या फ़ाइलनाम में 'stufus' शब्द है:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemPathDisplay LIKE '%stufus%'"
वह सब कुछ खोजें जो अनुक्रमित किया गया है और जिसमें फ़ाइलनाम में 'stufus' शब्द है या 'secret' शब्द शामिल है:
beacon> execute-assembly /tmp/Reconerator.exe indexsearch "System.ItemName LIKE '%stufus%' OR CONTAINS('secret')"
मुझे ऐसी किसी भी चीज़ के बारे में पता नहीं है जो इसे संदिग्ध के रूप में उठाएगी।
यह प्रॉक्सी सर्वर लौटाता है जिसका उपयोग किसी दिए गए URL पर जाने के लिए किया जाएगा। यह उस स्थिति से निपटने के लिए है जहाँ विभिन्न URL के लिए अलग-अलग प्रॉक्सी हो सकते हैं, या विभिन्न जटिल अपवाद लागू हो सकते हैं। रुचि का URL एक पैरामीटर के रूप में पास किया जाता है।
ध्यान दें कि यदि 'basic all' निर्दिष्ट किया गया है (ऊपर देखें), तो यह स्वचालित रूप से http://www.google.com के लिए एक proxycheck शामिल करता है, इस धारणा पर कि अधिकांश संगठनों में सभी गैर-आंतरिक इंटरनेट एक्सेस के लिए एक आउटबाउंड प्रॉक्सी होता है।
www.google.com पर जाने पर उपयोग किए जाने वाले प्रॉक्सी सर्वर को प्रदर्शित करें:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck www.google.com
https://www.mwrinfosecurity.com पर जाने पर उपयोग किए जाने वाले प्रॉक्सी सर्वर को प्रदर्शित करें:
beacon> execute-assembly /tmp/Reconerator.exe proxycheck https://www.mwrinfosecurity.com
यह एक स्थानीय गतिविधि है और एक वैध गतिविधि है; मुझे ऐसी किसी भी चीज़ के बारे में पता नहीं है जो इसे संदिग्ध के रूप में उठाएगी।
यह कई विशेषाधिकार वृद्धि (privilege escalation) वैक्टरों का पता लगाएगा और रिपोर्ट करेगा कि वे संभव हैं या नहीं। वर्तमान में, वह संख्या 1 है।
ऊपर दिए गए BASIC मॉड्यूल की तरह, privesccheck all को कमांड लाइन पर निर्दिष्ट किया जा सकता है ताकि सभी जाँचों का प्रयास किया जा सके, या यदि आवश्यक हो तो एक विशिष्ट जाँच निर्दिष्ट की जा सकती है।
कमांड लाइन पर वर्ब 'basic' पास करना होगा, उसके बाद विशिष्ट चेक जो आवश्यक हो। यदि दूसरे पैरामीटर के रूप में शब्द 'all' पास किया जाता है, तो हर चेक किया जाएगा।
| Check | विवरण |
|---|---|
| alwaysinstallelevated | जांचें कि 'AlwaysInstallElevated' कुंजी 1 पर सेट है या नहीं। यदि सेट है, तो यह किसी भी MSI फ़ाइल को स्थानीय व्यवस्थापक के रूप में चलाएगा। |
| Check | नोट्स |
|---|---|
| alwaysinstallelevated | यह एक स्थानीय रजिस्ट्री क्वेरी है; इस बात की संभावना नहीं है कि कोई भी चीज़ इसे दुर्भावनापूर्ण के रूप में फ़्लैग करेगी। |
सभी विशेषाधिकार वृद्धि जाँचों का प्रयास करें:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck all
केवल यह जांचें कि AlwaysInstallElevated रजिस्ट्री कुंजी सेट है या नहीं:
beacon> execute-assembly /tmp/Reconerator.exe privesccheck alwaysinstallelevated
इसे Visual Studio 2019 में संकलित करें। यह वर्तमान में .NET v4 को लक्षित करता है। यदि आप चाहें तो संकलन प्राथमिकताओं में इसे बदल सकते हैं।
| Check | विवरण |
|---|
| env | सभी पर्यावरण चर प्रदर्शित करता है। |
| info | होस्ट का IP पता और OS का मेजर/माइनर संस्करण पहचानकर्ता प्रदर्शित करता है। |
| mru | विभिन्न "सबसे हाल ही में उपयोग की गई" सूचियों की खोज करता है। इनमें वर्तमान में Run बॉक्स हिस्ट्री और Word, Excel, Powerpoint, Access, Publisher और Visio के सभी संस्करणों के लिए Office फ़ाइल और पथ MRU शामिल हैं। यह विशेष "Recent" फ़ोल्डर का स्थान भी प्रदर्शित करता है। |
| favourites | पसंदीदा फ़ोल्डर (जो मूलतः उपयोगकर्ता के बुकमार्क हैं) में संग्रहीत URL प्रदर्शित करता है। यह वर्तमान में उपफ़ोल्डर को सपोर्ट नहीं करता है; मुझे इसे ठीक करने की आवश्यकता होगी। |
| mappeddrives | उपयोगकर्ता के सत्र से नेटवर्क मैप की गई ड्राइव प्रदर्शित करता है। केंद्रीय फ़ाइल शेयर और होम डायरेक्टरीज को जल्दी से खोजने के लिए उपयोगी। यदि यह मैप की गई है, तो संभवतः इसमें उपयोगी डेटा होता है। |
| installedapplications | उन एप्लिकेशनों को सूचीबद्ध करता है जो स्थापित किए गए हैं। इसमें वे एप्लिकेशन शामिल हैं जो एक व्यवस्थापक (लोकल मशीन पर) के रूप में स्थापित किए गए हैं और वे एप्लिकेशन जो वर्तमान उपयोगकर्ता द्वारा स्थापित किए गए हैं। वे रजिस्ट्री में अलग-अलग स्थानों पर सूचीबद्ध हैं। |
| onedrive | OneDrive के बारे में जानकारी प्रदर्शित करता है (जिसमें सिंक्रोनाइज़ किए गए टीमसाइट्स/टेनेंट शामिल हैं)। |