logo

Port 9998 – distinct32 (Distinct Corp Registration and Generic Secondary App/Admin Port)

Service:

distinct32 (Distinct Corp registration); in practice a generic secondary app / admin / HTTP / API port

Protocol:

TCP/UDP

Port:

9998

Used for:

IANA registers port 9998 as distinct32 for Distinct Corporation's network tools, but a live 9998 is almost always a generic secondary app, admin, HTTP, or API port — often paired with 9999.

Port 9998 has one official identity and one real-world identity, and they rarely match. IANA registers 9998/TCP and 9998/UDP as distinct32, an assignment made by Distinct Corporation (the maker of Distinct Network Monitor and the Distinct TCP/IP SDK) as the companion to their distinct service on port 9999. That registration is decades old and you will almost never meet the actual Distinct software on the wire today. What you do meet on an open 9998 is a generic, developer-chosen secondary port — a second web listener, an admin or metrics endpoint, an internal API, or the SSL/second-receiver half of an app whose primary port sits one number below on 9999. So the first job on port 9998 isn’t to attack “distinct32” — it’s to fingerprint what is actually answering and then test that specific service.

Why It’s Open

Two very different reasons put something on port 9998:

  • The IANA distinct32 registration. Distinct Corporation registered distinct (9999) and distinct32 (9998) for their network-monitoring and TCP/IP developer tools. This is why every port-lookup site labels 9998 “distinct32.” It is a name in a registry, not evidence that Distinct software is running — genuine Distinct listeners on 9998 are vanishingly rare in modern environments, much like the other obscure legacy assignments in this range such as port 9510 (ncsa-telnet) and port 9512 (alternate).
  • Ad-hoc use as a secondary port (the common case). 9998 is a round, memorable, unprivileged number that no critical service claims, so developers and appliances grab it for a second thing: an alternate HTTP/admin console next to a main web port, a health/metrics/API endpoint, a management interface, or the second listener of a service that already uses 9999. For example, a Splunk deployment might be configured with a receiver or SSL input on 9998 (its default forwarder-receiving port is actually 9997, so 9998 there is a custom choice), and countless internal tools bind 9998 simply because 8080, 8000, or 9999 were taken.

On a home router or PC, an open 9998 is usually a specific app or an appliance’s admin/API port that was forwarded or left listening. On a server or cloud VM, it is most often a secondary web/admin/API surface for something running there. The port number tells you almost nothing on its own — the service behind it tells you everything.

Common Risks

  • Unauthenticated admin/API surface. Secondary ports like 9998 are frequently the “internal” or “extra” endpoint a developer assumed no one would reach — often shipped with no auth, weak auth, or debug features enabled.
  • Exposed HTTP with verbose errors or debug output. An alt-HTTP listener on 9998 can leak stack traces, config, versions, environment variables, or internal endpoints if it was meant for a trusted network but ended up internet-facing.
  • Whatever the real service’s own vulnerabilities are. Because 9998 could be anything — a web app, a search/metrics endpoint, a proprietary daemon — its risk is inherited entirely from the specific product and version behind it, not from the port.
  • Paired-port assumptions. When 9998 is the second half of a service on 9999, the two are often configured together with the same (weak) trust model; compromising or fingerprinting one frequently informs an attack on the other.
  • Forgotten/shadow services. A port opened “temporarily” for testing and never closed is a classic route in — unmonitored, unpatched, and off everyone’s inventory.

Want to save time on reporting?

Let PentestPad generate, track, and export your reports - automatically.

logo-cta

Enumeration & Testing

Everything on port 9998 depends on identifying the service first, so lead with fingerprinting and only then test the thing you actually found. Do not assume “distinct32.”

Detect the service and version (TCP and UDP)

Terminal window
nmap -sV -p 9998 <target>
nmap -sU -sV -p 9998 <target>

-sV runs Nmap’s version probes and, on an unknown service, prints the raw fingerprint-strings response — often enough to recognise an HTTP server, a TLS handshake, or a proprietary banner.

Grab the raw banner

Terminal window
ncat -v <target> 9998

Type a newline or an HELP/GET / HTTP/1.0 line and watch what comes back. A plaintext prompt, an HTTP response, or a binary blob each points you in a different direction.

Test whether it speaks HTTP (the most common case)

Terminal window
curl -sSI http://<target>:9998/
curl -sSIk https://<target>:9998/

If either returns headers, treat 9998 as a web service: read Server:, X-Powered-By:, and any redirect target to fingerprint the stack, then enumerate it like any other web app.

Terminal window
nmap -p 9998 --script "http-title,http-headers,http-enum" <target>
nmap -p 9998 --script ssl-cert <target>

http-title/http-headers/http-enum identify and map a web app; ssl-cert pulls the certificate (CN/SAN often name the real host or product) if 9998 is wrapped in TLS.

Then test the service you actually identified

Once you know what it is — an admin console, an API, a metrics endpoint, a proprietary daemon — switch to that product’s checks: default-credential tests, authentication and authorization checks, input validation, and the known CVEs for that specific software and version. Check whether 9999 next door belongs to the same app.

Record every open 9998, the service you positively fingerprinted, and any auth/response evidence so it lands in the pentest report instead of a scratch terminal you’ll lose.

What to Look For

Checkpoint What it means
HTTP response on 9998 Alt-HTTP/admin/API surface — fingerprint the stack and test it as a web app
Server: / X-Powered-By: header Names the real product; pivot to that software’s known issues
TLS handshake / ssl-cert output Certificate CN/SAN often reveals the host or product behind the port
Plaintext prompt or debug output on connect Likely an unauthenticated dev/admin console — high-value, low-effort target
A service on 9999 too 9998 is probably the second listener of the same app; test them as a pair
Unrecognised binary banner Identify the exact product/version before assuming it’s benign or “distinct32”
Reachable from the internet A secondary/internal port exposed beyond its intended trust boundary

Known CVEs and Exploits

There is no port-specific CVE for 9998, and no notable network CVE for the distinct32/Distinct Corporation software the port is registered to. Distinct’s network-monitoring and TCP/IP tools never accumulated a meaningful public vulnerability record, and “distinct32” as a live protocol is effectively absent from the modern internet. The security-relevant flaws on this port belong entirely to whatever generic app, admin console, or API happens to be listening — so the honest step is to fingerprint that service and look up its advisories by product and version, not to search for a “port 9998 exploit.”

Removed as inaccurate. The previous version of this page listed three CVEs that do not apply here and have been deleted:

  • CVE-2023-1234 — actually a Google Chrome (Android intents) domain-spoofing issue, nothing to do with port 9998.
  • CVE-2022-5678does not exist in the NVD (no such published record).
  • CVE-2021-9012does not exist in the NVD (no such published record).

They were generic placeholders mislabelled as “distinct32” vulnerabilities. Always verify a CVE against its NVD record and confirm the product matches the service before trusting it.

Mitigation

  • Identify the real service, then harden that. You cannot secure “port 9998” generically — find the product behind it and apply that product’s hardening and patches.
  • Don’t expose secondary/admin ports to untrusted networks. Bind admin, debug, metrics, and internal-API listeners to localhost or an internal interface, or put them behind a reverse proxy with authentication and TLS. A 9998 admin console has no business on 0.0.0.0.
  • Require real authentication and disable debug output on anything internet-facing; strip verbose errors, stack traces, and config disclosure.
  • Treat 9998 and 9999 as a pair when they belong to the same app — apply the same auth, firewall, and patch policy to both.
  • Firewall 9998 (TCP and UDP) to only the clients that need it, and audit cloud security groups and container port maps for an accidental 0.0.0.0:9998.
  • Close it if nothing legitimately needs it, and rescan to confirm. An unexplained, forgotten listener on 9998 is exactly the kind of shadow service attackers hunt for.

Real-World Example

There is no famous “port 9998 exploit,” and that absence is the lesson. The recurring real-world pattern is mundane: a team stands up a service on a main port, then exposes a second endpoint on the next round number — commonly 9998 or 9999 — for an admin panel, a health/metrics API, or an SSL/secondary receiver, and assumes nobody will find it because it isn’t a “standard” port. Internet-wide scanners like Shodan and Censys catalogue open 9998 listeners constantly, and when one of those turns out to be an unauthenticated admin console, a debug interface leaking config, or an outdated web app, the port number was never the vulnerability — the forgotten, unauthenticated service behind it was. Because 9998 has no default protocol to anchor on, the entire attack surface is “whatever is answering,” which is precisely why fingerprinting comes before anything else.

FAQ

What is port 9998 used for?

Officially, IANA registers port 9998 (TCP and UDP) as distinct32, a companion assignment to distinct on port 9999 made by Distinct Corporation for their network-monitoring tools. In practice, you almost never see that software; a live 9998 is nearly always a generic secondary port a developer or appliance chose for an alternate HTTP/admin console, a metrics or API endpoint, or the second listener of an app that also uses 9999.

Is port 9998 the same as distinct32?

distinct32 is the name IANA gave the port, not a description of what’s running on it. Meeting an actual Distinct Corporation distinct32 service on 9998 today is very rare. Treat the “distinct32” label as a registry footnote and fingerprint the port to find the real service before drawing any conclusions.

Why is port 9998 open on my computer or server?

Because some specific application opened it — most commonly an admin, debug, metrics, or secondary-API listener, or the SSL/second half of a service already using 9999. Identify the owning process (ss -ltnp | grep 9998 or lsof -i :9998 on Linux) to see exactly what bound it before deciding whether to keep it.

Is port 9998 TCP or UDP?

IANA registers both, but real-world listeners on 9998 are almost always TCP — typically HTTP, TLS, or a custom app protocol. Scan both (nmap -sV -p 9998 and nmap -sU -sV -p 9998) so you don’t miss a UDP service, but expect TCP.

Does port 9998 have any known CVEs?

No. There is no port-specific CVE for 9998, and the distinct32/Distinct Corporation software it’s registered to has no notable network CVEs. Any vulnerability on this port belongs to the specific app behind it, so fingerprint the service and look up that product’s advisories by name and version.

How do I secure or close port 9998?

Find the real service first, then harden it: bind admin/secondary listeners to localhost or an internal interface, put them behind a reverse proxy with authentication and TLS, require real credentials, and firewall 9998 (TCP and UDP) to only the hosts that need it. If nothing legitimately needs it, stop the service and confirm the port is closed with a rescan.

TL;DR

  • Service: registered by IANA as distinct32 (Distinct Corporation, companion to distinct/abyss on 9999), but in practice a generic secondary app / admin / HTTP / API port. The Distinct software itself is essentially never seen on the wire.
  • Default port: 9998/TCP and 9998/UDP (real listeners are almost always TCP)
  • Biggest risk: an unauthenticated or forgotten secondary/admin service exposed on 9998 — its danger is inherited entirely from the specific product behind it, so identify what’s answering before you trust it
  • Mitigation: fingerprint the real service, bind admin/secondary ports to localhost or a reverse proxy with auth and TLS, treat 9998 and 9999 as a pair, firewall both, and close 9998 if nothing needs it