Lightweight scriptable honeypot runner that loads Lua scripts from a directory, compiles them into memory, listens with one TCP listener per script, and executes service emulation when a port is triggered. The idea is to confuse the red team or malicious agents during server observation and port scanning.
The code is clean and simple to understand, making it good for educational projects.
Attention! The current version is incompatible with scripts made for version <0.3.0. Since this program was used by just a couple of users, I decided not to change the first number in the semantic version.
- CMake 3.20+
- C23 compiler
- Lua development package (headers + library)
cmake -S . -B build
cmake --build build -j
./build/deadend -dir ./examplescmake -S . -B build
cmake --build build --config Release
.\build\Release\deadend.exe -dir .\examplesdeadend -dir <path>
Deadend only loads files matching:
1.lua...65535.lua- Non-numeric names are ignored silently.
Each valid filename indicates which TCP port the script will serve.
examples/22.lua: basic telnet-answer behaviorexamples/80.lua: simple HTTP behavior