tpotce/README.md

571 lines
34 KiB
Markdown
Raw Normal View History

2019-08-24 18:31:17 +00:00
![T-Pot](doc/tpotsocial.png)
2014-11-28 16:57:47 +00:00
T-Pot 20.06 runs on Debian (Stable), is based heavily on
2015-12-08 14:47:39 +00:00
2017-09-06 15:51:18 +00:00
[docker](https://www.docker.com/), [docker-compose](https://docs.docker.com/compose/)
2015-03-04 20:51:34 +00:00
2016-03-11 10:10:37 +00:00
and includes dockerized versions of the following honeypots
2015-03-04 20:51:34 +00:00
* [adbhoney](https://github.com/huuck/ADBHoney),
2018-08-09 15:35:33 +00:00
* [ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot),
2020-01-15 12:14:23 +00:00
* [citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot),
2016-03-11 10:10:37 +00:00
* [conpot](http://conpot.org/),
* [cowrie](https://github.com/cowrie/cowrie),
2021-08-26 13:14:04 +00:00
* [ddospot](https://github.com/aelth/ddospot),
2020-06-19 11:58:30 +00:00
* [dicompot](https://github.com/nsmfoo/dicompot),
2016-03-11 10:10:37 +00:00
* [dionaea](https://github.com/DinoTools/dionaea),
* [elasticpot](https://gitlab.com/bontchev/elasticpot),
2021-08-26 13:14:04 +00:00
* [endlessh](https://github.com/skeeto/endlessh),
2018-08-09 15:35:33 +00:00
* [glutton](https://github.com/mushorg/glutton),
* [heralding](https://github.com/johnnykv/heralding),
2021-08-26 13:14:04 +00:00
* [hellpot](https://github.com/yunginnanet/HellPot),
2021-11-18 19:58:17 +00:00
* [honeypots](https://github.com/qeeqbox/honeypots),
2017-09-06 15:51:18 +00:00
* [honeytrap](https://github.com/armedpot/honeytrap/),
2020-08-24 21:36:08 +00:00
* [ipphoney](https://gitlab.com/bontchev/ipphoney),
2021-12-16 22:10:25 +00:00
* [log4pot](https://github.com/thomaspatzke/Log4Pot),
2017-09-06 15:51:18 +00:00
* [mailoney](https://github.com/awhitehatter/mailoney),
2018-11-23 22:30:25 +00:00
* [medpot](https://github.com/schmalle/medpot),
2021-08-26 13:14:04 +00:00
* [redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot),
* [sentrypeer](https://github.com/SentryPeer/SentryPeer),
2018-08-09 15:35:33 +00:00
* [snare](http://mushmush.org/),
2018-11-23 22:30:25 +00:00
* [tanner](http://mushmush.org/)
2017-09-06 15:51:18 +00:00
2015-03-05 07:36:59 +00:00
Furthermore T-Pot includes the following tools
2016-03-11 10:10:37 +00:00
2018-08-09 15:35:33 +00:00
* [Cockpit](https://cockpit-project.org/running) for a lightweight, webui for docker, os, real-time performance monitoring and web terminal.
* [Cyberchef](https://gchq.github.io/CyberChef/) a web app for encryption, encoding, compression and data analysis.
2016-03-11 10:10:37 +00:00
* [ELK stack](https://www.elastic.co/videos) to beautifully visualize all the events captured by T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) a web front end for browsing and interacting with an Elastic Search cluster.
2019-06-04 14:33:02 +00:00
* [Fatt](https://github.com/0x4D31/fatt) a pyshark based script for extracting network metadata and fingerprints from pcap files and live network traffic.
2017-09-06 15:51:18 +00:00
* [Spiderfoot](https://github.com/smicallef/spiderfoot) a open source intelligence automation tool.
2016-10-26 14:07:05 +00:00
* [Suricata](http://suricata-ids.org/) a Network Security Monitoring engine.
2016-03-11 10:10:37 +00:00
# TL;DR
1. Meet the [system requirements](#requirements). The T-Pot installation needs at least 8 GB RAM and 128 GB free disk space as well as a working (outgoing non-filtered) internet connection.
2020-09-04 13:01:21 +00:00
2. Download the T-Pot ISO from [GitHub](https://github.com/telekom-security/tpotce/releases) or [create it yourself](#createiso).
2016-03-11 10:10:37 +00:00
3. Install the system in a [VM](#vm) or on [physical hardware](#hw) with [internet access](#placement).
2018-08-10 16:12:14 +00:00
4. Enjoy your favorite beverage - [watch](https://sicherheitstacho.eu) and [analyze](#kibana).
2018-01-12 16:43:26 +00:00
2016-03-11 10:10:37 +00:00
# Table of Contents
- [Technical Concept](#concept)
- [System Requirements](#requirements)
2020-06-30 07:56:22 +00:00
- [Installation Types](#types)
2016-03-11 10:10:37 +00:00
- [Installation](#installation)
- [Prebuilt ISO Image](#prebuilt)
- [Create your own ISO Image](#createiso)
- [Running in a VM](#vm)
- [Running on Hardware](#hardware)
2018-11-28 09:40:28 +00:00
- [Post Install User](#postinstall)
2018-11-27 09:15:40 +00:00
- [Post Install Auto](#postinstallauto)
2019-05-09 22:42:30 +00:00
- [Cloud Deployments](#cloud)
2019-06-29 21:26:34 +00:00
- [Ansible](#ansible)
2019-06-26 13:15:14 +00:00
- [Terraform](#terraform)
2016-03-11 10:10:37 +00:00
- [First Run](#firstrun)
- [System Placement](#placement)
2018-11-27 09:15:40 +00:00
- [Updates](#updates)
2016-03-11 10:10:37 +00:00
- [Options](#options)
2016-10-26 14:07:05 +00:00
- [SSH and web access](#ssh)
- [T-Pot Landing Page](#heimdall)
2016-03-11 10:10:37 +00:00
- [Kibana Dashboard](#kibana)
2016-10-28 16:09:33 +00:00
- [Tools](#tools)
2016-03-11 10:10:37 +00:00
- [Maintenance](#maintenance)
- [Community Data Submission](#submission)
2019-04-01 07:56:06 +00:00
- [Opt-In HPFEEDS Data Submission](#hpfeeds-optin)
2016-03-11 10:10:37 +00:00
- [Roadmap](#roadmap)
- [Disclaimer](#disclaimer)
- [FAQ](#faq)
- [Contact](#contact)
- [Licenses](#licenses)
- [Credits](#credits)
- [Stay tuned](#staytuned)
2019-02-22 15:35:10 +00:00
- [Testimonial](#testimonial)
2016-03-11 10:10:37 +00:00
<a name="concept"></a>
# Technical Concept
T-Pot is based on the Debian (Stable) network installer.
The honeypot daemons as well as other support components are [dockered](http://docker.io).
This allows T-Pot to run multiple honeypot daemons and tools on the same network interface while maintaining a small footprint and constrain each honeypot within its own environment.
2016-03-11 10:10:37 +00:00
2018-08-10 16:12:14 +00:00
In T-Pot we combine the dockerized honeypots ...
* [adbhoney](https://github.com/huuck/ADBHoney),
2018-08-10 16:12:14 +00:00
* [ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot),
2020-01-15 12:14:23 +00:00
* [citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot),
2018-08-10 16:12:14 +00:00
* [conpot](http://conpot.org/),
* [cowrie](http://www.micheloosterhof.com/cowrie/),
2021-08-26 13:14:04 +00:00
* [ddospot](https://github.com/aelth/ddospot),
2020-06-18 16:38:43 +00:00
* [dicompot](https://github.com/nsmfoo/dicompot),
2018-08-10 16:12:14 +00:00
* [dionaea](https://github.com/DinoTools/dionaea),
* [elasticpot](https://gitlab.com/bontchev/elasticpot),
2021-08-26 13:14:04 +00:00
* [endlessh](https://github.com/skeeto/endlessh),
2018-08-10 16:12:14 +00:00
* [glutton](https://github.com/mushorg/glutton),
* [heralding](https://github.com/johnnykv/heralding),
2021-08-26 13:14:04 +00:00
* [hellpot](https://github.com/yunginnanet/HellPot),
2021-11-18 19:58:17 +00:00
* [honeypots](https://github.com/qeeqbox/honeypots),
2018-08-10 16:12:14 +00:00
* [honeytrap](https://github.com/armedpot/honeytrap/),
2020-08-24 21:36:08 +00:00
* [ipphoney](https://gitlab.com/bontchev/ipphoney),
2021-12-16 22:10:25 +00:00
* [log4pot](https://github.com/thomaspatzke/Log4Pot),
2018-08-10 16:12:14 +00:00
* [mailoney](https://github.com/awhitehatter/mailoney),
2018-11-23 22:30:25 +00:00
* [medpot](https://github.com/schmalle/medpot),
2021-08-26 13:14:04 +00:00
* [redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot),
* [sentrypeer](https://github.com/SentryPeer/SentryPeer),
2018-08-10 16:12:14 +00:00
* [snare](http://mushmush.org/),
2018-11-23 22:30:25 +00:00
* [tanner](http://mushmush.org/)
2018-08-10 16:12:14 +00:00
... with the following tools ...
* [Cockpit](https://cockpit-project.org/running) for a lightweight, webui for docker, os, real-time performance monitoring and web terminal.
* [Cyberchef](https://gchq.github.io/CyberChef/) a web app for encryption, encoding, compression and data analysis.
* [ELK stack](https://www.elastic.co/videos) to beautifully visualize all the events captured by T-Pot.
* [Elasticvue](https://github.com/cars10/elasticvue/) a web front end for browsing and interacting with an Elastic Search cluster.
2019-06-04 14:33:02 +00:00
* [Fatt](https://github.com/0x4D31/fatt) a pyshark based script for extracting network metadata and fingerprints from pcap files and live network traffic.
2018-08-10 16:12:14 +00:00
* [Spiderfoot](https://github.com/smicallef/spiderfoot) a open source intelligence automation tool.
* [Suricata](http://suricata-ids.org/) a Network Security Monitoring engine.
2019-02-20 22:21:47 +00:00
... to give you the best out-of-the-box experience possible and an easy-to-use multi-honeypot appliance.
2016-03-11 10:10:37 +00:00
2018-08-13 10:47:27 +00:00
![Architecture](doc/architecture.png)
2016-03-11 10:10:37 +00:00
While data within docker containers is volatile T-Pot ensures a default 30 day persistence of all relevant honeypot and tool data in the well known `/data` folder and sub-folders. The persistence configuration may be adjusted in `/opt/tpot/etc/logrotate/logrotate.conf`. Once a docker container crashes, all other data produced within its environment is erased and a fresh instance is started from the corresponding docker image.<br>
2016-03-11 10:10:37 +00:00
Basically, what happens when the system is booted up is the following:
2015-03-05 07:36:59 +00:00
2016-03-11 10:10:37 +00:00
- start host system
2018-08-10 16:12:14 +00:00
- start all the necessary services (i.e. cockpit, docker, etc.)
- start all docker containers via docker-compose (honeypots, nms, elk, etc.)
The T-Pot project provides all the tools and documentation necessary to build your own honeypot system and contribute to our [Sicherheitstacho](https://sicherheitstacho.eu).
2018-08-10 16:12:14 +00:00
The source code and configuration files are fully stored in the T-Pot GitHub repository. The docker images are preconfigured for the T-Pot environment. If you want to run the docker images separately, make sure you study the docker-compose configuration (`/opt/tpot/etc/tpot.yml`) and the T-Pot systemd script (`/etc/systemd/system/tpot.service`), as they provide a good starting point for implementing changes.
2018-08-10 16:12:14 +00:00
2020-09-04 13:01:21 +00:00
The individual docker configurations are located in the [docker folder](https://github.com/telekom-security/tpotce/tree/master/docker).
2016-03-11 10:10:37 +00:00
<a name="requirements"></a>
# System Requirements
Depending on the installation type, whether installing on [real hardware](#hardware) or in a [virtual machine](#vm), make sure the designated system meets the following requirements:
2016-03-11 10:10:37 +00:00
- 8 GB RAM (less RAM is possible but might introduce swapping / instabilities)
2018-08-10 16:12:14 +00:00
- 128 GB SSD (smaller is possible but limits the capacity of storing events)
2016-02-04 09:44:34 +00:00
- Network via DHCP
2017-09-18 21:01:34 +00:00
- A working, non-proxied, internet connection
2016-02-04 09:44:34 +00:00
2020-06-30 07:32:08 +00:00
<a name="types"></a>
# Installation Types
There are prebuilt installation types available each focussing on different aspects to get you started right out of the box. The docker-compose files are located in `/opt/tpot/etc/compose`. If you want to build your own compose file just create a new one (based on the layout and settings of the prebuilds) in `/opt/tpot/etc/compose` and run `tped.sh` afterwards to point T-Pot to the new compose file and run you personalized edition.
##### Standard
- Honeypots: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, elasticpot, heralding, honeytrap, mailoney, medpot, snare & tanner
- Tools: cockpit, cyberchef, ELK, fatt, elasticvue, ewsposter, nginx / heimdall, spiderfoot, p0f & suricata
2020-06-30 07:32:08 +00:00
##### Sensor
- Honeypots: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, elasticpot, heralding, honeytrap, mailoney, medpot, snare & tanner
- Tools: cockpit, ewsposter, fatt, p0f & suricata
2020-06-30 07:32:08 +00:00
- Since there is no ELK stack provided the Sensor Installation only requires 4 GB of RAM.
2016-03-11 10:10:37 +00:00
2015-03-05 07:36:59 +00:00
2020-06-30 07:32:08 +00:00
##### Industrial
- Honeypots: conpot, cowrie, dicompot, heralding, honeytrap & medpot
- Tools: cockpit, cyberchef, ELK, fatt, elasticvue, ewsposter, nginx / heimdall, spiderfoot, p0f & suricata
2016-03-11 10:10:37 +00:00
2016-02-19 16:52:45 +00:00
2020-06-30 07:32:08 +00:00
##### Collector
- Honeypots: heralding & honeytrap
- Tools: cockpit, cyberchef, fatt, ELK, elasticvue, ewsposter, nginx / heimdall, spiderfoot, p0f & suricata
2016-03-11 10:10:37 +00:00
2018-08-10 16:12:14 +00:00
2020-06-30 07:32:08 +00:00
##### NextGen
- Honeypots: adbhoney, ciscoasa, citrixhoneypot, conpot, cowrie, dicompot, dionaea, glutton, heralding, ipphoney, mailoney, medpot, snare & tanner
- Tools: cockpit, cyberchef, ELK, fatt, elasticvue, ewsposter, nginx / heimdall, spiderfoot, p0f & suricata
2018-08-10 16:12:14 +00:00
2020-06-30 07:32:08 +00:00
##### Medical
- Honeypots: dicompot & medpot
- Tools: cockpit, cyberchef, ELK, fatt, elasticvue, ewsposter, nginx / heimdall, spiderfoot, p0f & suricata
2020-06-30 07:32:08 +00:00
2016-02-19 16:52:45 +00:00
2016-03-11 10:10:37 +00:00
<a name="installation"></a>
# Installation
2017-09-18 21:01:34 +00:00
The installation of T-Pot is straight forward and heavily depends on a working, transparent and non-proxied up and running internet connection. Otherwise the installation **will fail!**
2016-03-11 10:10:37 +00:00
2020-09-04 13:01:21 +00:00
Firstly, decide if you want to download the prebuilt installation ISO image from [GitHub](https://github.com/telekom-security/tpotce/releases), [create it yourself](#createiso) ***or*** [post-install on an existing Debian 10 (Buster)](#postinstall).
2016-03-11 10:10:37 +00:00
Secondly, decide where you the system to run: [real hardware](#hardware) or in a [virtual machine](#vm)?
2016-03-11 10:10:37 +00:00
<a name="prebuilt"></a>
## Prebuilt ISO Image
2020-09-04 13:01:21 +00:00
An installation ISO image is available for download (~50MB), which is created by the [ISO Creator](https://github.com/telekom-security/tpotce) you can use yourself in order to create your own image. It will basically just save you some time downloading components and creating the ISO image.
You can download the prebuilt installation ISO from [GitHub](https://github.com/telekom-security/tpotce/releases) and jump to the [installation](#vm) section.
2016-03-11 10:10:37 +00:00
<a name="createiso"></a>
## Create your own ISO Image
2020-09-04 13:01:21 +00:00
For transparency reasons and to give you the ability to customize your install you use the [ISO Creator](https://github.com/telekom-security/tpotce) that enables you to create your own ISO installation image.
2016-03-11 10:10:37 +00:00
**Requirements to create the ISO image:**
- Debian 10 as host system (others *may* work, but *remain* untested)
2016-03-11 10:10:37 +00:00
- 4GB of free memory
- 32GB of free storage
- A working internet connection
**How to create the ISO image:**
1. Clone the repository and enter it.
2017-09-18 21:01:34 +00:00
```
2020-09-04 13:01:21 +00:00
git clone https://github.com/telekom-security/tpotce
2017-09-18 21:01:34 +00:00
cd tpotce
```
2. Run the `makeiso.sh` script to build the ISO image.
2016-10-26 14:07:05 +00:00
The script will download and install dependencies necessary to build the image on the invoking machine. It will further download the ubuntu network installer image (~50MB) which T-Pot is based on.
2017-09-18 21:01:34 +00:00
```
sudo ./makeiso.sh
```
After a successful build, you will find the ISO image `tpot.iso` along with a SHA256 checksum `tpot.sha256` in your folder.
2016-03-11 10:10:37 +00:00
<a name="vm"></a>
## Running in VM
You may want to run T-Pot in a virtualized environment. The virtual system configuration depends on your virtualization provider.
T-Pot is successfully tested with [VirtualBox](https://www.virtualbox.org) and [VMWare](http://www.vmware.com) with just little modifications to the default machine configurations.
2016-03-11 10:10:37 +00:00
It is important to make sure you meet the [system requirements](#requirements) and assign virtual harddisk and RAM according to the requirements while making sure networking is bridged.
2016-03-11 10:10:37 +00:00
You need to enable promiscuous mode for the network interface for fatt, suricata and p0f to work properly. Make sure you enable it during configuration.
2016-03-11 10:10:37 +00:00
If you want to use a wifi card as a primary NIC for T-Pot, please be aware that not all network interface drivers support all wireless cards. In VirtualBox e.g. you have to choose the *"MT SERVER"* model of the NIC.
2016-03-11 10:10:37 +00:00
2016-03-11 12:17:36 +00:00
Lastly, mount the `tpot.iso` ISO to the VM and continue with the installation.<br>
2016-03-11 10:10:37 +00:00
You can now jump [here](#firstrun).
<a name="hardware"></a>
## Running on Hardware
If you decide to run T-Pot on dedicated hardware, just follow these steps:
1. Burn a CD from the ISO image or make a bootable USB stick using the image. <br>
2020-09-04 13:01:21 +00:00
Whereas most CD burning tools allow you to burn from ISO images, the procedure to create a bootable USB stick from an ISO image depends on your system. There are various Windows GUI tools available, e.g. [this tip](http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-windows) might help you.<br> On [Linux](http://askubuntu.com/questions/59551/how-to-burn-a-iso-to-a-usb-device) or [MacOS](http://www.ubuntu.com/download/desktop/create-a-usb-stick-on-mac-osx) you can use the tool *dd* or create the USB stick with T-Pot's [ISO Creator](https://github.com/telekom-security).
2016-03-11 10:10:37 +00:00
2. Boot from the USB stick and install.
*Please note*: Limited tests are performed for the Intel NUC platform other hardware platforms **remain untested**. There is no hardware support provided of any kind.
2018-08-10 16:12:14 +00:00
<a name="postinstall"></a>
2018-11-28 09:40:28 +00:00
## Post-Install User
In some cases it is necessary to install Debian 10 (Buster) on your own:
2018-11-27 09:15:40 +00:00
- Cloud provider does not offer mounting ISO images.
- Hardware setup needs special drivers and / or kernels.
- Within your company you have to setup special policies, software etc.
- You just like to stay on top of things.
2018-08-10 16:12:14 +00:00
2020-03-16 15:01:18 +00:00
The T-Pot Universal Installer will upgrade the system and install all required T-Pot dependencies.
2018-08-10 16:12:14 +00:00
Important notice: The user / group `tpot` are reserved for T-Pot. The installation will abort if the user `tpot` exists. Make sure to use a different user name when preparing the OS installation for T-Pot.
2018-11-23 22:30:25 +00:00
Just follow these steps:
2018-08-10 16:12:14 +00:00
```
2020-09-04 13:01:21 +00:00
git clone https://github.com/telekom-security/tpotce
2018-08-10 16:12:14 +00:00
cd tpotce/iso/installer/
./install.sh --type=user
```
The installer will now start and guide you through the install process.
2018-11-27 09:15:40 +00:00
<a name="postinstallauto"></a>
## Post-Install Auto
2019-02-20 22:21:47 +00:00
You can also let the installer run automatically if you provide your own `tpot.conf`. An example is available in `tpotce/iso/installer/tpot.conf.dist`. This should make things easier in case you want to automate the installation i.e. with **Ansible**.
2018-11-27 09:15:40 +00:00
Just follow these steps while adjusting `tpot.conf` to your needs:
```
2020-09-04 13:01:21 +00:00
git clone https://github.com/telekom-security/tpotce
2018-11-27 09:15:40 +00:00
cd tpotce/iso/installer/
cp tpot.conf.dist tpot.conf
./install.sh --type=auto --conf=tpot.conf
```
The installer will start automatically and guide you through the install process.
2016-03-11 10:10:37 +00:00
2019-05-09 22:42:30 +00:00
<a name="cloud"></a>
## Cloud Deployments
Located in the [`cloud`](cloud) folder.
2019-06-29 21:26:34 +00:00
Currently there are examples with Ansible & Terraform.
If you would like to contribute, you can add other cloud deployments like Chef or Puppet or extend current methods with other cloud providers.
*Please note*: Cloud providers usually offer adjusted Debian OS images, which might not be compatible with T-Pot. There is no cloud provider support provided of any kind.
2019-06-29 21:26:34 +00:00
<a name="ansible"></a>
### Ansible Deployment
2019-06-29 21:38:15 +00:00
You can find an [Ansible](https://www.ansible.com/) based T-Pot deployment in the [`cloud/ansible`](cloud/ansible) folder.
2020-03-26 17:41:05 +00:00
The Playbook in the [`cloud/ansible/openstack`](cloud/ansible/openstack) folder is reusable for all **OpenStack** clouds out of the box.
2019-06-29 21:26:34 +00:00
2021-02-13 19:16:34 +00:00
It first creates all resources (security group, network, subnet, router), deploys one (or more) new servers and then installs and configures T-Pot on them.
2019-06-29 21:26:34 +00:00
2021-02-13 14:04:50 +00:00
You can have a look at the Playbook and easily adapt the deploy role for other [cloud providers](https://docs.ansible.com/ansible/latest/scenario_guides/cloud_guides.html). Check out [Ansible Galaxy](https://galaxy.ansible.com/search?keywords=&order_by=-relevance&page=1&deprecated=false&type=collection&tags=cloud) for more cloud collections.
2019-04-21 11:29:44 +00:00
*Please note*: Cloud providers usually offer adjusted Debian OS images, which might not be compatible with T-Pot. There is no cloud provider support provided of any kind.
2019-06-26 13:15:14 +00:00
<a name="terraform"></a>
### Terraform Configuration
You can find [Terraform](https://www.terraform.io/) configuration in the [`cloud/terraform`](cloud/terraform) folder.
This can be used to launch a virtual machine, bootstrap any dependencies and install T-Pot in a single step.
2020-03-26 17:41:05 +00:00
Configuration for **Amazon Web Services** (AWS) and **Open Telekom Cloud** (OTC) is currently included.
2021-02-13 14:04:50 +00:00
This can easily be extended to support other [Terraform providers](https://registry.terraform.io/browse/providers?category=public-cloud%2Ccloud-automation%2Cinfrastructure).
2019-06-26 13:15:14 +00:00
*Please note*: Cloud providers usually offer adjusted Debian OS images, which might not be compatible with T-Pot. There is no cloud provider support provided of any kind.
2016-03-11 10:10:37 +00:00
<a name="firstrun"></a>
## First Run
The installation requires very little interaction, only a locale and keyboard setting have to be answered for the basic linux installation. While the system reboots maintain the active internet connection. The T-Pot installer will start and ask you for an installation type, password for the **tsec** user and credentials for a **web user**. Everything else will be configured automatically. All docker images and other componenents will be downloaded. Depending on your network connection and the chosen installation type, the installation may take some time. With 250Mbit down / 40Mbit up the installation is usually finished within 15-30 minutes.
2016-03-11 10:10:37 +00:00
2018-08-10 16:12:14 +00:00
Once the installation is finished, the system will automatically reboot and you will be presented with the T-Pot login screen. On the console you may login with:
2016-03-11 10:10:37 +00:00
2018-11-27 09:15:40 +00:00
- user: **[tsec or user]** *you chose during one of the post install methods*
- pass: **[password]** *you chose during the installation*
2016-10-26 14:07:05 +00:00
All honeypot services are preconfigured and are starting automatically.
2015-03-05 07:36:59 +00:00
2018-08-10 16:12:14 +00:00
You can login from your browser and access the Admin UI: `https://<your.ip>:64294` or via SSH to access the command line: `ssh -l tsec -p 64295 <your.ip>`
2016-10-26 14:07:05 +00:00
2018-11-27 09:15:40 +00:00
- user: **[tsec or user]** *you chose during one of the post install methods*
- pass: **[password]** *you chose during the installation*
2018-08-10 16:12:14 +00:00
You can also login from your browser and access the Web UI: `https://<your.ip>:64297`
2018-11-27 09:15:40 +00:00
- user: **[user]** *you chose during the installation*
- pass: **[password]** *you chose during the installation*
2015-03-05 07:36:59 +00:00
2016-03-02 16:31:07 +00:00
2016-03-11 10:10:37 +00:00
<a name="placement"></a>
# System Placement
Make sure your system is reachable through a network you suspect intruders in / from (i.e. the internet). Otherwise T-Pot will most likely not capture any attacks, other than the ones from your internal network! For starters it is recommended to put T-Pot in an unfiltered zone, where all TCP and UDP traffic is forwarded to T-Pot's network interface. However to avoid fingerprinting you can put T-Pot behind a firewall and forward all TCP / UDP traffic in the port range of 1-64000 to T-Pot while allowing access to ports > 64000 only from trusted IPs.
2016-03-11 10:10:37 +00:00
2017-09-18 21:01:34 +00:00
A list of all relevant ports is available as part of the [Technical Concept](#concept)
2016-03-11 10:10:37 +00:00
<br>
Basically, you can forward as many TCP ports as you want, as glutton & honeytrap dynamically bind any TCP port that is not covered by the other honeypot daemons.
2016-03-11 10:10:37 +00:00
2018-08-10 16:12:14 +00:00
In case you need external Admin UI access, forward TCP port 64294 to T-Pot, see below.
2016-03-11 10:10:37 +00:00
In case you need external SSH access, forward TCP port 64295 to T-Pot, see below.
2018-08-10 16:12:14 +00:00
In case you need external Web UI access, forward TCP port 64297 to T-Pot, see below.
2016-03-11 10:10:37 +00:00
T-Pot requires outgoing git, http, https connections for updates (Debian, Docker, GitHub, PyPi), attack submission (ewsposter, hpfeeds) and CVE / IP reputation translation map updates (logstash, listbot). Ports and availability may vary based on your geographical location. Also during first install outgoing ICMP / TRACEROUTE is required additionally to find the closest and fastest mirror to you.
2016-03-11 10:10:37 +00:00
2018-11-27 09:15:40 +00:00
<a name="updates"></a>
# Updates
For the ones of you who want to live on the bleeding edge of T-Pot development we introduced an update feature which will allow you to update all T-Pot relevant files to be up to date with the T-Pot master branch.
**If you made any relevant changes to the T-Pot relevant config files make sure to create a backup first.**
2019-05-16 09:11:40 +00:00
2019-04-25 11:18:02 +00:00
The Update script will:
2019-05-16 09:11:40 +00:00
- **mercilessly** overwrite local changes to be in sync with the T-Pot master branch
2020-03-16 15:01:18 +00:00
- upgrade the system to the packages available in Debian (Stable)
2019-02-19 11:52:43 +00:00
- update all resources to be in-sync with the T-Pot master branch
- ensure all T-Pot relevant system files will be patched / copied into the original T-Pot state
2019-05-16 09:11:40 +00:00
- restore your custom ews.cfg and HPFEED settings from `/data/ews/conf`
2018-11-27 09:15:40 +00:00
You simply run the update script:
```
2019-06-04 17:52:58 +00:00
sudo su -
2018-11-27 09:15:40 +00:00
cd /opt/tpot/
./update.sh
2018-11-27 09:15:40 +00:00
```
**Despite all testing efforts please be reminded that updates sometimes may have unforeseen consequences. Please create a backup of the machine or the files with the most value to your work.**
2018-11-27 09:15:40 +00:00
2016-03-11 10:10:37 +00:00
<a name="options"></a>
# Options
2018-08-10 16:12:14 +00:00
The system is designed to run without any interaction or maintenance and automatically contributes to the community.<br>
For some this may not be enough. So here some examples to further inspect the system and change configuration parameters.
2016-03-11 10:10:37 +00:00
<a name="ssh"></a>
2016-10-26 14:07:05 +00:00
## SSH and web access
2018-08-10 16:12:14 +00:00
By default, the SSH daemon allows access on **tcp/64295** with a user / password combination and prevents credential brute forcing attempts using `fail2ban`. This also counts for Admin UI (**tcp/64294**) and Web UI (**tcp/64297**) access.<br>
2016-03-11 10:10:37 +00:00
2018-08-10 16:12:14 +00:00
If you do not have a SSH client at hand and still want to access the machine via command line you can do so by accessing the Admin UI from `https://<your.ip>:64294`, enter
2016-03-11 10:10:37 +00:00
2018-11-27 09:15:40 +00:00
- user: **[tsec or user]** *you chose during one of the post install methods*
- pass: **[password]** *you chose during the installation*
2016-03-11 10:10:37 +00:00
2020-03-10 15:39:16 +00:00
You can also add two factor authentication to Cockpit just by running `2fa.sh` on the command line.
2018-08-13 10:47:27 +00:00
![Cockpit Terminal](doc/cockpit3.png)
2016-10-28 16:09:33 +00:00
<a name="heimdall"></a>
## T-Pot Landing Page
2018-08-10 16:12:14 +00:00
Just open a web browser and connect to `https://<your.ip>:64297`, enter
2016-03-11 10:10:37 +00:00
2018-11-27 09:15:40 +00:00
- user: **[user]** *you chose during the installation*
- pass: **[password]** *you chose during the installation*
2016-03-11 10:10:37 +00:00
and the **Landing Page** will automagically load. Now just click on the tool / link you want to start.
![Dashbaord](doc/heimdall.png)
<a name="kibana"></a>
## Kibana Dashboard
2016-03-11 10:10:37 +00:00
2018-08-13 10:47:27 +00:00
![Dashbaord](doc/kibana.png)
2016-03-11 10:10:37 +00:00
2016-10-28 16:09:33 +00:00
<a name="tools"></a>
## Tools
The following web based tools are included to improve and ease up daily tasks.
2016-10-28 16:09:33 +00:00
2018-08-13 10:47:27 +00:00
![Cockpit Overview](doc/cockpit1.png)
2018-11-23 22:30:25 +00:00
2018-08-13 10:47:27 +00:00
![Cockpit Containers](doc/cockpit2.png)
2018-11-23 22:30:25 +00:00
2018-08-13 10:47:27 +00:00
![Cyberchef](doc/cyberchef.png)
2018-11-23 22:30:25 +00:00
2018-08-13 10:54:10 +00:00
![Spiderfoot](doc/spiderfoot.png)
2017-09-18 21:01:34 +00:00
2016-10-28 16:09:33 +00:00
2016-03-11 10:10:37 +00:00
<a name="maintenance"></a>
## Maintenance
T-Pot is designed to be low maintenance. Basically, there is nothing you have to do but let it run.
2016-03-11 10:10:37 +00:00
2017-09-18 21:01:34 +00:00
If you run into any problems, a reboot may fix it :bowtie:
2016-03-11 10:10:37 +00:00
If new versions of the components involved appear new docker images will be created and distributed. New images will be available from docker hub and downloaded automatically to T-Pot and activated accordingly.
2016-03-11 10:10:37 +00:00
<a name="submission"></a>
## Community Data Submission
T-Pot is provided in order to make it accessible to all interested in honeypots. By default, the captured data is submitted to a community backend. This community backend uses the data to feed [Sicherheitstacho](https://sicherheitstacho.eu).
2018-08-10 16:12:14 +00:00
You may opt out of the submission by removing the `# Ewsposter service` from `/opt/tpot/etc/tpot.yml`:
2017-09-18 21:01:34 +00:00
1. Stop T-Pot services: `systemctl stop tpot`
2017-10-06 10:09:33 +00:00
2. Remove Ewsposter service: `vi /opt/tpot/etc/tpot.yml`
2017-09-18 21:01:34 +00:00
3. Remove the following lines, save and exit vi (`:x!`):<br>
```
# Ewsposter service
ewsposter:
container_name: ewsposter
restart: always
networks:
- ewsposter_local
image: "ghcr.io/telekom-security/ewsposter:2006"
2017-09-18 21:01:34 +00:00
volumes:
- /data:/data
- /data/ews/conf/ews.ip:/opt/ewsposter/ews.ip
```
4. Start T-Pot services: `systemctl start tpot`
2016-03-11 10:10:37 +00:00
Data is submitted in a structured ews-format, a XML stucture. Hence, you can parse out the information that is relevant to you.
It is encouraged not to disable the data submission as it is the main purpose of the community approach - as you all know **sharing is caring** 😍
2016-03-11 10:10:37 +00:00
2019-04-01 07:56:06 +00:00
<a name="hpfeeds-optin"></a>
## Opt-In HPFEEDS Data Submission
As an Opt-In it is now possible to also share T-Pot data with 3rd party HPFEEDS brokers.
If you want to share your T-Pot data you simply have to register an account with a 3rd party broker with its own benefits towards the community. You simply run `hpfeeds_optin.sh` which will ask for your credentials. It will automatically update `/opt/tpot/etc/tpot.yml` to deliver events to your desired broker.
2019-05-16 09:11:40 +00:00
The script can accept a config file as an argument, e.g. `./hpfeeds_optin.sh --conf=hpfeeds.cfg`
Your current config will also be stored in `/data/ews/conf/hpfeeds.cfg` where you can review or change it.
2019-05-16 09:50:25 +00:00
Be sure to apply any changes by running `./hpfeeds_optin.sh --conf=/data/ews/conf/hpfeeds.cfg`.
2019-06-26 10:17:59 +00:00
No worries: Your old config gets backed up in `/data/ews/conf/hpfeeds.cfg.old`
2019-05-16 09:11:40 +00:00
2019-05-16 09:28:03 +00:00
Of course you can also rerun the `hpfeeds_optin.sh` script to change and apply your settings interactively.
2019-03-20 15:50:46 +00:00
2016-03-11 10:10:37 +00:00
<a name="roadmap"></a>
# Roadmap
As with every development there is always room for improvements ...
Some features may be provided with updated docker images, others may require some hands on from your side.
2020-09-04 13:01:21 +00:00
You are always invited to participate in development on our [GitHub](https://github.com/telekom-security/tpotce) page.
2016-03-11 10:10:37 +00:00
<a name="disclaimer"></a>
# Disclaimer
- We don't have access to your system. So we cannot remote-assist when you break your configuration. But you can simply reinstall.
- The software was designed with best effort security, not to be in stealth mode. Because then, we probably would not be able to provide those kind of honeypot services.
- You install and you run within your responsibility. Choose your deployment wisely as a system compromise can never be ruled out.
- Honeypots - by design - should not host any sensitive data. Make sure you don't add any.
- By default, your data is submitted to [SecurityMeter](https://www.sicherheitstacho.eu/start/main). You can disable this in the config. But hey, wouldn't it be better to contribute to the community?
2016-03-11 10:10:37 +00:00
<a name="faq"></a>
# FAQ
2020-09-04 13:01:21 +00:00
Please report any issues or questions on our [GitHub issue list](https://github.com/telekom-security/tpotce/issues), so the community can participate.
2016-03-11 10:10:37 +00:00
<a name="contact"></a>
# Contact
The software is provided **as is** in a Community Edition format. T-Pot is designed to run out of the box and with zero maintenance involved. <br>
2020-09-04 13:01:21 +00:00
We hope you understand that we cannot provide support on an individual basis. We will try to address questions, bugs and problems on our [GitHub issue list](https://github.com/telekom-security/tpotce/issues).
2016-03-11 10:10:37 +00:00
<a name="licenses"></a>
# Licenses
2017-09-18 21:01:34 +00:00
The software that T-Pot is built on uses the following licenses.
<br>GPLv2: [conpot](https://github.com/mushorg/conpot/blob/master/LICENSE.txt), [dionaea](https://github.com/DinoTools/dionaea/blob/master/LICENSE), [honeytrap](https://github.com/armedpot/honeytrap/blob/master/LICENSE), [suricata](http://suricata-ids.org/about/open-source/)
<br>GPLv3: [adbhoney](https://github.com/huuck/ADBHoney), [elasticpot](https://gitlab.com/bontchev/elasticpot/-/blob/master/LICENSE), [ewsposter](https://github.com/telekom-security/ews/), [log4pot](https://github.com/thomaspatzke/Log4Pot/blob/master/LICENSE), [fatt](https://github.com/0x4D31/fatt/blob/master/LICENSE), [heralding](https://github.com/johnnykv/heralding/blob/master/LICENSE.txt), [ipphoney](https://gitlab.com/bontchev/ipphoney/-/blob/master/LICENSE), [redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot/blob/main/LICENSE), [sentrypeer](https://github.com/SentryPeer/SentryPeer/blob/main/LICENSE.GPL-3.0-only), [snare](https://github.com/mushorg/snare/blob/master/LICENSE), [tanner](https://github.com/mushorg/snare/blob/master/LICENSE)
<br>Apache 2 License: [cyberchef](https://github.com/gchq/CyberChef/blob/master/LICENSE), [dicompot](https://github.com/nsmfoo/dicompot/blob/master/LICENSE), [elasticsearch](https://github.com/elasticsearch/elasticsearch/blob/master/LICENSE.txt), [logstash](https://github.com/elasticsearch/logstash/blob/master/LICENSE), [kibana](https://github.com/elasticsearch/kibana/blob/master/LICENSE.md), [docker](https://github.com/docker/docker/blob/master/LICENSE)
<br>MIT license: [ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot/blob/master/LICENSE), [ddospot](https://github.com/aelth/ddospot/blob/master/LICENSE), [elasticvue](https://github.com/cars10/elasticvue/blob/master/LICENSE), [glutton](https://github.com/mushorg/glutton/blob/master/LICENSE), [hellpot](https://github.com/yunginnanet/HellPot/blob/master/LICENSE), [maltrail](https://github.com/stamparm/maltrail/blob/master/LICENSE)
2021-08-26 13:14:04 +00:00
<br> Unlicense: [endlessh](https://github.com/skeeto/endlessh/blob/master/UNLICENSE)
2021-02-19 10:21:53 +00:00
<br> Other: [citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot#licencing-agreement-malwaretech-public-licence), [cowrie](https://github.com/micheloosterhof/cowrie/blob/master/LICENSE.md), [mailoney](https://github.com/awhitehatter/mailoney), [Debian licensing](https://www.debian.org/legal/licenses/), [Elastic License](https://www.elastic.co/licensing/elastic-license)
2021-11-18 19:58:17 +00:00
<br> AGPL-3.0: [honeypots](https://github.com/qeeqbox/honeypots/blob/main/LICENSE)
2016-03-11 10:10:37 +00:00
<a name="credits"></a>
# Credits
2019-02-19 11:52:43 +00:00
Without open source and the fruitful development community (we are proud to be a part of), T-Pot would not have been possible! Our thanks are extended but not limited to the following people and organizations:
2016-03-11 10:10:37 +00:00
2017-09-18 21:01:34 +00:00
### The developers and development communities of
2016-03-11 10:10:37 +00:00
* [adbhoney](https://github.com/huuck/ADBHoney/graphs/contributors)
2019-04-04 08:36:35 +00:00
* [apt-fast](https://github.com/ilikenwf/apt-fast/graphs/contributors)
2018-08-13 10:47:27 +00:00
* [ciscoasa](https://github.com/Cymmetria/ciscoasa_honeypot/graphs/contributors)
2020-01-15 12:14:23 +00:00
* [citrixhoneypot](https://github.com/MalwareTech/CitrixHoneypot/graphs/contributors)
2018-08-13 10:47:27 +00:00
* [cockpit](https://github.com/cockpit-project/cockpit/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [conpot](https://github.com/mushorg/conpot/graphs/contributors)
* [cowrie](https://github.com/micheloosterhof/cowrie/graphs/contributors)
2021-08-26 13:14:04 +00:00
* [ddospot](https://github.com/aelth/ddospot/graphs/contributors)
2019-03-20 15:50:46 +00:00
* [debian](http://www.debian.org/)
2020-06-18 16:38:43 +00:00
* [dicompot](https://github.com/nsmfoo/dicompot/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [dionaea](https://github.com/DinoTools/dionaea/graphs/contributors)
* [docker](https://github.com/docker/docker/graphs/contributors)
* [elasticpot](https://gitlab.com/bontchev/elasticpot/-/project_members)
2016-03-11 10:10:37 +00:00
* [elasticsearch](https://github.com/elastic/elasticsearch/graphs/contributors)
* [elasticvue](https://github.com/cars10/elasticvue/graphs/contributors)
2021-08-26 13:14:04 +00:00
* [endlessh](https://github.com/skeeto/endlessh/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [ewsposter](https://github.com/armedpot/ewsposter/graphs/contributors)
2019-06-04 14:33:02 +00:00
* [fatt](https://github.com/0x4D31/fatt/graphs/contributors)
2018-08-13 10:47:27 +00:00
* [glutton](https://github.com/mushorg/glutton/graphs/contributors)
2021-08-26 13:14:04 +00:00
* [hellpot](https://github.com/yunginnanet/HellPot/graphs/contributors)
2018-08-13 10:47:27 +00:00
* [heralding](https://github.com/johnnykv/heralding/graphs/contributors)
2021-11-18 19:58:17 +00:00
* [honeypots](https://github.com/qeeqbox/honeypots/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [honeytrap](https://github.com/armedpot/honeytrap/graphs/contributors)
2020-08-24 21:36:08 +00:00
* [ipphoney](https://gitlab.com/bontchev/ipphoney/-/project_members)
2016-03-11 10:10:37 +00:00
* [kibana](https://github.com/elastic/kibana/graphs/contributors)
* [logstash](https://github.com/elastic/logstash/graphs/contributors)
2021-12-16 22:10:25 +00:00
* [log4pot](https://github.com/thomaspatzke/Log4Pot/graphs/contributors)
2017-09-18 21:01:34 +00:00
* [mailoney](https://github.com/awhitehatter/mailoney)
* [maltrail](https://github.com/stamparm/maltrail/graphs/contributors)
2018-11-23 22:30:25 +00:00
* [medpot](https://github.com/schmalle/medpot/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [p0f](http://lcamtuf.coredump.cx/p0f3/)
2021-08-26 13:14:04 +00:00
* [redishoneypot](https://github.com/cypwnpwnsocute/RedisHoneyPot/graphs/contributors)
* [sentrypeer](https://github.com/SentryPeer/SentryPeer/graphs/contributors),
2017-09-18 21:01:34 +00:00
* [spiderfoot](https://github.com/smicallef/spiderfoot)
2018-08-13 10:47:27 +00:00
* [snare](https://github.com/mushorg/snare/graphs/contributors)
* [tanner](https://github.com/mushorg/tanner/graphs/contributors)
2016-03-11 10:10:37 +00:00
* [suricata](https://github.com/inliniac/suricata/graphs/contributors)
2017-09-18 21:01:34 +00:00
### The following companies and organizations
2019-02-19 11:52:43 +00:00
* [debian](https://www.debian.org/)
2016-03-11 10:10:37 +00:00
* [docker](https://www.docker.com/)
* [elastic.io](https://www.elastic.co/)
* [honeynet project](https://www.honeynet.org/)
2016-10-26 14:07:05 +00:00
* [intel](http://www.intel.com)
2016-03-11 10:10:37 +00:00
### ... and of course ***you*** for joining the community!
<a name="staytuned"></a>
# Stay tuned ...
A new version of T-Pot is released about every 6-12 months, development has shifted more and more towards rolling releases and the usage of `/opt/tpot/update.sh`.
2016-03-03 16:45:49 +00:00
2019-02-22 15:35:10 +00:00
<a name="testimonial"></a>
2020-07-01 09:53:38 +00:00
# Testimonials
2019-02-22 15:35:10 +00:00
One of the greatest feedback we have gotten so far is by one of the Conpot developers:<br>
2020-07-01 09:53:38 +00:00
***"[...] I highly recommend T-Pot which is ... it's not exactly a swiss army knife .. it's more like a swiss army soldier, equipped with a swiss army knife. Inside a tank. A swiss tank. [...]"***<br>
And from @robcowart (creator of [ElastiFlow](https://github.com/robcowart/elastiflow)):<br>
***"#TPot is one of the most well put together turnkey honeypot solutions. It is a must-have for anyone wanting to analyze and understand the behavior of malicious actors and the threat they pose to your organization."***