Home

Awesome

miniprint

Build Status Codacy Badge License

<img align="right" width="212" height="288" src="https://user-images.githubusercontent.com/3712226/54886937-78f7b180-4e5b-11e9-8ccc-18716f2b5a3b.png">

A medium interaction printer honeypot

About

miniprint acts like a standard networked printer that has been accidentally exposed to the public internet.

It speaks the Printer Job Language (PJL) over the raw network "protocol"

Features

Installation

  1. virtualenv venv && source ./venv/bin/activate (optional)
  2. pip3 install -r requirements.txt
  3. python3 ./server.py

Usage

usage: miniprint [-b,--bind HOST] [-l,--log-file FILE] [-t,--time-out TIME] [-h]

miniprint - a medium interaction printer honeypot
       by Dan Salmon: @BLTjetpack, github.com/sa7mon 

optional arguments:
  -b, --bind <host>       Bind the server to <host> (default: localhost)
  -l, --log-file <file>   Save all logs to <file> (default: ./miniprint.log)
  -t, --timeout <time>    Wait up to <time> seconds for commands before disconnecting client (default: 120)

  -h, --help  show this help message and exit

To interactively attack miniprint on localhost, you can use PRET with the following command: python ./pret.py localhost pjl

Logs are generated in format: time - loglevel - method - operation - message and are saved to miniprint.log by default.

Requirements

Printer Protocol Support

ProtocolPortSupport
Raw9100Yes
Web80No
IPP631No
LPD515No

Printer Control Language Support

LanguageSupport
PJLYes
PMLNo

Page Description Language Support

LanguageSupport
PDFYes
XPSNo
PostScriptNo
PlaintextYes
PCLNo

Known Issues

Thanks