Repository navigation
Add "Find the app on the client" commands - #8
Merged
Merged
Conversation
Network-side lookups often can't name the app behind a backend domain (redacted registration, a CDN, a DV certificate), but the app that talks to it usually has the name built in. The About panel now offers ready-made macOS, Windows and Linux commands, filled in for the destination: search installed apps for the name (the registered domain after a lookup; UTF-16 aware on Windows), and show which process is connected to its IPs now. SNI is attacker-controlled, so a command is only built from names of letters, digits, dots and hyphens and from well-formed IPs; anything else gets no command. IPv6 is bracketed for ss and quoted for lsof under zsh. The panel's open state and chosen OS survive the periodic re-render. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this change?
The About panel gets a Find the app on the client section. It offers ready-made commands for macOS, Windows or Linux, filled in for the destination, to run on a client listed under Seen from:
grep --binary-files=text, orSelect-Stringon Windows. After Look up it searches for the registered domain instead. On Windows the pattern also matches UTF-16 text, which is how many Windows programs store strings.lsof,Get-NetTCPConnectionorss.Why: registration, DNS and certificate lookups often can't name the app behind a backend domain (privacy-redacted owner, a CDN in front, a certificate with no company name). The app that talks to the domain usually has the name built in. That's how an unexplained API domain was traced to a 3D-printer slicer's networking plugin.
Safety: SNI is controlled by whoever makes the connection. A command is only built from a name made of
[a-z0-9.-]and from well-formed IPv4/IPv6 addresses; anything else gets no command, so a crafted hostname can't turn into a command you paste and run. IPv6 addresses are bracketed forssand quoted forlsof(zsh would otherwise treat the brackets as a filename pattern).Also: the section's open state and the chosen OS are kept across the 30-second refresh. The OS choice is remembered in
localStorage(wrapped in try/catch). Demo lookups now return the registered domain the way real registries do.How was it tested?
uv run python -m unittest discover teststerraform test(not affected)ssaccepts the IPv4/IPv6 filter;lsofruns under zsh with an IPv6 argument.;, quotes,$(), backticks, spaces, newlines and|.Checklist
CHANGELOG.md(Unreleased) updated where users would notice🤖 Generated with Claude Code