A medium interaction printer honeypot that mimics an exposed network printer to detect and log attacks.
miniprint is a medium interaction printer honeypot that mimics a standard networked printer exposed to the internet. It speaks the Printer Job Language (PJL) protocol to attract and log attacks, helping security researchers analyze threats targeting printing infrastructure. The tool captures print jobs and simulates a virtual filesystem to engage attackers without risking the host system.
Security researchers, penetration testers, and network administrators who want to detect and study attacks on networked printers or deploy honeypots in their environments.
miniprint offers a specialized, realistic printer honeypot with detailed logging and virtual filesystem interaction, making it a valuable tool for understanding printer-specific attack vectors without the complexity of full hardware emulation.
A medium interaction printer honeypot 🍯
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a fully-featured virtual filesystem where attackers can read and write files without affecting the host system, ensuring no actual changes are made.
Generates extensive logs in a structured format (time - loglevel - method - operation - message) saved to miniprint.log by default, aiding in security analysis and forensics.
Implements Printer Job Language (PJL) over raw network port 9100, mimicking standard printer behavior to effectively attract and engage attackers.
Saves PostScript or plaintext print jobs to an uploads directory for analysis, allowing researchers to examine malicious content without risk.
Only supports raw PJL on port 9100; lacks common protocols like IPP, LPD, and web interfaces, which reduces its realism for broader printer attack scenarios.
Known to wait indefinitely for PostScript files that don't contain %%EOF, as noted in the README, which can disrupt logging and require manual intervention.
Requires Python >=3.5 and a virtual environment setup, which may add overhead for users unfamiliar with Python or in restricted deployment environments.