multi stage build for dicompot
rebuild fatt, glutton, hellpot, honeypots for alpine 3.19
bump glutton, hellpot, honeypots to latest master
This commit is contained in:
t3chn0m4g3
2024-03-05 19:50:35 +01:00
parent 519a101fdf
commit c45870594b
66 changed files with 464 additions and 225 deletions

View File

@ -1,52 +1,52 @@
FROM alpine:3.17
FROM alpine:3.19
#
# Include dist
COPY dist/ /root/dist/
#
# Install packages
RUN apk -U --no-cache add \
build-base \
freetds \
freetds-dev \
gcc \
git \
hiredis \
jpeg-dev \
libcap \
libffi-dev \
libpq \
musl-dev \
openssl \
openssl-dev \
postgresql-dev \
py3-chardet \
py3-click \
py3-cryptography \
py3-dnspython \
py3-flask \
py3-future \
py3-hiredis \
py3-impacket \
py3-itsdangerous \
py3-jinja2 \
py3-ldap3 \
py3-markupsafe \
py3-netifaces \
py3-openssl \
py3-packaging \
py3-paramiko \
py3-pip \
py3-psutil \
py3-psycopg2 \
py3-pycryptodomex \
py3-requests \
py3-service_identity \
py3-twisted \
py3-werkzeug \
py3-wheel \
python3 \
python3-dev \
zlib-dev && \
build-base \
freetds \
freetds-dev \
gcc \
git \
hiredis \
jpeg-dev \
libcap \
libffi-dev \
libpq \
musl-dev \
openssl \
openssl-dev \
postgresql-dev \
py3-chardet \
py3-click \
py3-cryptography \
py3-dnspython \
py3-flask \
py3-future \
py3-hiredis \
py3-impacket \
py3-itsdangerous \
py3-jinja2 \
py3-ldap3 \
py3-markupsafe \
py3-netifaces \
py3-openssl \
py3-packaging \
py3-paramiko \
py3-pip \
# py3-psutil \
py3-psycopg2 \
py3-pycryptodomex \
py3-requests \
py3-service_identity \
py3-twisted \
py3-werkzeug \
py3-wheel \
python3 \
python3-dev \
zlib-dev && \
#
# Install honeypots from GitHub and setup
mkdir -p /opt \
@ -54,12 +54,12 @@ RUN apk -U --no-cache add \
cd /opt/ && \
git clone https://github.com/qeeqbox/honeypots && \
cd honeypots && \
# git checkout bee3147cf81837ba7639f1e27fe34d717ecccf29 && \
git checkout 1ad37d7e07838e9ad18c5244d87b9e49d90c9bc3 && \
cp /root/dist/setup.py . && \
pip3 install --upgrade pip && \
pip3 install . && \
setcap cap_net_bind_service=+ep /usr/bin/python3.10 && \
# git checkout bee3147cf81837ba7639f1e27fe34d717ecccf29 && \
git checkout 5b3bfbecbf85c1f5235b320b333bdeff2d312372 && \
# cp /root/dist/pyproject.toml . && \
pip3 install --break-system-packages --upgrade pip && \
pip3 install --break-system-packages . && \
setcap cap_net_bind_service=+ep $(readlink -f $(type -P python3)) && \
#
# Setup user, groups and configs
addgroup -g 2000 honeypots && \
@ -70,14 +70,14 @@ RUN apk -U --no-cache add \
#
# Clean up
apk del --purge build-base \
freetds-dev \
git \
jpeg-dev \
libffi-dev \
openssl-dev \
postgresql-dev \
python3-dev \
zlib-dev && \
freetds-dev \
git \
jpeg-dev \
libffi-dev \
openssl-dev \
postgresql-dev \
python3-dev \
zlib-dev && \
rm -rf /root/* /var/cache/apk/* /opt/honeypots/.git
#

View File

@ -45,7 +45,7 @@
"log_file_name":"http.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands","fix_get_client_ip"]
"options":["capture_commands","fix_get_client_ip"]
},
"https":{
"port":443,
@ -55,7 +55,7 @@
"log_file_name":"https.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands","fix_get_client_ip"]
"options":["capture_commands","fix_get_client_ip"]
},
"imap":{
"port":143,
@ -65,7 +65,7 @@
"log_file_name":"imap.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"mysql":{
"port":3306,
@ -75,7 +75,7 @@
"log_file_name":"mysql.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"pop3":{
"port":110,
@ -85,7 +85,7 @@
"log_file_name":"pop3.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"postgres":{
"port":5432,
@ -95,7 +95,7 @@
"log_file_name":"postgres.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"redis":{
"port":6379,
@ -105,7 +105,7 @@
"log_file_name":"redis.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"smb":{
"port":445,
@ -115,7 +115,7 @@
"log_file_name":"smb.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"smtp":{
"port":25,
@ -125,7 +125,7 @@
"log_file_name":"smtp.log",
"max_bytes":10000,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"socks5":{
"port":1080,
@ -135,7 +135,7 @@
"log_file_name":"socks5.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"ssh":{
"port":22,
@ -145,7 +145,7 @@
"log_file_name":"ssh.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands", "interactive"]
"options":["capture_commands", "interactive"]
},
"telnet":{
"port":23,
@ -155,7 +155,7 @@
"log_file_name":"telnet.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"vnc":{
"port":5900,
@ -165,7 +165,7 @@
"log_file_name":"vnc.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"elastic":{
"port":9200,
@ -175,7 +175,7 @@
"log_file_name":"elastic.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"mssql":{
"port":1433,
@ -185,7 +185,7 @@
"log_file_name":"mssql.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"ldap":{
"port":389,
@ -195,7 +195,7 @@
"log_file_name":"ldap.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"ntp":{
"port":123,
@ -205,7 +205,7 @@
"log_file_name":"ntp.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"memcache":{
"port":11211,
@ -215,7 +215,7 @@
"log_file_name":"memcache.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"oracle":{
"port":1521,
@ -225,7 +225,7 @@
"log_file_name":"oracle.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"snmp":{
"port":161,
@ -235,7 +235,7 @@
"log_file_name":"snmp.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
"options":["capture_commands"]
},
"sip":{
"port":5060,
@ -253,11 +253,41 @@
"username":"",
"password":"",
"log_file_name":"irc.log",
"max_bytes":10000,
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
},
"pjl":{
"port":9100,
"ip":"0.0.0.0",
"username":"",
"password":"",
"log_file_name":"pjl.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
},
"ipp":{
"port":631,
"ip":"0.0.0.0",
"username":"",
"password":"",
"log_file_name":"ipp.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
},
"rdp":{
"port":3389,
"ip":"0.0.0.0",
"username":"",
"password":"",
"log_file_name":"rdp.log",
"max_bytes":0,
"backup_count":10,
"options":["capture_commands"]
}
},
},
"custom_filter":{
"honeypots":{
"change":{
@ -282,4 +312,3 @@
}
}
}

150
docker/honeypots/dist/pyproject.toml vendored Normal file
View File

@ -0,0 +1,150 @@
[build-system]
requires = [
"setuptools>=61.2",
]
build-backend = "setuptools.build_meta"
[project]
name = "honeypots"
version = "0.65"
authors = [
{ name = "QeeqBox", email = "gigaqeeq@gmail.com" },
]
description = "30 different honeypots in one package! (dhcp, dns, elastic, ftp, http proxy, https proxy, http, https, imap, ipp, irc, ldap, memcache, mssql, mysql, ntp, oracle, pjl, pop3, postgres, rdp, redis, sip, smb, smtp, snmp, socks5, ssh, telnet, vnc)"
readme = "README.rst"
requires-python = ">=3.8"
dependencies = [
"twisted",
"psutil",
"psycopg2-binary",
"pycryptodome",
"requests",
"requests[socks]",
"impacket",
"paramiko",
"scapy",
"service_identity",
"netifaces",
]
license = {text = "AGPL-3.0"}
[project.urls]
Homepage = "https://github.com/qeeqbox/honeypots"
[project.optional-dependencies]
dev = [
"dnspython==2.4.2",
"elasticsearch",
"ldap3",
"mysql-connector",
"pre-commit",
"pymssql",
"pysnmplib",
"pytest",
"redis",
"redis",
"vncdotool",
]
[project.scripts]
honeypots = "honeypots.__main__:main_logic"
[tool.setuptools]
packages = [
"honeypots",
"honeypots.data",
]
include-package-data = true
[tool.setuptools.package-data]
"honeypots.data" = [
"*.html",
]
[tool.ruff]
select = [
"F",
"E",
"W",
"C90",
"N",
"UP",
"B",
"A",
"C4",
"EXE",
"FA",
"ISC",
"PIE",
"T20",
"PT",
"Q",
"RET",
"SIM",
"TCH",
"ARG",
"PTH",
"ERA",
"PL",
"PLR",
"PLW",
"PERF",
"RUF",
]
ignore = [
"A003",
"PERF203",
"PERF401",
"RUF001",
"RUF002",
"RUF003",
"RUF015",
# pydantic only supports these from python>=3.9
"UP006",
"UP007",
# rules may cause conflicts when used with the formatter
"ISC001",
"Q001",
]
fixable = [
"F",
"E",
"W",
"C90",
"N",
"UP",
"B",
"A",
"C4",
"EXE",
"FA",
"ISC",
"PIE",
"T20",
"PT",
"Q",
"RET",
"SIM",
"TCH",
"ARG",
"PTH",
"ERA",
"PL",
"PLR",
"PLW",
"PERF",
"RUF",
]
exclude = [
".git",
".ruff_cache",
".venv",
"venv",
"data",
]
line-length = 99
target-version = "py38"
[tool.ruff.lint.per-file-ignores]
# don't check for "magic value" in tests
"tests/*" = ["PLR2004"]

View File

@ -32,19 +32,22 @@ services:
- "389:389"
- "443:443"
- "445:445"
- "631:631"
- "1080:1080"
- "1433:1433"
- "1521:1521"
- "3306:3306"
- "3389:3389"
- "5060:5060"
- "5432:5432"
- "5900:5900"
- "6379:6379"
- "6667:6667"
- "8080:8080"
- "9100:9100"
- "9200:9200"
- "11211:11211"
image: "dtagdevsec/honeypots:alpha"
read_only: true
volumes:
- /data/honeypots/log:/var/log/honeypots
- $HOME/tpotce/data/honeypots/log:/var/log/honeypots