Guide: Users - ReplayProject/ReplayHoneypots GitHub Wiki

Table of Contents

Getting Started

This guide is intended for end users of the replay management frontend and command line interface (CLI). This document assumes that a successful run of the Install Guide has been performed. To find more information on how to contribute to the project, see the Developers Guide.

Frontend

The replay manager frontend lets you see information about your deployed honeypots.

The first thing you need to do is set up an account by following the new user process in the Install Guide.

Login

Once you have accounts for Couchdb and the replay frontend, continue to the next step. Right now, the only way to change your account details is through administrative configuration on the database side of things. Proceed to the login page on port 8080.

login page

Dashboards

After login, you will see a list of honeypots in your system and some graphs that show the logs' time distribution of the last active time period. You can change this time period with the avaliable selections. The way this works, is you define a time period (say 2 hours), this page will then show you the time distribution of logs, with your specified time range ending on the most recent recorded log. If the most recent log for a device is 2 days ago, then the graph will show the 2 hours preceeding the most recent log. This process is repeated for each device.

general dashboard

Alerts

The next page of importance is the Alerts page. Here you can see alerts from your honeypots and dig into the details of those alerts with the JSON viewer.

alerts page

Logs

To view the details of a specific honeypot, click any of the links under the "Dashboards" header in the navigation menu (left side of screen).

These details pages have the same layouts and options (with the exception of the Aggregate page):

  • the top section gives you basic info on the device
  • the graph section allows you to drill down to specific timeframes to see the activity logged by the device
  • the datatable section lets you scroll, paginate, and search the logs the device has recorded

Please note that the search function takes quite a long time if there are many logs for the device. A speedup needs to be researched more before implementation.

device details view

There has been some confusion surrounding the Specificity button, you use this button to reduce the number of points on the graph and group them together.

device details gif

About

To see an overview of recent logs, click the About link in the navbar. Here you can choose between specific honeypots and an amount of recent logs to analyze.

about page

On this page, you can see overviews on the recent logs. By default, the page will only show the top 5 listings in each category. The Toggle All button will show you the rest.

Helpful Links & Resources

At the bottom of the frontend’s navigation bar are some useful links to external APIs. The Management Database link leads to an interface for the log database, the PouchDB link leads to the API documentation for PouchDB API, and the Database API link leads to the documentation for CouchDB.

Note: PouchDB is the way the frontend talks to the main CouchDB.

helpful links

Command Line Interface

The CLI allows users on the management system to deploy and configure honeypots. The CLI can be run in interactive mode with menus/submenus, or the CLI’s commands can be run directly outside of interactive mode. The majority of the commands in this guide will be run directly.

_For further details on each command, refer to the Final Progress Report. _

Navigation

Menus

When the CLI is run in interactive mode, it will start in the main menu. The main menu will contain all of the submenus, and the submenus will contain all of the CLI’s commands. Below is the structure of the menus:

  • Main Menu
    • Manage Hosts (submenu)
      • Add Host
      • Remove Host
      • Check Status
    • Install (submenu)
      • Install Honeypot
      • Uninstall Honeypot
      • Reinstall Honeypot
    • Edit Honeypots (submenu)
      • Start Honeypot
      • Stop Honeypot
      • Configure Honeypot
    • Exit

Return

From any point of the CLI, Ctrl+D will allow you to perform a return.

  • If you are running in interactive mode:
    • Commands will return to the main menu
    • Submenus will return to the main menu
    • Main menu will exit to the command line
  • If you are running a command directly, you will exit to the command line

Exit

From any point of the CLI, Ctrl+C will allow you to perform a force exit back to the command line.

Note: Returning or force exiting in the middle of a command will cause all unsaved progress to be lost!

Start

To run the CLI in interactive mode:

$ python3 replay\_cli.py start

This will allow you to run several commands consecutively until you exit. Refer to the navigation section of this guide for further details.

Add Host

To add a host:

$ python3 replay\_cli.py addhost

This will prompt you for the following info:

  • Hostname - the id of this host on the CLI
  • Username - the username you use on the host machine
  • IP Address - the IP address of the host machine
  • Port - the port of the ssh server on the host machine
  • SSH Key - the path to the ssh key created for this machine

Remove Host

To remove a host:

$ python3 replay\_cli.py removehost

This will prompt you to select one or more hosts to remove.

-or-

$ python3 replay\_cli.py removehost --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

Check Status

To check the status of a host:

$ python3 replay\_cli.py checkstatus

This will prompt you to select one or more hosts to check on

-or-

$ python3 replay\_cli.py checkstatus --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

Install Honeypot

To install a honeypot on a host:

$ python3 replay\_cli.py installhoneypot

This will prompt you to select one or more hosts to install a honeypot on

-or-

$ python3 replay\_cli.py installhoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

You will then be prompted for the tar file of the honeypot repository (created in the Installation Guide).

Uninstall Honeypot

To uninstall a honeypot on a host:

$ python3 replay\_cli.py uninstallhoneypot

This will prompt you to select one or more hosts to uninstall a honeypot on

-or-

$ python3 replay\_cli.py uninstallhoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

You will then be prompted for the password of the username saved for the selected host.

Reinstall Honeypot

To reinstall a honeypot on a host:

$ python3 replay\_cli.py reinstallhoneypot

This will prompt you to select one or more hosts to reinstall a honeypot on

-or-

$ python3 replay\_cli.py reinstallhoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

You will then be prompted for the tar file of the honeypot repository and the password of the username saved for the selected host.

Start Honeypot

To start a honeypot on a host:

$ python3 replay\_cli.py starthoneypot

This will prompt you to select one or more hosts to start a honeypot on

-or-

$ python3 replay\_cli.py starthoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

The first time you run this command, you will be prompted for the url to the management database.

You will then be prompted for the password of the username saved for the selected host.

Stop Honeypot

To stop a honeypot on a host:

$ python3 replay\_cli.py stophoneypot

This will prompt you to select one or more hosts to stop a honeypot on

-or-

$ python3 replay\_cli.py stophoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

You will then be prompted for the password of the username saved for the selected host.

Configure Honeypot

To configure a honeypot on a host:

$ python3 replay\_cli.py configurehoneypot

This will prompt you to select one or more hosts to configure a honeypot on

-or-

$ python3 replay\_cli.py configurehoneypot --hosts \[host\] (--hosts \[host\_2\] --hosts \[host\_3\] ...)

You will then be prompted to select between Edit Configuration Files and Reconfigure.

Edit Configuration Files

If you select edit configuration files, you will be ssh’d into the selected hosts.

From there, navigate to the honeypot’s configuration folder and use the editor of your choice to change the configuration files.

To exit the ssh session:

$ exit

Reconfigure

If you select reconfigure, you will then be prompted again to select which portion(s) of the honeypot to restart.

Backend

Sign In & Accounts

Go here for details on general UNIX account management.

Docker

Depending on the configuration of your management system, you may need extra permissions to manage the docker engine instance. Talk to your sysadmin about getting added to the “docker” group on the system.

⚠️ **GitHub.com Fallback** ⚠️