用于Log4Shell漏洞(CVE-2021-44228)的蜜罐。
许可证:GPLv3.0
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 -git clone https://github.com/thomaspatzke/Log4Pot.gitcd Log4Potapt install libcurl4-openssl-dev libssl-dev python3-dev build-essentialpoetry installpoetry run python log4pot.py --help 概述。poetry run python log4pot.py @log4pot.conf或者,你也可以在不依赖外部库的情况下运行 log4pot:
$ python log4pot.py @log4pot.conf
这将运行 log4pot,但不支持日志记录到 Azure Blob 存储。
要将发往端口80和443的流量重定向到Log4Pot,请使用以下 iptables 命令:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8443
脚本 log4pot-loganalyzer.py 提取所有载荷,使用当前解码器进行解码,并构建两者的时间线。使用方式如下:
python log4pot-loganalyzer.py -o <输出目录> <输入日志文件>
列出漏洞利用尝试中的载荷:
select(.type == "exploit") | .payload
解码JNDI漏洞利用中所有Base64编码的载荷:
select(.type == "exploit" and (.payload | contains("Base64"))) | .payload | sub(".*/Base64/"; "") | sub ("}$"; "") | @base64d
提取从URL下载的文件的所有SHA256哈希值:
[ .[] | select(.type == "payload") | .urls | select((. | length) > 0) | to_entries | .[].value | select((. | length) == 64) ] | unique | .[]