Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
signal-server-dropwizard-admin — Signal-Server v20261007.0.0 - उच्च - रिमोट - विशेषाधिकार शेष - unauth Dropwizard admin :8081 | Kitploit
उपकरण/GitHubGitHub/abraxas/signal-server-dropwizard-admin
रक्षात्मक उपकरणटोहीभेद्यता विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगजानकारी एकत्र करनावेब सुरक्षापेनिट्रेशन टेस्टिंगगलत कॉन्फ़िगरेशन

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
GitHub
abraxas/signal-server-dropwizard-admin

signal-server-dropwizard-admin

Signal-Server v20261007.0.0 - उच्च - रिमोट - विशेषाधिकार शेष - unauth Dropwizard admin :8081

रिपॉजिटरी देखें
4104 दिन पहलेअभी तक समीक्षित नहीं
साझा करें

Abraxas Labs - signal-server-dropwizard-admin

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  signal-server-dropwizard-admin

signal-server-dropwizard-admin

Class: Privilege leftover Reach: Remote

Signal-Server v20261007.0.0 (a15d5cd) - Signal Messenger, LLC

Dropwizard 5.0.2 DefaultServerFactory पोर्ट 8081 पर एक HTTP admin connector के साथ आता है, जिसमें bindHost unset (सभी interfaces) है और कोई admin authentication नहीं है। Signal-Server इसे कभी override नहीं करता। service/config/sample.yml में कोई server: block नहीं है। एक YAML जो केवल TLS applicationConnectors को सूचीबद्ध करता है, वह अभी भी 0.0.0.0 पर plaintext 8081 को inherit करता है। server और तीन ServerCommand workers इसे शुरू करते हैं। ExternalRequestFilter केवल application context पर है।

:8081 पर unauth HTTP ही operational admin plane है। RCE नहीं। Account takeover नहीं। Sealed-message read नहीं।

IDअभी तक कोई CVE नहीं
ClassPrivilege leftover (unauthenticated Dropwizard admin)
ReachRemote (all-interfaces :8081, कोई auth नहीं)
CWECWE-306, CWE-1188
CVSSHigh: 7.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
ProductSignal-Server
Affectedv20261007.0.0 (a15d5cd) Dropwizard 5.0.2. In-tree sample / छोड़ा गया adminConnectors.
Authadmin connector पर कोई नहीं
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

एक attacker क्या कर सकता है

कोई भी व्यक्ति जो admin port (default 0.0.0.0:8081, कोई अतिरिक्त config नहीं, कोई Authorization header नहीं) पर TCP खोल सकता है, उसे हर stock Dropwizard 5 admin servlet के साथ-साथ Signal का अतिरिक्त task भी मिलता है। यही पूरा privilege set है। इस सूची में कुछ भी RCE, ATO, या sealed message bodies का read नहीं है।

Recon और process data (GET, unauthenticated)

MethodPathPrivilege
GET/pingपुष्टि करें कि admin listener चालू है। Body pong है।
GET/metricsपूरी Codahale registry को JSON के रूप में पढ़ें: JVM heap और non-heap, GC counts, thread counts, Jetty connector meters, 4xx/5xx gauges, timers। इसका उपयोग process को fingerprint करने, load का अनुमान लगाने, और बाद के tasks के प्रभाव को देखने के लिए करें।
GET/threadsपूरा JVM thread dump: हर thread का नाम, id, state, और stack frames। Lab में इसने dw-admin-* के साथ-साथ java.base nio frames दिखाए। एक live Signal node पर वही dump class names, logger names, और कोई भी string जो संयोग से stack पर पड़ी हो (file paths, hostnames, in-flight argument toString) शामिल कर सकता है। यह heap dump नहीं है और यह message-queue dump नहीं है।
GET/healthcheckपंजीकृत health checks चलाएँ। यह tree कभी extras register नहीं करता, इसलिए body default deadlock check (deadlocks.healthy) है। 200 बनाम 500 आपको बताता है कि JVM को लगता है कि वह deadlocked है या नहीं।
GET/tasksAdmin tasks की सूची बनाएँ। इस pin पर: gc, log-level, set-request-logging-enabled।

Logging और GC की integrity (POST, unauthenticated)

MethodPathPrivilege
POST/tasks/log-level?logger=<name>&level=<LEVEL>किसी भी Logback logger को TRACE, DEBUG, INFO, WARN, ERROR, या OFF पर सेट करें। TRACE application loggers को अधिक प्रिंट करा सकता है (जिसमें developer द्वारा log किए गए values भी शामिल हैं)। किसी security या access logger पर OFF उसे अंधकारमय कर देता है। Attacker को इस HTTP के माध्यम से log stream नहीं मिलता। वे बदलते हैं कि process disk या stdout पर क्या लिखता है। Lab oracle: logger name SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS से TRACE।
POST/tasks/gcSystem.gc() को कॉल करें। Response Running GC... / Done! है। यह एक stop-the-world nudge है, process death नहीं।
POST/tasks/set-request-logging-enabled?enabled=trueWhisperServerService.run में पंजीकृत Signal-only task। Request access-log filter (RequestLogManager) को सक्षम करता है। उसके बाद, application connector पर HTTP method, URI, और headers (जिसमें Authorization Basic भी शामिल है) को disk पर access log में लिख सकता है। Admin client को वे lines वापस नहीं मिलतीं। message-persister-service / APN / idle-job workers पर application port में कोई Signal Jersey resources नहीं हैं, इसलिए यह task server पर मायने रखता है। enabled=false इसे फिर से बंद कर देता है।

यह leftover क्या नहीं देता

  • कोई shell नहीं, कोई ProcessBuilder नहीं, कोई Runtime.exec नहीं।
  • कोई heap-dump servlet नहीं। GET /heapdump 404 है।
  • Admin के माध्यम से sealed envelopes, prekeys, SVR secrets, या Dynamo/FDB rows का कोई read नहीं।
  • कोई account create/delete, device link, या registration-lock skip नहीं।
  • sample.yml या bind addresses में कोई बदलाव नहीं।
  • Request logging सक्षम करना अपने आप में credential theft नहीं है। चोरी के लिए उन log files का बाद में read होना आवश्यक है (disk, log shipper, TRACE logger)।

उसी Docker network पर एक sibling container ने http://vuln:8081/ping (200 pong) तक पहुँच बनाई और जब bindHost 127.0.0.1 था तो http://patched:8081/ping तक नहीं पहुँच सका। यही Remote वाला आधा हिस्सा है।

मैंने इसे कैसे खोजा

मैंने signalapp/Signal-Server v20261007.0.0 को pin किया। अठारह source hunts। Chat, keys, messages, backups, donations, calling, MFA, gRPC omnibus, और outbound HTTP Critical/High पर खाली लौटे। Workers/admin hunt नहीं लौटा। Dropwizard 5.0.2 HttpConnectorFactory.admin() अभी भी port 8081 और null bind host का उपयोग करता है। Signal कभी adminConnectors सेट नहीं करता। Caddy का default admin localhost है। यह नहीं है।

गलत मोड़: पूरा Signal-Server boot करने की कोशिश। sample.yml check पास करता है और run करने के लिए अभी भी FoundationDB, Dynamo, Redis, और एक secrets bundle की आवश्यकता होती है। Leftover वह framework connector है जिसे ServerCommand इन सबसे पहले शुरू करता है। Lab Dropwizard 5.0.2 है जिसमें वही खाली server: YAML और Signal का अतिरिक्त task name है।

Lab

cd lab
./run.sh

Loopback 127.0.0.1:19010। Compose project signal-server-dropwizard-admin। Witness SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS। Gadget YAML में कोई server: block नहीं है। Negative YAML bindHost: 127.0.0.1 सेट करता है। अंतिम पंक्ति:

SUCCESS signal-server-dropwizard-admin how=unauth-admin-8081 ping=200 metrics=200 threads=200 healthcheck=200 tasks=200 log-level=TRACE gc=200 set-log=enabled bind=* remote-vuln=200 remote-patched=fail SIGNAL-SERVER-DROPWIZARD-ADMIN-WITNESS

Fix

Admin को 127.0.0.1 पर bind करें, adminConnectors: [] सेट करें, या admin context पर authentication / mTLS लगाएँ। ऐसा YAML ship न करें जो केवल application connectors को सूचीबद्ध करता हो और मान ले कि 8081 बंद रहा।

Contact

Abraxas Labs - abraxaslabs.tech - github.com/abraxas - @abraxas_null - [email protected]

टूल डाउनलोड करें