include docker repos

... skip emobility since it is a dev repo
This commit is contained in:
Marco Ochse
2017-10-13 18:58:14 +00:00
parent f1ada16414
commit 0d5d80b1e3
152 changed files with 22265 additions and 0 deletions

54
docker/conpot/Dockerfile Normal file
View File

@ -0,0 +1,54 @@
FROM alpine
MAINTAINER MO
# Include dist
ADD dist/ /root/dist/
# Setup apt
RUN apk -U add bash \
build-base \
file \
git \
libev \
libtool \
libxslt \
libxslt-dev \
mariadb-dev \
mariadb-client-libs \
pkgconfig \
python \
python-dev \
py-cffi && \
# Setup ConPot
git clone https://github.com/mushorg/conpot /opt/conpot/ && \
cd /opt/conpot/ && \
git checkout d97a68a054e4fe42ff90293188a5702ce8ab09a3 && \
cp /root/dist/requirements.txt /opt/conpot/ && \
python setup.py install && \
cd / && \
rm -rf /opt/conpot /tmp/* /var/tmp/* && \
# Setup user, groups and configs
addgroup -g 2000 conpot && \
adduser -S -s /bin/bash -u 2000 -D -g 2000 conpot && \
mkdir -p /etc/conpot /var/log/conpot && \
mv /root/dist/conpot.cfg /etc/conpot/conpot.cfg && \
mv /root/dist/kamstrup_382/template.xml /usr/lib/python2.7/site-packages/Conpot-0.5.1-py2.7.egg/conpot/templates/kamstrup_382/ && \
# Clean up
apk del build-base \
file \
git \
libev \
libtool \
libxslt-dev \
mariadb-dev \
pkgconfig \
python-dev \
py-cffi && \
rm -rf /root/* && \
rm -rf /var/cache/apk/*
# Run supervisor upon container start
CMD ["/usr/bin/conpot", "--template", "kamstrup_382", "--logfile", "/var/log/conpot/conpot.log", "--config", "/etc/conpot/conpot.cfg"]

28
docker/conpot/README.md Normal file
View File

@ -0,0 +1,28 @@
[![](https://images.microbadger.com/badges/version/dtagdevsec/conpot:1706.svg)](https://microbadger.com/images/dtagdevsec/conpot:1706 "Get your own version badge on microbadger.com") [![](https://images.microbadger.com/badges/image/dtagdevsec/conpot:1706.svg)](https://microbadger.com/images/dtagdevsec/conpot:1706 "Get your own image badge on microbadger.com")
# conpot
[ConPot](http://conpot.org/) is a low interactive server side Industrial Control Systems honeypot designed to be easy to deploy, modify and extend. By providing a range of common industrial control protocols we created the basics to build your own system, capable to emulate complex infrastructures to convince an adversary that he just found a huge industrial complex. To improve the deceptive capabilities, we also provided the possibility to server a custom human machine interface to increase the honeypots attack surface. The response times of the services can be artificially delayed to mimic the behaviour of a system under constant load. Because we are providing complete stacks of the protocols, Conpot can be accessed with productive HMI's or extended with real hardware. Conpot is developed under the umbrella of the [Honeynet Project](https://www.honeynet.org/) and on the shoulders of a couple of very big giants.
This repository contains the necessary files to create a *dockerized* version of conpot.
This dockerized version is part of the **[T-Pot community honeypot](http://dtag-dev-sec.github.io/)** of Deutsche Telekom AG.
The `Dockerfile` contains the blueprint for the dockerized conpot and will be used to setup the docker image.
The `supervisord.conf` is used to start conpot under supervision of supervisord.
Using systemd, copy the `systemd/conpot.service` to `/etc/systemd/system/conpot.service` and start using
```
systemctl enable conpot
systemctl start conpot
```
This will make sure that the docker container is started with the appropriate permissions and port mappings. Further, it autostarts during boot.
By default all data will be stored in `/data/conpot/` until the honeypot service will be restarted which is by default every 24 hours. If you want to keep data persistently simply edit the ``service`` file, find the line that contains ``clean.sh`` and set the option from ``off`` to ``on``. Be advised to establish some sort of log management if you wish to do so.
# ConPot Dashboard
![ConPot Dashboard](https://raw.githubusercontent.com/dtag-dev-sec/conpot/master/doc/dashboard.png)

58
docker/conpot/dist/conpot.cfg vendored Normal file
View File

@ -0,0 +1,58 @@
[common]
sensorid = conpot
[session]
timeout = 30
[daemon]
user = conpot
group = conpot
[json]
enabled = True
filename = /var/log/conpot/conpot.json
[sqlite]
enabled = False
[mysql]
enabled = False
device = /tmp/mysql.sock
host = localhost
port = 3306
db = conpot
username = conpot
passphrase = conpot
socket = tcp ; tcp (sends to host:port), dev (sends to mysql device/socket file)
[syslog]
enabled = False
device = /dev/log
host = localhost
port = 514
facility = local0
socket = dev ; udp (sends to host:port), dev (sends to device)
[hpfriends]
enabled = False
host = hpfriends.honeycloud.net
port = 20000
ident = 3Ykf9Znv
secret = 4nFRhpm44QkG9cvD
channels = ["conpot.events", ]
[taxii]
enabled = False
host = taxiitest.mitre.org
port = 80
inbox_path = /services/inbox/default/
use_https = False
[fetch_public_ip]
enabled = True
urls = ["http://whatismyip.akamai.com/", "http://wgetip.com/"]
[change_mac_addr]
enabled = False
iface = eth0
addr = 00:de:ad:be:ef:00

View File

@ -0,0 +1,516 @@
<core>
<template>
<!-- General information about the template -->
<entity name="unit">382</entity>
<entity name="vendor">Kamstrup</entity>
<entity name="description">Register clone of an existing Kamstrup 382 smart meter</entity>
<entity name="protocols">Kamstrup</entity>
<entity name="creator">Johnny Vestergaard</entity>
</template>
<databus>
<!-- Core value that can be retrieved from the databus by key -->
<key_value_mappings>
<key name="power_simulator">
<value type="function">conpot.protocols.kamstrup.usage_simulator.UsageSimulator</value>
</key>
<key name="register_1024">
<value type="value">0</value>
</key>
<key name="register_1">
<value type="value">0</value>
</key>
<key name="register_2">
<value type="value">0</value>
</key>
<key name="register_13">
<value type="value">71832712</value>
</key>
<key name="register_14">
<value type="value">0</value>
</key>
<key name="register_1054">
<value type="value">228</value>
</key>
<key name="register_1055">
<value type="value">229</value>
</key>
<key name="register_1056">
<value type="value">224</value>
</key>
<key name="register_1076">
<value type="value">511</value>
</key>
<key name="register_1077">
<value type="value">422</value>
</key>
<key name="register_1078">
<value type="value">144</value>
</key>
<key name="register_1080">
<value type="value">1000</value>
</key>
<key name="register_1081">
<value type="value">5499</value>
</key>
<key name="register_1082">
<value type="value">895</value>
</key>
<key name="register_3">
<value type="value">0</value>
</key>
<key name="register_4">
<value type="value">0</value>
</key>
<key name="register_5">
<value type="value">0</value>
</key>
<key name="register_6">
<value type="value">0</value>
</key>
<key name="register_1025">
<value type="value">0</value>
</key>
<key name="register_1033">
<value type="value">0</value>
</key>
<key name="register_1034">
<value type="value">0</value>
</key>
<key name="register_1035">
<value type="value">0</value>
</key>
<key name="register_1036">
<value type="value">0</value>
</key>
<key name="register_15">
<value type="value">0</value>
</key>
<key name="register_16">
<value type="value">0</value>
</key>
<key name="register_17">
<value type="value">0</value>
</key>
<key name="register_18">
<value type="value">0</value>
</key>
<key name="register_1027">
<value type="value">0</value>
</key>
<key name="register_20">
<value type="value">0</value>
</key>
<key name="register_21">
<value type="value">0</value>
</key>
<key name="register_22">
<value type="value">0</value>
</key>
<key name="register_23">
<value type="value">0</value>
</key>
<key name="register_24">
<value type="value">0</value>
</key>
<key name="register_25">
<value type="value">0</value>
</key>
<key name="register_26">
<value type="value">0</value>
</key>
<key name="register_27">
<value type="value">0</value>
</key>
<key name="register_28">
<value type="value">0</value>
</key>
<key name="register_29">
<value type="value">0</value>
</key>
<key name="register_30">
<value type="value">0</value>
</key>
<key name="register_31">
<value type="value">0</value>
</key>
<key name="register_32">
<value type="value">0</value>
</key>
<key name="register_33">
<value type="value">0</value>
</key>
<key name="register_34">
<value type="value">0</value>
</key>
<key name="register_35">
<value type="value">0</value>
</key>
<key name="register_36">
<value type="value">0</value>
</key>
<key name="register_37">
<value type="value">0</value>
</key>
<key name="register_38">
<value type="value">0</value>
</key>
<key name="register_39">
<value type="value">0</value>
</key>
<key name="register_40">
<value type="value">0</value>
</key>
<key name="register_41">
<value type="value">0</value>
</key>
<key name="register_42">
<value type="value">0</value>
</key>
<key name="register_43">
<value type="value">0</value>
</key>
<key name="register_44">
<value type="value">0</value>
</key>
<key name="register_45">
<value type="value">0</value>
</key>
<key name="register_46">
<value type="value">0</value>
</key>
<key name="register_1071">
<value type="value">0</value>
</key>
<key name="register_1072">
<value type="value">0</value>
</key>
<key name="register_1073">
<value type="value">0</value>
</key>
<key name="register_50">
<value type="value">0</value>
</key>
<key name="register_51">
<value type="value">1258679</value>
</key>
<key name="register_52">
<value type="value">0</value>
</key>
<key name="register_53">
<value type="value">0</value>
</key>
<key name="register_54">
<value type="value">21000002</value>
</key>
<key name="register_55">
<value type="value">22201011</value>
</key>
<key name="register_56">
<value type="value">1000</value>
</key>
<key name="register_57">
<value type="value">0</value>
</key>
<key name="register_58">
<value type="value">0</value>
</key>
<key name="register_1083">
<value type="value">34353</value>
</key>
<key name="register_1084">
<value type="value">256</value>
</key>
<key name="register_1086">
<value type="value">101110</value>
</key>
<key name="register_1205">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1092">
<value type="value">1</value>
</key>
<key name="register_1037">
<value type="value">0</value>
</key>
<key name="register_1038">
<value type="value">0</value>
</key>
<key name="register_1112">
<value type="value">30</value>
</key>
<key name="register_1113">
<value type="value">30</value>
</key>
<key name="register_1114">
<value type="value">30</value>
</key>
<key name="register_1039">
<value type="value">99000</value>
</key>
<key name="register_1121">
<value type="value">0</value>
</key>
<key name="register_1026">
<value type="value">0</value>
</key>
<key name="register_1126">
<value type="value">3820031751153221778937193183286</value>
</key>
<key name="register_19">
<value type="value">0</value>
</key>
<key name="register_1047">
<value type="value">9441543881752250126</value>
</key>
<key name="register_1049">
<value type="value">0</value>
</key>
<key name="register_1050">
<value type="value">0</value>
</key>
<key name="register_1028">
<value type="value">0</value>
</key>
<key name="register_1051">
<value type="value">0</value>
</key>
<key name="register_1189">
<value type="value">0</value>
</key>
<key name="register_1202">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1203">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1204">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1206">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1207">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1208">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1209">
<value type="value">340282366920938463463374607431768211455</value>
</key>
<key name="register_1029">
<value type="value">100</value>
</key>
<key name="register_1058">
<value type="value">227691635558201180633139</value>
</key>
<key name="register_1115">
<value type="value">60</value>
</key>
<key name="register_1059">
<value type="value">0</value>
</key>
<key name="register_1060">
<value type="value">0</value>
</key>
<key name="register_1030">
<value type="value">46828625</value>
</key>
<key name="register_1061">
<value type="value">0</value>
</key>
<key name="register_1062">
<value type="value">0</value>
</key>
<key name="register_1063">
<value type="value">0</value>
</key>
<key name="register_1064">
<value type="value">0</value>
</key>
<key name="register_1065">
<value type="value">0</value>
</key>
<key name="register_1031">
<value type="value">0</value>
</key>
<key name="register_1066">
<value type="value">0</value>
</key>
<key name="register_1067">
<value type="value">0</value>
</key>
<key name="register_1068">
<value type="value">0</value>
</key>
<key name="register_1069">
<value type="value">0</value>
</key>
<key name="register_1070">
<value type="value">0</value>
</key>
<key name="register_1074">
<value type="value">0</value>
</key>
<key name="register_1075">
<value type="value">0</value>
</key>
<key name="register_1079">
<value type="value">315</value>
</key>
<key name="register_1181">
<value type="value">433534329705531658</value>
</key>
<key name="register_1001">
<value type="value">15085488</value>
</key>
<key name="register_1002">
<value type="value">203513</value>
</key>
<key name="register_1003">
<value type="value">140727</value>
</key>
<key name="register_1004">
<value type="value">283</value>
</key>
<key name="register_1005">
<value type="value">53011401</value>
</key>
<key name="register_1010">
<value type="value">15085488</value>
</key>
<key name="register_1021">
<value type="value">0</value>
</key>
<key name="register_1023">
<value type="value">0</value>
</key>
<key name="reboot_signal">
<value type="value">0</value>
</key>
<key name="software_version">
<value type="value">'5.5 (E5)'</value>
</key>
<key name="access_control_status">
<value type="value">'DISABLED'</value>
</key>
<key name="access_control_1">
<value type="value">'0.0.0.0'</value>
</key>
<key name="access_control_2">
<value type="value">'0.0.0.0'</value>
</key>
<key name="access_control_3">
<value type="value">'0.0.0.0'</value>
</key>
<key name="access_control_4">
<value type="value">'0.0.0.0'</value>
</key>
<key name="access_control_5">
<value type="value">'0.0.0.0'</value>
</key>
<key name="device_name">
<value type="value">''</value>
</key>
<key name="nameserver_1">
<value type="value">'192.168.254.111'</value>
</key>
<key name="nameserver_2">
<value type="value">'192.168.254.112'</value>
</key>
<key name="nameserver_3">
<value type="value">'0.0.0.0'</value>
</key>
<key name="mac_address">
<value type="value">'00:13:EA:00:72:FA'</value>
</key>
<key name="use_dhcp">
<value type="value">'YES'</value>
</key>
<key name="ip_addr">
<value type="value">'192.168.201.101'</value>
</key>
<key name="ip_gateway">
<value type="value">'192.168.201.254'</value>
</key>
<key name="ip_subnet">
<value type="value">'255.255.255.0'</value>
</key>
<key name="ip_addr_dhcp">
<value type="value">'192.168.200.1'</value>
</key>
<key name="ip_gateway_dhcp">
<value type="value">'192.168.200.254'</value>
</key>
<key name="ip_subnet_dhcp">
<value type="value">'255.255.255.0'</value>
</key>
<key name="kap_a_server_hostname">
<value type="value">'de_fra_lxg00.local.dom'</value>
</key>
<key name="kap_a_server_ip">
<value type="value">'192.168.254.201'</value>
</key>
<key name="kap_a_server_port">
<value type="value">'50'</value>
</key>
<key name="kap_b_server_ip">
<value type="value">'0.0.0.0'</value>
</key>
<key name="kap_b_server_port">
<value type="value">'50'</value>
</key>
<key name="channel_a_meternumber">
<value type="value">'A1 06 A1 02 B7 34 12 00 00 03'</value>
</key>
<key name="channel_b_meternumber">
<value type="value">'A1 06 A1 02 B7 34 12 00 00 03'</value>
</key>
<key name="channel_a_port">
<value type="value">'1025'</value>
</key>
<key name="channel_b_port">
<value type="value">'1027'</value>
</key>
<key name="kap_ack_server">
<value type="value">'NO'</value>
</key>
<key name="kap_local_port">
<value type="value">'800'</value>
</key>
<key name="alarm_server_status">
<value type="value">'DISABLED'</value>
</key>
<key name="alarm_server_ip">
<value type="value">''</value>
</key>
<key name="alarm_server_port">
<value type="value">'4000'</value>
</key>
<key name="kap_server_lookup">
<value type="value">'0 - none'</value>
</key>
<key name="software_watchdog">
<value type="value">'3600'</value>
</key>
<key name="kap_missing_warning">
<value type="value">'60'</value>
</key>
<key name="keep_alive_timer">
<value type="value">'10'</value>
</key>
<key name="serial_settings_a">
<value type="value">'Auto'</value>
</key>
<key name="serial_settings_b">
<value type="value">'115200,8,E,1'</value>
</key>
<key name="channel_a_connect_socket">
<value type="value">'0 - None'</value>
</key>
<key name="channel_b_connect_socket">
<value type="value">'0 - None'</value>
</key>
</key_value_mappings>
</databus>
</core>

23
docker/conpot/dist/requirements.txt vendored Normal file
View File

@ -0,0 +1,23 @@
gevent>=1.0
pysnmp==4.3.5
pysmi==0.1.3
lxml
bottle
jinja2
beautifulsoup4
requests
sphinx==1.5.5
libtaxii>=1.1.0
MySQL-python
xlrd
crc16
enum
hpfeeds
modbus-tk
stix-validator
stix
cybox
bacpypes==0.13.8
pyghmi
mixbox
modbus-tk

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 KiB

View File

@ -0,0 +1,19 @@
version: '2.1'
networks:
conpot_local:
services:
# Conpot service
conpot:
container_name: conpot
restart: always
networks:
- conpot_local
ports:
- "1025:1025"
- "50100:50100"
image: "dtagdevsec/conpot:1706"
volumes:
- /data/conpot/log:/var/log/conpot