По предыдущему посту решил сделать honeypot. Он из себя представляет по сути прокси до ipmi симулятора. В README подробная инструкция по запуску.
Пример лога:
{
"time": "2025-08-14T14:45:06.427158383Z",
"dir": "sc",
"src": "ipmi-sim:623",
"dst": "192.168.16.1:34039",
"size": 64,
"tag": "asf",
"hex": "0600ff0706c0a4a3a2a0070000002000c349cb262083141de75e6f63c1741397cd5b5da617e2e4d572f0d82a5ecffc5cffff02076662bb8b36b96fd75ff52bca"
}dir - принимает значение либо sc - server-client ответ. Т.е. ответ backend-а (ipmi-sim) клиенту. Либо cs - client-server, т.е. то, что клиент послал хонипоту.hex - первые 256 байт полезной нагрузки UDP пакета в hex, без заголовков UDP, только то, что пришло в сокет.tag - метка стадии IPMI пакета.Запуск одной командой:
docker-compose -f docker/docker-compose.yml up -d
Пример куска парсера для вектора под этот honeypot:
if .observer.product == "go_ipmi_proxy" {
.vulnerability.category = ["IPMI"]
.vulnerability.enumeration = "CVE"
.vulnerability.id = "CVE-2013-4786"
.event.created = del(.time)
destination = split!(.dst, ":")
.destination.ip = destination[0]
.destination.port = destination[1]
source = split!(.src, ":")
.source.ip = source[0]
.source.port = source[1]
if .dir == "sc" {
.network.direction = "outbound"
} else {
.network.direction = "inbound"
}
.ipmi.payload.hex = del(.hex)
del(.dir)
del(.src)
del(.dst)
}#honeypot