Lucene search

K
kitploitKitPloitKITPLOIT:648469287269586263
HistoryFeb 17, 2023 - 11:30 a.m.

OffensivePipeline - Allows You To Download And Build C# Tools, Applying Certain Modifications In Order To Improve Their Evasion For Red Team Exercises

2023-02-1711:30:00
www.kitploit.com
456

5.5 Medium

CVSS3

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

9.3 High

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:C/I:C/A:C

0.451 Medium

EPSS

Percentile

97.4%


OfensivePipeline allows you to download and build C# tools, applying certain modifications in order to improve their evasion for Red Team exercises.
A common use of OffensivePipeline is to download a tool from a Git repository, randomise certain values in the project, build it, obfuscate the resulting binary and generate a shellcode.

Features

  • Currently only supports C# (.Net Framework) projects
  • Allows to clone public and private (you will need credentials :D) git repositories
  • Allows to work with local folders
  • Randomizes project GUIDs
  • Randomizes application information contained in AssemblyInfo
  • Builds C# projects
  • Obfuscates generated binaries
  • Generates shellcodes from binaries
  • There are 79 tools parameterised in YML templates (not all of them may work :D)
  • New tools can be added using YML templates
  • It should be easy to add new plugins…

What’s new in version 2.0

  • Almost complete code rewrite (new bugs?)
  • Cloning from private repositories possible (authentication via GitHub authToken)
  • Possibility to copy a local folder instead of cloning from a remote repository
  • New module to generate shellcodes with Donut
  • New module to randomize GUIDs of applications
  • New module to randomize the AssemblyInfo of each application
  • 60 new tools added

Examples

  • List all tools:

    OffensivePipeline.exe list

  • Build all tools:

    OffensivePipeline.exe all

  • Build a tool

    OffensivePipeline.exe t toolName

  • Clean cloned and build tools

    OffensivePipeline.exe

Output example

PS C:\OffensivePipeline> .\OffensivePipeline.exe t rubeus  
  
                                                                                                   ooo  
                                                                                           .osooooM M  
      ___   __  __                _           ____  _            _ _                      +y.     M M  
     / _ \ / _|/ _| ___ _ __  ___(_)_   _____|  _ \(_)_ __   ___| (_)_ __   ___           :h  .yoooMoM  
    | | | | |_| |_ / _ \ '_ \/ __| \ \ / / _ \ |_) | | '_ \ / _ \ | | '_ \ / _ \          oo  oo  
    | |_| |  _|  _|  __/ | | \__ \ |\ V /  __/  __/| | |_) |  __/ | | | | |  __/          oo  oo  
     \___/|_| |_|  \___|_| |_|___/_| \_/ \___|_|   |_| .__/ \___|_|_|_| |_|\___|          oo  oo  
                                                     |_|                            MoMoooy.  h:  
                                                                                       M M     .y+  
                                                                                    M Mooooso.  
                                                                                    ooo  
  
                                                                    @aetsu  
                                                                                v2.0.0  
  
  
[+] Loading tool: Rubeus  
    Clonnig repository: Rubeus into C:\OffensivePipeline\Git\Rubeus  
                 Repository Rubeus cloned into C:\OffensivePipeline\Git\Rubeus  
  
    [+] Load RandomGuid module  
        Searching GUIDs...  
                > C:\OffensivePipeline\Git\Rubeus\Rubeus.sln  
                > C:\OffensivePipeline\Git\Rubeus\Rubeus\Rubeus.csproj  
                > C:\OffensivePipeline\Git\Rubeus\Rubeus\Properties\AssemblyInfo.cs  
        Replacing GUIDs...  
                File C:\OffensivePipeline\Git\Rubeus\Rubeus.sln:  
                           > Replacing GUID 658C8B7F-3664-4A95-9572-A3E5871DFC06 with 3bd82351-ac9a-4403-b1e7-9660e698d286  
                        > Replacing GUID FAE04EC0-301F-11D3-BF4B-00C04F79EFBC with 619876c2-5a8b-4c48-93c3-f87ca520ac5e  
                        > Replacing GUID 658c8b7f-3664-4a95-9572-a3e5871dfc06 with 11e0084e-937f-46d7-83b5-38a496bf278a  
                [+] No errors!  
                File C:\OffensivePipeline\Git\Rubeus\Rubeus\Rubeus.csproj:  
                        > Replacing GUID 658C8B7F-3664-4A95-9572-A3E5871DFC06 with 3bd82351-ac9a-4403-b1e7-9660e698d286  
                        > Replacing GUID FAE04EC0-301F-11D3-BF4B-00C04F79EFBC with 619876c2-5a8b-4c48-93c3-f87ca520ac5e  
                        > Replacing GUID 658c8b7f-3664-4a95-9572-a3e5871dfc06 with 11e0084e-937f-46d7-83b5-38a496bf278a  
                [+] No errors!  
                File C:\OffensivePipeline\Git\Rubeus\Rubeus\Properties\AssemblyInfo.cs:  
                           > Replacing GUID 658C8B7F-3664-4A95-9572-A3E5871DFC06 with 3bd82351-ac9a-4403-b1e7-9660e698d286  
                        > Replacing GUID FAE04EC0-301F-11D3-BF4B-00C04F79EFBC with 619876c2-5a8b-4c48-93c3-f87ca520ac5e  
                        > Replacing GUID 658c8b7f-3664-4a95-9572-a3e5871dfc06 with 11e0084e-937f-46d7-83b5-38a496bf278a  
                [+] No errors!  
  
  
    [+] Load RandomAssemblyInfo module  
        Replacing strings in C:\OffensivePipeline\Git\Rubeus\Rubeus\Properties\AssemblyInfo.cs  
                [assembly: AssemblyTitle("Rubeus")] -> [assembly: AssemblyTitle("g4ef3fvphre")]  
                [assembly: AssemblyDescription("")] -> [assembly: AssemblyDescription("")]  
                [assembly: AssemblyConfiguration("")] -> [assembly: AssemblyConfiguration("")]  
                [assembly: AssemblyCompany("")] -> [assembly: AssemblyCompany("")]  
                [assembly: AssemblyProduc   t("Rubeus")] -> [assembly: AssemblyProduct("g4ef3fvphre")]  
                [assembly: AssemblyCopyright("Copyright ©  2018")] -> [assembly: AssemblyCopyright("Copyright ©  2018")]  
                [assembly: AssemblyTrademark("")] -> [assembly: AssemblyTrademark("")]  
                [assembly: AssemblyCulture("")] -> [assembly: AssemblyCulture("")]  
  
  
    [+] Load BuildCsharp module  
        [+] Checking requirements...  
        [*] Downloading nuget.exe from https://dist.nuget.org/win-x86-commandline/latest/nuget.exe  
                [+] Download OK - nuget.exe  
                [+] Path found - C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\VsDevCmd.bat  
        Solving dependences with nuget...  
        Building solution...  
                [+] No errors!  
                [+] Output folder: C:\OffensivePipeline\Output\Rubeus_vh00nc50xud  
  
  
    [+] Load ConfuserEx module  
        [+] Checking requirements...  
        [+] Downloading ConfuserEx from https://github.com/mkaring/ConfuserEx/releases/download/v1.6.0/ConfuserEx-CLI.zip  
                [+] Download OK - ConfuserEx  
        Confusing...  
                [+] No errors!  
  
  
    [+] Load Donut module  
        Generating shellcode...  
  
Payload options:  
        Domain: RMM6XFC3  
        Runtime:v4.0.30319  
  
Raw Payload: C:\OffensivePipeline\Output\Rubeus_vh00nc50xud\ConfuserEx\Donut\Rubeus.bin  
B64 Payload: C:\OffensivePipeline\Output\Rubeus_vh00nc50xud\ConfuserEx\Donut\Rubeus.bin.b64  
  
                [+] No errors!  
  
  
    [+] Generating Sha256 hashes  
                Output file: C:\OffensivePipeline\Output\Rubeus_vh00nc50xud  
  
  
-----------------------------------------------------------------  
                SUMMARY  
  
 - Rubeus  
         - RandomGuid: OK  
         - RandomAssemblyInfo: OK  
            - BuildCsharp: OK  
         - ConfuserEx: OK  
         - Donut: OK  
  
-----------------------------------------------------------------  

Plugins

  • RandomGuid: randomise the GUID in .sln, .csproj and AssemblyInfo.cs files
  • RandomAssemblyInfo: randomise the values defined in AssemblyInfo.cs
  • BuildCsharp: build c# project
  • ConfuserEx: obfuscate c# tools
  • Donut: use Donut to generate shellcodes. The shellcode generated is without parameters, in future releases this may be changed.

Add a tool from a remote git

The scripts for downloading the tools are in the Tools folder in yml format. New tools can be added by creating new yml files with the following format:

  • Rubeus.yml file:

    tool:

    • name: Rubeus
      description: Rubeus is a C# toolset for raw Kerberos interaction and abuses
      gitLink: https://github.com/GhostPack/Rubeus
      solutionPath: Rubeus\Rubeus.sln
      language: c#
      plugins: RandomGuid, RandomAssemblyInfo, BuildCsharp, ConfuserEx, Donut
      authUser:
      authToken:

Where:

  • Name: name of the tool
  • Description: tool description
  • GitLink: link from git to clone
  • SolutionPath: solution (sln file) path
  • Language: language used (currently only c# is supported)
  • Plugins: plugins to use on this tool build process
  • AuthUser: user name from github (not used for public repositories)
  • AuthToken: auth token from github (not used for public repositories)

Add a tool from a private git

tool:  
  - name: SharpHound3-Custom  
    description: C# Rewrite of the BloodHound Ingestor  
    gitLink: https://github.com/aaaaaaa/SharpHound3-Custom  
    solutionPath: SharpHound3-Custom\SharpHound3.sln  
    language: c#  
    plugins: RandomGuid, RandomAssemblyInfo, BuildCsharp, ConfuserEx, Donut  
    authUser: aaaaaaa  
    authToken: abcdefghijklmnopqrsthtnf

Where:

  • Name: name of the tool
  • Description: tool description
  • GitLink: link from git to clone
  • SolutionPath: solution (sln file) path
  • Language: language used (currently only c# is supported)
  • Plugins: plugins to user on this tool build process
  • AuthUser: user name from GitHub
  • AuthToken: auth token from GitHub (documented at GitHub: creating a personal access token)

Add a tool from local git folder

tool:  
  - name: SeatbeltLocal  
    description: Seatbelt is a C# project that performs a number of security oriented host-survey "safety checks" relevant from both offensive and defensive security perspectives.  
    gitLink: C:\Users\alpha\Desktop\SeatbeltLocal  
    solutionPath: SeatbeltLocal\Seatbelt.sln  
    language: c#  
    plugins: RandomGuid, RandomAssemblyInfo, BuildCsharp, ConfuserEx, Donut  
    authUser:  
    authToken: 

Where:

  • Name: name of the tool
  • Description: tool description
  • GitLink: path where the tool is located
  • SolutionPath: solution (sln file) path
  • Language: language used (currently only c# is supported)
  • Plugins: plugins to user on this tool build process
  • AuthUser: user name from github (not used for local repositories)
  • AuthToken: auth token from github (not used for local repositories)

Requirements for the release version (Visual Studio 2019/2022 is not required)

In the OffensivePipeline.dll.config file it’s possible to change the version of the build tools used.

  • Build Tools 2019:

    <add key=“BuildCSharpTools” value=“C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\Tools\VsDevCmd.bat”/>

  • Build Tools 2022:

    <add key=“BuildCSharpTools” value=“C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools\VsDevCmd.bat”/>

Requirements for build

Credits

Supported tools

Download OffensivePipeline

References

5.5 Medium

CVSS3

Attack Vector

LOCAL

Attack Complexity

LOW

Privileges Required

LOW

User Interaction

NONE

Scope

UNCHANGED

Confidentiality Impact

HIGH

Integrity Impact

NONE

Availability Impact

NONE

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

9.3 High

CVSS2

Access Vector

NETWORK

Access Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:C/I:C/A:C

0.451 Medium

EPSS

Percentile

97.4%