Version: 1.0 | Status: Operational | License: MIT
DNSTerm is a next-generation, client-side DNS reconnaissance framework engineered for network analysts, security professionals, and system administrators. It leverages a decentralized, browser-based architecture to perform DNS lookups via DNS-over-HTTPS (DoH), bypassing traditional DNS resolution pathways. This approach enhances privacy and circumvents potential network-level interference or monitoring. The user interface is encapsulated within a retro-futuristic, "hacker-style" terminal aesthetic, providing a high-fidelity, immersive operational experience.
The system is designed as a monolithic, single-file HTML application, ensuring maximum portability and zero-dependency deployment. All requisite components—structural markup (HTML5), styling (CSS3), and logic (ES6 JavaScript)—are embedded within the document.
-
View Layer (DOM & CSS3):
- Structure: A semantic HTML5 structure defines the application's layout, including the input vector, control surfaces, and the output display buffer.
- Styling: The visual theme is rendered via CSS3. It employs a CRT (Cathode Ray Tube) monitor simulation, complete with a dark background, phosphor-green text (
#00ff41), text-shadowing for a glow effect, and a subtle flickering animation. A scanline overlay further enhances the analog feel. The typography is strictly monospaced to emulate classic terminal environments.
-
Controller & Logic Layer (ES6 JavaScript):
- Event Handling: An asynchronous event listener is bound to the primary form submission event. This serves as the entry point for the core application logic.
- Input Sanitization: Domain inputs are trimmed to remove extraneous whitespace before processing.
- API Abstraction: The
fetchAPI is utilized to interface with the Cloudflare public DoH resolver (1.1.1.1). The request is configured to acceptapplication/dns-json, a standard for receiving DNS data in a structured JSON format. - State Management: A simple boolean flag (
isTyping) manages the state of the output display, preventing concurrent write operations and ensuring sequential data rendering.
-
Output Subsystem:
- Typewriter Effect: A recursive
typeWriterfunction simulates real-time data streaming by rendering text character-by-character into the output buffer (<pre>element). This is a crucial component of the user experience, mimicking the data feed of a vintage terminal session. - Data Formatting: The raw JSON response from the DoH API is parsed and dynamically reformatted into a human-readable layout, closely resembling the output of the standard
dig(Domain Information Groper) command-line utility. This includes distinct sections for the header, question, and answer. - Cursor Simulation: A blinking block cursor, achieved through a CSS keyframe animation, is dynamically appended to the output to indicate system readiness or the completion of a write operation.
- Typewriter Effect: A recursive
- Zero-Backend Architecture: Operates entirely within the client's browser, requiring no server-side components.
- Enhanced Privacy: Utilizes DNS-over-HTTPS to encrypt DNS queries, protecting them from eavesdropping.
dig-like Output: Presents DNS records in a familiar, professional format.- Immersive UI/UX: Hacker-themed terminal interface provides a unique and engaging user experience.
- Cross-Platform: Runs on any modern web browser that supports HTML5, CSS3, and ES6.
- Portable: Distributed as a single
.htmlfile for easy sharing and deployment.
- Initialization: Upon loading, the system initializes and displays a ready prompt.
- User Input: The operator enters a target domain name into the input field.
- Query Submission: The operator triggers the resolution process via the "Resolve" button.
- Asynchronous Query: The JavaScript logic constructs and dispatches an HTTPS GET request to the Cloudflare DoH endpoint.
- Response Handling:
- On Success: The returned JSON payload is parsed. The system formats the header, question, and answer sections and streams the output to the display using the typewriter effect.
- On Failure: In case of a network error or an invalid API response, a detailed error message is generated and displayed, providing context for diagnostics.
- Ready State: The system returns to an idle state, awaiting the next command.
- Q2 2025: Implement support for additional DNS record types (e.g., MX, NS, TXT, CNAME).
- Q3 2025: Integrate multiple DoH providers with a user-selectable resolver endpoint.
- Q4 2025: Develop a command history feature, allowing users to recall previous queries.
- Q1 2026: Explore WebAssembly implementation for a high-performance DNS parsing engine.
This document is classified. For internal use only.