My RedisDB honeypot is now open source:

https://gitlab.com/bontchev/redispot

It is based on the RedisDB honeypot from the honeypots package

https://github.com/qeeqbox/honeypots

but has many improvements:

- output plugins - the ability to send reports to various places
- bugfixes - the original assumes that numbers are single-digit in a couple of places
- correct error messages - the original doesn't use exactly the same error messages as a real server
- supports the inline protocol - the original supports only the bulk one; all credential stuffing attackers use the inline one

Vesselin Bontchev / RedisPot · GitLab

GitLab.com

GitLab

It's nothing fancy - it simulates a server protected with a password, so no matter what the attackers try, they are told to log in first. It doesn't simulate a real database with contents.

I am not 100% happy with the emulation, either. A real password-protected server, if you give it a command with the wrong number of arguments, you'll get an error message telling you that. Only if the number of arguments is correct, you'll get an error message that you have to log in first. I do this only for the GET command. I don't feel like emulating the 340 Redis commands and sub-commands just to produce the right error message, especially given that the attackers use only like half a dozen commands.

Also, if you use a non-existing command, the real server will tell you this, while the honeypot will tell you that you need to log in first. Again, I don't feel like checking if the command is one of the 340 valid ones. I check only if it is one of the 4 invalid commands I've seen the attackers use. I'll add more if I see them used but meanwhile this is a weakness, allowing the attackers to detect that this is not a real server. Most of them don't care, though.

Here are some images from the visualization, based on a week's worth of data.

(Note: The visualization is not part of the repo. I've just instructed the honeypot to save the gathered data into a MySQL database and have built a Grafana dashboard based on this data source.)