Skip to content

Commit 3badae5

Browse files
authored
Release T-Pot 20.06.0
# Release Notes ## Upgrade from 19.03.x - If you are running T-Pot 19.x you can upgrade to T-Pot 20.06.0 by running `/opt/tpot/update.sh`. Please be aware upgrades can break things, so please backup all of your data or take snapshot of your machine **before** you run the update procedure. - To protect possible changes of your Kibana objects you need to manually [export](https://github.com/dtag-dev-sec/tpotce/wiki/Import---Export-Kibana-Objects) (backup) your objects and manually [import](https://github.com/dtag-dev-sec/tpotce/wiki/Import---Export-Kibana-Objects) (overwrite) the provided T-Pot Kibana Objects after upgrading. ## Changelog - **Release T-Pot 20.06.0** - After 4 months of public testing with the NextGen edition T-Pot 20.06 can finally be released. - **Debian Buster** - With the release of Debian Buster T-Pot now has access to all packages required right out of the box. - **Add new honeypots** - [Dicompot](https://github.com/nsmfoo/dicompot) by @nsmfoo is a low interaction honeypot for the Dicom protocol which is the international standard to process medical imaging information. Together with Medpot which supports the HL7 protocol T-Pot is now offering a Medical Installation type. - [Honeysap](https://github.com/SecureAuthCorp/HoneySAP) by SecureAuthCorp is a low interaction honeypot for the SAP services, in case of T-Pot configured for the SAP router. - [Elasticpot](https://gitlab.com/bontchev/elasticpot) by Vesselin Bontchev replaces ElasticpotPY as a low interaction honeypot for Elasticsearch with more features, plugins and scripted responses. - **Rebuild Images** - All docker images were rebuilt based on the latest (and stable running) versions of the tools and honeypots. Mostly the images now run on Alpine 3.12 / Debian Buster. However some honeypots / tools still reuire Alpine 3.11 / 3.10 to run properly. - **Install Types** - All docker-compose files (`/opt/tpot/etc/compose`) were remixed and most of the NextGen honeypots are now available in Standard. - There is now a **Medical** Installation Type with Dicompot and Medpot which will be of most interest for medical institutions to get started with T-Pot. - **Update Tools** - Connecting to T-Pot via `https://<ip>:64297` brings you to the T-Pot Landing Page now which is based on Heimdall and the latest NGINX enforcing TLS 1.3. - The ELK stack was updated to 7.8.0 and stripped down to the necessary core functions (where possible) for T-Pot while keeping ELK RAM requirements to a minimum (8GB of RAM is recommended now). The number of index pattern fields was reduced to **697** which increases performance significantly. There are **22** Kibana Dashboards, **397** Kibana Visualizations and **24** Kibana Searches readily available to cover all your needs to get started and familiar with T-Pot. - Cyberchef was updated to 9.21.0. - Elasticsearch Head was updated to the latest version available on GitHub. - Spiderfoot was updated to latest 3.1 dev. - **Landing Page** - After logging into T-Pot via web you are now greeted with a beautifully designed landing page. - **Countless Tweaks and improvements** - Under the hood lots of tiny tweaks, improvements and a few bugfixes will increase your overall experience with T-Pot.
2 parents 0aaf73e + 530564f commit 3badae5

File tree

117 files changed

+1775
-4704
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

117 files changed

+1775
-4704
lines changed

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Changelog
22

3+
## 20200630
4+
- **Release T-Pot 20.06**
5+
- After 4 months of public testing with the NextGen edition T-Pot 20.06 can finally be released.
6+
- **Debian Buster**
7+
- With the release of Debian Buster T-Pot now has access to all packages required right out of the box.
8+
- **Add new honeypots**
9+
- [Dicompot](https://github.com/nsmfoo/dicompot) by @nsmfoo is a low interaction honeypot for the Dicom protocol which is the international standard to process medical imaging information. Together with Medpot which supports the HL7 protocol T-Pot is now offering a Medical Installation type.
10+
- [Honeysap](https://github.com/SecureAuthCorp/HoneySAP) by SecureAuthCorp is a low interaction honeypot for the SAP services, in case of T-Pot configured for the SAP router.
11+
- [Elasticpot](https://gitlab.com/bontchev/elasticpot) by Vesselin Bontchev replaces ElasticpotPY as a low interaction honeypot for Elasticsearch with more features, plugins and scripted responses.
12+
- **Rebuild Images**
13+
- All docker images were rebuilt based on the latest (and stable running) versions of the tools and honeypots. Mostly the images now run on Alpine 3.12 / Debian Buster. However some honeypots / tools still reuire Alpine 3.11 / 3.10 to run properly.
14+
- **Install Types**
15+
- All docker-compose files (`/opt/tpot/etc/compose`) were remixed and most of the NextGen honeypots are now available in Standard.
16+
- There is now a **Medical** Installation Type with Dicompot and Medpot which will be of most interest for medical institutions to get started with T-Pot.
17+
- **Update Tools**
18+
- Connecting to T-Pot via `https://<ip>:64297` brings you to the T-Pot Landing Page now which is based on Heimdall and the latest NGINX enforcing TLS 1.3.
19+
- The ELK stack was updated to 7.8.0 and stripped down to the necessary core functions (where possible) for T-Pot while keeping ELK RAM requirements to a minimum (8GB of RAM is recommended now). The number of index pattern fields was reduced to **697** which increases performance significantly. There are **22** Kibana Dashboards, **397** Kibana Visualizations and **24** Kibana Searches readily available to cover all your needs to get started and familiar with T-Pot.
20+
- Cyberchef was updated to 9.21.0.
21+
- Elasticsearch Head was updated to the latest version available on GitHub.
22+
- Spiderfoot was updated to latest 3.1 dev.
23+
- **Landing Page**
24+
- After logging into T-Pot via web you are now greeted with a beautifully designed landing page.
25+
- **Countless Tweaks and improvements**
26+
- Under the hood lots of tiny tweaks, improvements and a few bugfixes will increase your overall experience with T-Pot.
27+
328
## 20200316
429
- **Move from Sid to Stable**
530
- Debian Stable has now all the packages and versions we need for T-Pot. As a consequence we can now move to the `stable` branch.
@@ -207,3 +232,5 @@
207232
- If T-Pot, opposed to the requirements, does not have full internet access netselect-apt fails to determine the fastest mirror as it needs ICMP and UDP outgoing. Should netselect-apt fail the default mirrors will be used.
208233
- **Improve install speed with apt-fast**
209234
- Migrating from a stable base install to Debian (Sid) requires downloading lots of packages. Depending on your geo location the download speed was already improved by introducing netselect-apt to determine the fastest mirror. With apt-fast the downloads will be even faster by downloading packages not only in parallel but also with multiple connections per package.
235+
236+
`git log --date=format:"## %Y%m%d" --pretty=format:"%ad %n- **%s**%n - %b"`

README.md

Lines changed: 98 additions & 83 deletions
Large diffs are not rendered by default.

bin/clean.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,15 @@ fuCOWRIE () {
114114
chown tpot:tpot /data/cowrie -R
115115
}
116116

117+
# Let's create a function to clean up and prepare dicompot data
118+
fuDICOMPOT () {
119+
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/dicompot/log; fi
120+
mkdir -p /data/dicompot/log
121+
mkdir -p /data/dicompot/images
122+
chmod 770 /data/dicompot -R
123+
chown tpot:tpot /data/dicompot -R
124+
}
125+
117126
# Let's create a function to clean up and prepare dionaea data
118127
fuDIONAEA () {
119128
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/dionaea/*; fi
@@ -172,6 +181,14 @@ fuHONEYPY () {
172181
chown tpot:tpot /data/honeypy -R
173182
}
174183

184+
# Let's create a function to clean up and prepare honeysap data
185+
fuHONEYSAP () {
186+
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/honeysap/*; fi
187+
mkdir -p /data/honeysap/log
188+
chmod 770 /data/honeysap -R
189+
chown tpot:tpot /data/honeysap -R
190+
}
191+
175192
# Let's create a function to clean up and prepare honeytrap data
176193
fuHONEYTRAP () {
177194
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/honeytrap/*; fi
@@ -271,12 +288,14 @@ if [ "$myPERSISTENCE" = "on" ];
271288
fuCITRIXHONEYPOT
272289
fuCONPOT
273290
fuCOWRIE
291+
fuDICOMPOT
274292
fuDIONAEA
275293
fuELASTICPOT
276294
fuELK
277295
fuFATT
278296
fuGLUTTON
279297
fuHERALDING
298+
fuHONEYSAP
280299
fuHONEYPY
281300
fuHONEYTRAP
282301
fuMAILONEY

bin/export_kibana-objects.sh

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ fi
1717
myDATE=$(date +%Y%m%d%H%M)
1818
myINDEXCOUNT=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=index-pattern' | jq '.saved_objects[].attributes' | tr '\\' '\n' | grep "scripted" | wc -w)
1919
myINDEXID=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=index-pattern' | jq '.saved_objects[].id' | tr -d '"')
20-
myDASHBOARDS=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=dashboard&per_page=300' | jq '.saved_objects[].id' | tr -d '"')
21-
myVISUALIZATIONS=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=visualization&per_page=300' | jq '.saved_objects[].id' | tr -d '"')
22-
mySEARCHES=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=search&per_page=300' | jq '.saved_objects[].id' | tr -d '"')
20+
myDASHBOARDS=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=dashboard&per_page=500' | jq '.saved_objects[].id' | tr -d '"')
21+
myVISUALIZATIONS=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=visualization&per_page=500' | jq '.saved_objects[].id' | tr -d '"')
22+
mySEARCHES=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=search&per_page=500' | jq '.saved_objects[].id' | tr -d '"')
23+
myCONFIGS=$(curl -s -XGET ''$myKIBANA'api/saved_objects/_find?type=config&per_page=500' | jq '.saved_objects[].id' | tr -d '"')
2324
myCOL1=""
2425
myCOL0=""
2526

2627
# Let's ensure normal operation on exit or if interrupted ...
2728
function fuCLEANUP {
28-
rm -rf patterns/ dashboards/ visualizations/ searches/
29+
rm -rf patterns/ dashboards/ visualizations/ searches/ configs/
2930
}
3031
trap fuCLEANUP EXIT
3132

@@ -65,12 +66,22 @@ for i in $mySEARCHES;
6566
done;
6667
echo
6768

69+
# Export configs
70+
mkdir -p configs
71+
echo $myCOL1"### Now exporting"$myCOL0 $(echo $myCONFIGS | wc -w) $myCOL1"configs." $myCOL0
72+
for i in $myCONFIGS;
73+
do
74+
echo $myCOL1"###### "$i $myCOL0
75+
curl -s -XGET ''$myKIBANA'api/saved_objects/config/'$i'' | jq '. | {attributes, references}' > configs/$i.json &
76+
done;
77+
echo
78+
6879
# Wait for background exports to finish
6980
wait
7081

7182
# Building tar archive
7283
echo $myCOL1"### Now building archive"$myCOL0 "kibana-objects_"$myDATE".tgz"
73-
tar cvfz kibana-objects_$myDATE.tgz patterns dashboards visualizations searches > /dev/null
84+
tar cvfz kibana-objects_$myDATE.tgz patterns dashboards visualizations searches configs > /dev/null
7485

7586
# Stats
7687
echo
@@ -79,4 +90,5 @@ echo $myCOL1"###### Exported"$myCOL0 $myINDEXCOUNT $myCOL1"index patterns." $myC
7990
echo $myCOL1"###### Exported"$myCOL0 $(echo $myDASHBOARDS | wc -w) $myCOL1"dashboards." $myCOL0
8091
echo $myCOL1"###### Exported"$myCOL0 $(echo $myVISUALIZATIONS | wc -w) $myCOL1"visualizations." $myCOL0
8192
echo $myCOL1"###### Exported"$myCOL0 $(echo $mySEARCHES | wc -w) $myCOL1"searches." $myCOL0
93+
echo $myCOL1"###### Exported"$myCOL0 $(echo $myCONFIGS | wc -w) $myCOL1"configs." $myCOL0
8294
echo

bin/hptest.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
myHOST="$1"
4-
myPACKAGES="netcat nmap"
4+
myPACKAGES="dcmtk netcat nmap"
55
myMEDPOTPACKET="
66
MSH|^~\&|ADT1|MCM|LABADT|MCM|198808181126|SECURITY|ADT^A01|MSG00001-|P|2.6
77
EVN|A01|198808181123
@@ -83,7 +83,11 @@ fuCHECKFORARGS
8383
echo "Starting scans ..."
8484
echo "$myMEDPOTPACKET" | nc "$myHOST" 2575 &
8585
curl -XGET "http://$myHOST:9200/logstash-*/_search" &
86+
curl -XPOST -H "Content-Type: application/json" -d '{"name":"test","email":"test@test.com"}' "http://$myHOST:9200/test" &
8687
echo "I20100" | timeout --foreground 3 nc "$myHOST" 10001 &
88+
findscu -P -k PatientName="*" $myHOST 11112 &
89+
getscu -P -k PatientName="*" $myHOST 11112 &
90+
telnet $myHOST 3299 &
8791
fuSCAN "180" "7,8,102,135,161,1025,1080,5000,9200" "$myHOST" "-sC -sS -sU -sV"
8892
fuSCAN "180" "2048,4096,5432" "$myHOST" "-sC -sS -sU -sV --version-light"
8993
fuSCAN "120" "20,21" "$myHOST" "--script=ftp* -sC -sS -sV"

bin/import_kibana-objects.sh

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ myCOL0=""
2020

2121
# Let's ensure normal operation on exit or if interrupted ...
2222
function fuCLEANUP {
23-
rm -rf patterns/ dashboards/ visualizations/ searches/
23+
rm -rf patterns/ dashboards/ visualizations/ searches/ configs/
2424
}
2525
trap fuCLEANUP EXIT
2626

@@ -98,12 +98,29 @@ for i in $mySEARCHES;
9898
echo
9999
wait
100100

101+
# Restore configs
102+
myCONFIGS=$(ls configs/*.json | cut -c 9- | rev | cut -c 6- | rev)
103+
echo $myCOL1"### Now importing "$myCOL0$(echo $myCONFIGS | wc -w)$myCOL1 "configs." $myCOL0
104+
for i in $myCONFIGS;
105+
do
106+
curl -s -XDELETE ''$myKIBANA'api/saved_objects/configs/'$i'' -H "Content-Type: application/json" -H "kbn-xsrf: true" > /dev/null &
107+
done;
108+
wait
109+
for i in $myCONFIGS;
110+
do
111+
echo $myCOL1"###### "$i $myCOL0
112+
curl -s -XPOST ''$myKIBANA'api/saved_objects/configs/'$i'' -H "Content-Type: application/json" -H "kbn-xsrf: true" -d @configs/$i.json > /dev/null &
113+
done;
114+
echo
115+
wait
116+
101117
# Stats
102118
echo
103119
echo $myCOL1"### Statistics"
104120
echo $myCOL1"###### Imported"$myCOL0 $myINDEXCOUNT $myCOL1"index patterns." $myCOL0
105121
echo $myCOL1"###### Imported"$myCOL0 $(echo $myDASHBOARDS | wc -w) $myCOL1"dashboards." $myCOL0
106122
echo $myCOL1"###### Imported"$myCOL0 $(echo $myVISUALIZATIONS | wc -w) $myCOL1"visualizations." $myCOL0
107123
echo $myCOL1"###### Imported"$myCOL0 $(echo $mySEARCHES | wc -w) $myCOL1"searches." $myCOL0
124+
echo $myCOL1"###### Imported"$myCOL0 $(echo $myCONFIGS | wc -w) $myCOL1"configs." $myCOL0
108125
echo
109126

bin/updateip.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ if [ "$myEXTIP" = "" ];
1010
fi
1111
mySSHUSER=$(cat /etc/passwd | grep 1000 | cut -d ':' -f1)
1212
echo "" > /etc/issue
13-
toilet -f ivrit -F metal --filter border:metal "T-Pot 19.03" | sed 's/\\/\\\\/g' >> /etc/issue
13+
toilet -f ivrit -F metal --filter border:metal "T-Pot 20.06" | sed 's/\\/\\\\/g' >> /etc/issue
1414
echo >> /etc/issue
1515
echo ",---- [ \n ] [ \d ] [ \t ]" >> /etc/issue
1616
echo "|" >> /etc/issue

doc/architecture.png

149 KB
Loading

doc/cockpit1.png

51.1 KB
Loading

doc/cockpit2.png

120 KB
Loading

0 commit comments

Comments
 (0)