mirror of
https://github.com/telekom-security/tpotce.git
synced 2025-07-01 12:32:12 +00:00
Prep for Log4Pot integration
This commit is contained in:
parent
a98b447556
commit
b0339610a2
7 changed files with 344 additions and 6 deletions
|
@ -237,6 +237,14 @@ fuIPPHONEY () {
|
||||||
chown tpot:tpot /data/ipphoney -R
|
chown tpot:tpot /data/ipphoney -R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Let's create a function to clean up and prepare log4pot data
|
||||||
|
fuLOG4POT () {
|
||||||
|
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/log4pot/*; fi
|
||||||
|
mkdir -p /data/log4pot/log
|
||||||
|
chmod 770 /data/log4pot -R
|
||||||
|
chown tpot:tpot /data/log4pot -R
|
||||||
|
}
|
||||||
|
|
||||||
# Let's create a function to clean up and prepare mailoney data
|
# Let's create a function to clean up and prepare mailoney data
|
||||||
fuMAILONEY () {
|
fuMAILONEY () {
|
||||||
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/mailoney/*; fi
|
if [ "$myPERSISTENCE" != "on" ]; then rm -rf /data/mailoney/*; fi
|
||||||
|
@ -351,6 +359,7 @@ if [ "$myPERSISTENCE" = "on" ];
|
||||||
fuHONEYPY
|
fuHONEYPY
|
||||||
fuHONEYTRAP
|
fuHONEYTRAP
|
||||||
fuIPPHONEY
|
fuIPPHONEY
|
||||||
|
fuLOG4POT
|
||||||
fuMAILONEY
|
fuMAILONEY
|
||||||
fuMEDPOT
|
fuMEDPOT
|
||||||
fuNGINX
|
fuNGINX
|
||||||
|
|
21
docker/elk/logstash/dist/logstash.conf
vendored
21
docker/elk/logstash/dist/logstash.conf
vendored
|
@ -147,6 +147,13 @@ input {
|
||||||
type => "Ipphoney"
|
type => "Ipphoney"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Log4pot
|
||||||
|
file {
|
||||||
|
path => ["/data/log4pot/log/log4pot.log"]
|
||||||
|
codec => json
|
||||||
|
type => "Log4pot"
|
||||||
|
}
|
||||||
|
|
||||||
# Mailoney
|
# Mailoney
|
||||||
file {
|
file {
|
||||||
path => ["/data/mailoney/log/commands.log"]
|
path => ["/data/mailoney/log/commands.log"]
|
||||||
|
@ -564,6 +571,20 @@ filter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Log4pot
|
||||||
|
if [type] == "Log4pot" {
|
||||||
|
date {
|
||||||
|
match => [ "timestamp", "ISO8601" ]
|
||||||
|
}
|
||||||
|
mutate {
|
||||||
|
rename => {
|
||||||
|
"server_port" => "dest_port"
|
||||||
|
"port" => "src_port"
|
||||||
|
"client" => "src_ip"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
# Mailoney
|
# Mailoney
|
||||||
if [type] == "Mailoney" {
|
if [type] == "Mailoney" {
|
||||||
date {
|
date {
|
||||||
|
|
42
docker/log4pot/Dockerfile
Normal file
42
docker/log4pot/Dockerfile
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
FROM alpine:3.14
|
||||||
|
#
|
||||||
|
# Install packages
|
||||||
|
RUN apk -U add \
|
||||||
|
build-base \
|
||||||
|
cargo \
|
||||||
|
git \
|
||||||
|
libcap \
|
||||||
|
libffi-dev \
|
||||||
|
openssl-dev \
|
||||||
|
python3 \
|
||||||
|
python3-dev \
|
||||||
|
rust && \
|
||||||
|
apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing poetry && \
|
||||||
|
#
|
||||||
|
# Install log4pot from GitHub and setup
|
||||||
|
mkdir -p /opt /var/log/log4pot && \
|
||||||
|
cd /opt/ && \
|
||||||
|
git clone https://github.com/thomaspatzke/Log4Pot && \
|
||||||
|
cd Log4Pot && \
|
||||||
|
git checkout 4269bf4a91457328fb64c3e7941cb2f520e5e911 && \
|
||||||
|
sed -i 's#"type": logtype,#"reason": logtype,#g' log4pot.py && \
|
||||||
|
poetry install && \
|
||||||
|
setcap cap_net_bind_service=+ep /usr/bin/python3.9 && \
|
||||||
|
#
|
||||||
|
# Setup user, groups and configs
|
||||||
|
addgroup -g 2000 log4pot && \
|
||||||
|
adduser -S -H -s /bin/ash -u 2000 -D -g 2000 log4pot && \
|
||||||
|
chown log4pot:log4pot -R /opt/Log4Pot && \
|
||||||
|
#
|
||||||
|
# Clean up
|
||||||
|
apk del --purge build-base \
|
||||||
|
git \
|
||||||
|
python3-dev && \
|
||||||
|
rm -rf /root/* && \
|
||||||
|
rm -rf /var/cache/apk/*
|
||||||
|
#
|
||||||
|
# Start log4pot
|
||||||
|
STOPSIGNAL SIGINT
|
||||||
|
USER log4pot:log4pot
|
||||||
|
WORKDIR /opt/Log4Pot/
|
||||||
|
CMD ["/usr/bin/python3","log4pot.py","--port","8080","--log","/var/log/log4pot/log4pot.log"]
|
23
docker/log4pot/docker-compose.yml
Normal file
23
docker/log4pot/docker-compose.yml
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
version: '2.3'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
log4pot_local:
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
# Log4pot service
|
||||||
|
log4pot:
|
||||||
|
build: .
|
||||||
|
container_name: log4pot
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- log4pot_local
|
||||||
|
ports:
|
||||||
|
- "80:8080"
|
||||||
|
- "443:8080"
|
||||||
|
- "8080:8080"
|
||||||
|
- "9200:8080"
|
||||||
|
image: "dtagdevsec/log4pot:2006"
|
||||||
|
read_only: true
|
||||||
|
volumes:
|
||||||
|
- /data/log4pot/log:/var/log/log4pot
|
237
etc/compose/log4j.yml
Normal file
237
etc/compose/log4j.yml
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
# T-Pot (Log4j)
|
||||||
|
# Do not erase ports sections, these are used by /opt/tpot/bin/rules.sh to setup iptables ACCEPT rules for NFQ (honeytrap / glutton)
|
||||||
|
version: '2.3'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
cyberchef_local:
|
||||||
|
log4pot_local:
|
||||||
|
ewsposter_local:
|
||||||
|
spiderfoot_local:
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
##################
|
||||||
|
#### Honeypots
|
||||||
|
##################
|
||||||
|
|
||||||
|
# Log4pot service
|
||||||
|
log4pot:
|
||||||
|
container_name: log4pot
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- log4pot_local
|
||||||
|
ports:
|
||||||
|
- "80:8080"
|
||||||
|
- "443:8080"
|
||||||
|
- "8080:8080"
|
||||||
|
- "9200:8080"
|
||||||
|
image: "dtagdevsec/log4pot:2006"
|
||||||
|
read_only: true
|
||||||
|
volumes:
|
||||||
|
- /data/log4pot/log:/var/log/log4pot
|
||||||
|
|
||||||
|
# Honeytrap service
|
||||||
|
honeytrap:
|
||||||
|
container_name: honeytrap
|
||||||
|
restart: always
|
||||||
|
tmpfs:
|
||||||
|
- /tmp/honeytrap:uid=2000,gid=2000
|
||||||
|
network_mode: "host"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
image: "dtagdevsec/honeytrap:2006"
|
||||||
|
read_only: true
|
||||||
|
volumes:
|
||||||
|
- /data/honeytrap/attacks:/opt/honeytrap/var/attacks
|
||||||
|
- /data/honeytrap/downloads:/opt/honeytrap/var/downloads
|
||||||
|
- /data/honeytrap/log:/opt/honeytrap/var/log
|
||||||
|
|
||||||
|
|
||||||
|
##################
|
||||||
|
#### NSM
|
||||||
|
##################
|
||||||
|
|
||||||
|
# Fatt service
|
||||||
|
fatt:
|
||||||
|
container_name: fatt
|
||||||
|
restart: always
|
||||||
|
network_mode: "host"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_NICE
|
||||||
|
- NET_RAW
|
||||||
|
image: "dtagdevsec/fatt:2006"
|
||||||
|
volumes:
|
||||||
|
- /data/fatt/log:/opt/fatt/log
|
||||||
|
|
||||||
|
# P0f service
|
||||||
|
p0f:
|
||||||
|
container_name: p0f
|
||||||
|
restart: always
|
||||||
|
network_mode: "host"
|
||||||
|
image: "dtagdevsec/p0f:2006"
|
||||||
|
read_only: true
|
||||||
|
volumes:
|
||||||
|
- /data/p0f/log:/var/log/p0f
|
||||||
|
|
||||||
|
# Suricata service
|
||||||
|
suricata:
|
||||||
|
container_name: suricata
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
# For ET Pro ruleset replace "OPEN" with your OINKCODE
|
||||||
|
- OINKCODE=OPEN
|
||||||
|
network_mode: "host"
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_NICE
|
||||||
|
- NET_RAW
|
||||||
|
image: "dtagdevsec/suricata:2006"
|
||||||
|
volumes:
|
||||||
|
- /data/suricata/log:/var/log/suricata
|
||||||
|
|
||||||
|
|
||||||
|
##################
|
||||||
|
#### Tools
|
||||||
|
##################
|
||||||
|
|
||||||
|
# Cyberchef service
|
||||||
|
cyberchef:
|
||||||
|
container_name: cyberchef
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- cyberchef_local
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:64299:8000"
|
||||||
|
image: "dtagdevsec/cyberchef:2006"
|
||||||
|
read_only: true
|
||||||
|
|
||||||
|
#### ELK
|
||||||
|
## Elasticsearch service
|
||||||
|
elasticsearch:
|
||||||
|
container_name: elasticsearch
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- bootstrap.memory_lock=true
|
||||||
|
# - ES_JAVA_OPTS=-Xms2048m -Xmx2048m
|
||||||
|
- ES_TMPDIR=/tmp
|
||||||
|
cap_add:
|
||||||
|
- IPC_LOCK
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
nofile:
|
||||||
|
soft: 65536
|
||||||
|
hard: 65536
|
||||||
|
# mem_limit: 4g
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:64298:9200"
|
||||||
|
image: "dtagdevsec/elasticsearch:2006"
|
||||||
|
volumes:
|
||||||
|
- /data:/data
|
||||||
|
|
||||||
|
## Kibana service
|
||||||
|
kibana:
|
||||||
|
container_name: kibana
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:64296:5601"
|
||||||
|
image: "dtagdevsec/kibana:2006"
|
||||||
|
|
||||||
|
## Logstash service
|
||||||
|
logstash:
|
||||||
|
container_name: logstash
|
||||||
|
restart: always
|
||||||
|
# environment:
|
||||||
|
# - LS_JAVA_OPTS=-Xms2048m -Xmx2048m
|
||||||
|
depends_on:
|
||||||
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
env_file:
|
||||||
|
- /opt/tpot/etc/compose/elk_environment
|
||||||
|
image: "dtagdevsec/logstash:2006"
|
||||||
|
volumes:
|
||||||
|
- /data:/data
|
||||||
|
|
||||||
|
## Elasticsearch-head service
|
||||||
|
head:
|
||||||
|
container_name: head
|
||||||
|
restart: always
|
||||||
|
depends_on:
|
||||||
|
elasticsearch:
|
||||||
|
condition: service_healthy
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:64302:9100"
|
||||||
|
image: "dtagdevsec/head:2006"
|
||||||
|
read_only: true
|
||||||
|
|
||||||
|
# Ewsposter service
|
||||||
|
ewsposter:
|
||||||
|
container_name: ewsposter
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- ewsposter_local
|
||||||
|
environment:
|
||||||
|
- EWS_HPFEEDS_ENABLE=false
|
||||||
|
- EWS_HPFEEDS_HOST=host
|
||||||
|
- EWS_HPFEEDS_PORT=port
|
||||||
|
- EWS_HPFEEDS_CHANNELS=channels
|
||||||
|
- EWS_HPFEEDS_IDENT=user
|
||||||
|
- EWS_HPFEEDS_SECRET=secret
|
||||||
|
- EWS_HPFEEDS_TLSCERT=false
|
||||||
|
- EWS_HPFEEDS_FORMAT=json
|
||||||
|
env_file:
|
||||||
|
- /opt/tpot/etc/compose/elk_environment
|
||||||
|
image: "dtagdevsec/ewsposter:2006"
|
||||||
|
volumes:
|
||||||
|
- /data:/data
|
||||||
|
- /data/ews/conf/ews.ip:/opt/ewsposter/ews.ip
|
||||||
|
|
||||||
|
# Nginx service
|
||||||
|
nginx:
|
||||||
|
container_name: nginx
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
### If set to YES all changes within Heimdall will remain for the next start
|
||||||
|
### Make sure to uncomment the corresponding volume statements below, or the setting will prevent a successful start of T-Pot.
|
||||||
|
- HEIMDALL_PERSIST=NO
|
||||||
|
tmpfs:
|
||||||
|
- /var/tmp/nginx/client_body
|
||||||
|
- /var/tmp/nginx/proxy
|
||||||
|
- /var/tmp/nginx/fastcgi
|
||||||
|
- /var/tmp/nginx/uwsgi
|
||||||
|
- /var/tmp/nginx/scgi
|
||||||
|
- /run
|
||||||
|
- /var/log/php7/
|
||||||
|
- /var/lib/nginx/tmp:uid=100,gid=82
|
||||||
|
- /var/lib/nginx/html/storage/logs:uid=100,gid=82
|
||||||
|
- /var/lib/nginx/html/storage/framework/views:uid=100,gid=82
|
||||||
|
network_mode: "host"
|
||||||
|
ports:
|
||||||
|
- "64297:64297"
|
||||||
|
- "127.0.0.1:64304:64304"
|
||||||
|
image: "dtagdevsec/nginx:2006"
|
||||||
|
read_only: true
|
||||||
|
volumes:
|
||||||
|
- /data/nginx/cert/:/etc/nginx/cert/:ro
|
||||||
|
- /data/nginx/conf/nginxpasswd:/etc/nginx/nginxpasswd:ro
|
||||||
|
- /data/nginx/log/:/var/log/nginx/
|
||||||
|
### Enable the following volumes if you set HEIMDALL_PERSIST=YES
|
||||||
|
# - /data/nginx/heimdall/database:/var/lib/nginx/html/database
|
||||||
|
# - /data/nginx/heimdall/storage:/var/lib/nginx/html/storage
|
||||||
|
|
||||||
|
# Spiderfoot service
|
||||||
|
spiderfoot:
|
||||||
|
container_name: spiderfoot
|
||||||
|
restart: always
|
||||||
|
networks:
|
||||||
|
- spiderfoot_local
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:64303:8080"
|
||||||
|
image: "dtagdevsec/spiderfoot:2006"
|
||||||
|
volumes:
|
||||||
|
- /data/spiderfoot/spiderfoot.db:/home/spiderfoot/spiderfoot.db
|
|
@ -731,6 +731,10 @@ case $myCONF_TPOT_FLAVOR in
|
||||||
fuBANNER "STANDARD"
|
fuBANNER "STANDARD"
|
||||||
ln -s /opt/tpot/etc/compose/standard.yml $myTPOTCOMPOSE
|
ln -s /opt/tpot/etc/compose/standard.yml $myTPOTCOMPOSE
|
||||||
;;
|
;;
|
||||||
|
LOG4J)
|
||||||
|
fuBANNER "LOG4J"
|
||||||
|
ln -s /opt/tpot/etc/compose/log4j.yml $myTPOTCOMPOSE
|
||||||
|
;;
|
||||||
SENSOR)
|
SENSOR)
|
||||||
fuBANNER "SENSOR"
|
fuBANNER "SENSOR"
|
||||||
ln -s /opt/tpot/etc/compose/sensor.yml $myTPOTCOMPOSE
|
ln -s /opt/tpot/etc/compose/sensor.yml $myTPOTCOMPOSE
|
||||||
|
@ -807,28 +811,29 @@ mkdir -vp /data/adbhoney/{downloads,log} \
|
||||||
/data/conpot/log \
|
/data/conpot/log \
|
||||||
/data/citrixhoneypot/logs \
|
/data/citrixhoneypot/logs \
|
||||||
/data/cowrie/{downloads,keys,misc,log,log/tty} \
|
/data/cowrie/{downloads,keys,misc,log,log/tty} \
|
||||||
/data/ddospot/{bl,db,log} \
|
/data/ddospot/{bl,db,log} \
|
||||||
/data/dicompot/{images,log} \
|
/data/dicompot/{images,log} \
|
||||||
/data/dionaea/{log,bistreams,binaries,rtp,roots,roots/ftp,roots/tftp,roots/www,roots/upnp} \
|
/data/dionaea/{log,bistreams,binaries,rtp,roots,roots/ftp,roots/tftp,roots/www,roots/upnp} \
|
||||||
/data/elasticpot/log \
|
/data/elasticpot/log \
|
||||||
/data/elk/{data,log} \
|
/data/elk/{data,log} \
|
||||||
/data/endlessh/log \
|
/data/endlessh/log \
|
||||||
/data/fatt/log \
|
/data/fatt/log \
|
||||||
/data/honeytrap/{log,attacks,downloads} \
|
/data/honeytrap/{log,attacks,downloads} \
|
||||||
/data/glutton/log \
|
/data/glutton/log \
|
||||||
/data/hellpot/log \
|
/data/hellpot/log \
|
||||||
/data/heralding/log \
|
/data/heralding/log \
|
||||||
/data/honeypots/log \
|
/data/honeypots/log \
|
||||||
/data/honeypy/log \
|
/data/honeypy/log \
|
||||||
/data/honeysap/log \
|
/data/honeysap/log \
|
||||||
/data/ipphoney/log \
|
/data/ipphoney/log \
|
||||||
|
/data/log4pot/log \
|
||||||
/data/mailoney/log \
|
/data/mailoney/log \
|
||||||
/data/medpot/log \
|
/data/medpot/log \
|
||||||
/data/nginx/{log,heimdall} \
|
/data/nginx/{log,heimdall} \
|
||||||
/data/emobility/log \
|
/data/emobility/log \
|
||||||
/data/ews/conf \
|
/data/ews/conf \
|
||||||
/data/rdpy/log \
|
/data/rdpy/log \
|
||||||
/data/redishoneypot/log \
|
/data/redishoneypot/log \
|
||||||
/data/spiderfoot \
|
/data/spiderfoot \
|
||||||
/data/suricata/log \
|
/data/suricata/log \
|
||||||
/data/tanner/{log,files} \
|
/data/tanner/{log,files} \
|
||||||
|
|
|
@ -243,6 +243,7 @@ mkdir -vp /data/adbhoney/{downloads,log} \
|
||||||
/data/honeypy/log \
|
/data/honeypy/log \
|
||||||
/data/honeysap/log \
|
/data/honeysap/log \
|
||||||
/data/ipphoney/log \
|
/data/ipphoney/log \
|
||||||
|
/data/log4pot/log \
|
||||||
/data/mailoney/log \
|
/data/mailoney/log \
|
||||||
/data/medpot/log \
|
/data/medpot/log \
|
||||||
/data/nginx/{log,heimdall} \
|
/data/nginx/{log,heimdall} \
|
||||||
|
|
Loading…
Reference in a new issue