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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
gobalance-patch — Sicherheitspatch und Proof-of-Concept für den GoBalance-Onion-Load-Balancer, der die Wiederherstellung des Master-Keys über blindedSign und die Annahme gefälschter Descriptors abdeckt, mit Regressionstests. | Kitploit
Tools/GitHubGitHub/kolmteistov/gobalance-patch
SchwachstellenanalyseExploitationWebanwendungs-ExploitationKryptographiePenetrationstestsLernen & Bildung
GitHubkolmteistov/gobalance-patch

gobalance-patch

Sicherheitspatch und Proof-of-Concept für den GoBalance-Onion-Load-Balancer, der die Wiederherstellung des Master-Keys über blindedSign und die Annahme gefälschter Descriptors abdeckt, mit Regressionstests.

Repository anzeigen
36vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

GoBalance Sicherheitspatch & PoC

Advisory-Paket für gitlab.com/n0tr1v/gobalance - master-Branch, Commit bb1b0f3 ("fix crash"). Status: KRITISCH - zwei unabhängige vollständige Übernahmepfade. Der Upstream-Branch patch1 behebt keinen von beiden.

Dieses Paket enthält einen vollständigen Sicherheitspatch, einen End-to-End-Proof-of-Concept für beide Angriffspfade und Regressionstests, die belegen, dass die Fixes greifen. Es begleitet den vollständigen Schwachstellenanalysebericht ("Laporan Analisis Keamanan GoBalance"), der im Zusammenhang mit den jüngsten Onion-Domain-Übernahmevorfällen erstellt wurde, von denen zwei Foren betroffen waren. Eine Schritt-für-Schritt-Anleitung zum Bauen und Testen findet sich in USAGE.md.


1. Zusammenfassung

#SchwachstelleSchweregradAuswirkungStatus
1Master-Identitätsschlüssel leckt durch blindedSign (konstantes Nonce-Präfix)KRITISCHVollständige Onion-Identitätswiederherstellung aus einem einzigen öffentlichen DeskriptorBehoben
2RegisterDescriptor akzeptiert gefälschte Instanz-Deskriptoren (keine Signatur-/Bindungsverifikation)KRITISCHTraffic-Hijacking jedes GoBalance-FrontendsBehoben
3Deterministischer, zeitbasierter RNG-Pfad in pkg/brandHOCH (Fußangel)Vorhersagbares Schlüsselmaterial für alles, was ihn verwendetEntfernt
4Introduction-Point-Shuffle verwendet math/randNIEDRIGSchwache Zufälligkeit in protokollnahem CodeErsetzt durch crypto/rand

Schwachstelle #1 - Master-Key-Wiederherstellung aus einem öffentlichen Deskriptor (KRITISCH)

Der Dispatcher blindedSign() in pkg/stem/descriptor/hidden_service.go übergab identityKey.Seed() - den rohen 32-Byte-Skalar a - an BlindedSignWithTorKey(). Schlüssel im Tor-Format sind erweiterte Schlüssel: 64 Bytes (a || h), wobei h der PRF-Schlüssel ist, der das Nonce-Präfix pro Signatur ableitet. Da h fehlte, war die Eingabe für die Nonce-Ableitung leer und

kPrime = SHA512("Derive temporary signing key hash input" || <empty>)

wurde zu einer öffentlichen Konstante. Konsequenz: Jeder, der EINEN veröffentlichten Deskriptor lesen kann, kann das Nonce r neu berechnen, den geblindeten Skalar s' = (S − r) · H(R‖PK‖M)⁻¹ mod L auflösen und ihn mit einem öffentlichen Multiplikator entblinden - wodurch der Master-Identitätsschlüssel des Onion-Dienstes wiederhergestellt wird. Kein Serverzugriff, kein MitM, keine Brute Force. Dies ist ein stiller Domain-Übernahme-Primitiv und steht im Einklang mit dem Mechanismus, der bei den jüngsten Forum-Hijacks beobachtet wurde.

Fix: Der Dispatcher leitet nun den vollständigen erweiterten Schlüssel weiter (gobpk.PrivateKey.PrivKey()); BlindedSignWithTorKey löst bei jedem Schlüssel, der nicht genau 64 Bytes lang ist, eine Panik aus; blindedSignP2 erzwingt unabhängig die ESK-Länge als Defense in Depth; gobpk.New lehnt abgeschnittene Tor-Schlüssel beim Laden ab.

Schwachstelle #2 - gefälschte Instanz-Deskriptoren akzeptiert (KRITISCH)

NewReceivedDescriptor() parste und vertraute allem, was das Netzwerk ihm übergab. Da Subcredentials aus dem geblindeten Schlüssel abgeleitet werden, der im Deskriptor selbst mitgeführt wird, konnte ein Angreifer kryptografisch selbstkonsistente Deskriptoren für die Onion-Adresse eines anderen mit seinen eigenen Schlüsseln erzeugen. Das Frontend würde dann die Introduction Points des Angreifers unter der Identität des Opfers erneut veröffentlichen - ein vollständiges Traffic-Hijacking, das überhaupt keine Schlüsselwiederherstellung erfordert.

Fix: dreischichtige Verifikation im neuen VerifyHiddenServiceDescriptorV3(): (1) Zertifikatssignatur unter dem geblindeten Schlüssel, (2) Deskriptorsignatur unter dem zertifizierten Signaturschlüssel und (3) Bindung - der geblindete Schlüssel muss dem Wert entsprechen, den das Frontend unabhängig aus dem Konsens (GetBlindingParam + Zeitperiode) und der Instanzadresse berechnet. RegisterDescriptor ist fail-closed: ohne einen lebenden Konsens verweigert es die Registrierung, statt blind zu vertrauen.

2. Was in diesem Paket enthalten ist

gobalance-patch/
├── README.md                  ← this file (English)
├── USAGE.md                   ← step-by-step build & test guide (English)
├── README_ID.md               ← ringkasan patch (Bahasa Indonesia)
├── gobalance-security.patch   ← unified diff against master@bb1b0f3 (7 files, +360/−94)
├── gobalance-patched/         ← full pre-patched source tree (drop-in)
│   ├── go.mod / go.sum / main.go
│   ├── pkg/…                  ← patched libraries, incl. regression tests
│   ├── poc/                   ← end-to-end attack demo + vulnerable code snapshot
│   ├── cmd/gbdemo/            ← standalone recovery demo CLI (+ E2E tests) - USAGE #13
│   └── tools/                 ← pem2tor.py (PEM→Tor key converter), get_desc.py (descriptor fetch)
└── gobalance-v1/              ← community fork "GoBalance Enhanced v1.0" (Dread), bundled
                                 as distributed for testing - still VULNERABLE - USAGE #14

3. Schnellstart

# Option A - patch a fresh upstream checkout
git clone https://gitlab.com/n0tr1v/gobalance && cd gobalance
git apply /path/to/gobalance-security.patch
go build ./... && go test ./...

# Option B - use the bundled pre-patched tree (fastest)
cd gobalance-patched
go build ./...
go test ./poc/ -v      # attack demo: succeeds vs vulnerable snapshot, fails vs patch
go test ./...          # full suite: 8 packages ok

Siehe USAGE.md für die vollständige Schritt-für-Schritt-Anleitung mit erwarteter Ausgabe.

4. Was der PoC beweist

  1. Angriff (verwundbarer Code): Der Master-Skalar wird aus einem einzigen öffentlichen Deskriptor wiederhergestellt, und eine Signatur für eine zukünftige Zeitperiode, die mit dem wiederhergestellten Schlüssel gefälscht wurde, ist byte-für-byte identisch mit der echten Signatur des Opfers - Test01_Vulnerable_MasterKeyRecoveredFromSingleDescriptor.
  2. Verteidigung: Der gepatchte Build lehnt den abgeschnittenen 32-Byte-Tor-Schlüssel mit einer expliziten Panik ab, die das Risiko benennt - Test02_Patched_TruncatedTorKeyRejected.
  3. Kompatibilität: Gepatchte Tor-Pfad-Signaturen verifizieren weiterhin als Standard- ed25519 unter dem geblindeten öffentlichen Schlüssel, sodass die Tor-Interoperabilität unverändert bleibt - Test03_Patched_TorPathSignaturesVerifyAsStdEd25519.
  4. Verteidigung: Das erneute Ausführen derselben Angriffsmathematik gegen gepatchten Code liefert Müll, der nicht mehr mit dem echten Master-Skalar übereinstimmt - Test04_Patched_AttackMathYieldsGarbage.
  5. Verteidigung (#2): Ein selbstkonsistenter gefälschter Deskriptor besteht die Prüfungen des alten Vertrauensmodells (Parse + Cert-Sig + Deskriptor-Sig), wird aber von der neuen Konsens-Bindungsprüfung abgelehnt - TestForgedSelfConsistentDescriptorIsDetected.
  6. Verteidigung (#2): Der echte Aufnahmepfad akzeptiert ehrliche Deskriptoren und lehnt manipulierte / falsch gebundene ab - TestNewReceivedDescriptor_AcceptsHonestDescriptor, _RejectsTamperedSignature, _RejectsWrongIdentityBinding.

Alle Schlüssel im PoC werden lokal zur Testzeit generiert. Es wurden keine echten Dienste angegriffen.

5. Betriebshinweise - vor dem Deployment lesen

Tool herunterladen