当前位置:网站首页>Samba 远程命令执行漏洞(CVE-2017-7494)
Samba 远程命令执行漏洞(CVE-2017-7494)
2022-07-31 13:15:00 【半点闲】
作者:高玉涵
时间:2022.7.29 17:00
博客:blog.csdn.net/cg_i
环境:Samba版本:4.6.3(该漏洞在4.6.4被修复)
原理
Samba允许连接一个远程的命名管道,并且在连接前会调用is_known_pipename()函数验证管道名称是否合法。在is_known_pipename()函数中,并没有检查管道名称中的特殊字符,加载了使用该名称的动态链接库。导致攻击者可以构造一个恶意的动态链接库文件,执行任意代码。
该漏洞要求的利用条件:
- 拥有共享文件写入权限,如:匿名可写等
- 需要知道共享目录的物理路径
参考:
- https://medium.com/@lucideus/sambacry-rce-exploit-lucideus-research-3a3e5bd9e17c
- https://github.com/opsxcq/exploit-CVE-2017-7494
- http://bobao.360.cn/learning/detail/3900.html
测试过程
测试环境运行后,监听445端口,默认开启了一个共享“myshare”,共享的目录为/home/share,可读可写。
我们可以在Linux下用smbclient(安装:apt install smbclient)连接试试:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PAXcIrlb-1659085057053)(02.png)]
成功连接。大家测试的时候如果连接不成功,有可能是国内运营商封了445端口,最好在本地或虚拟机测试,比如上图。
参考#224,新版metasploit可能无法复现这个漏洞。我们使用https://github.com/opsxcq/exploit-CVE-2017-7494来复现。
在目标服务器上执行/home/share/libbindshell-samba.so,其中myshare是分享名称(在vulhub中为myshare),而/home/share是对应的可写目录。-u和-p用来指定用户名、密码,当前环境是一个匿名smb,所以填写任意信息均可。因为libbindshell-samba.so是一个bindshell,监听地址是6699,所以我们通过-P指定这个端口。在实际渗透中,我们可以修改libbindshell-samba.c,写入任意其他代码,如反弹shell,避免使用bindshell。
./exploit.py -t your-ip -e libbindshell-samba.so -s myshare -r /home/share/libbindshell-samba.so -u guest -p guest -P 6699
成功执行命令:

边栏推荐
- 365-day challenge LeetCode1000 questions - Day 044 Maximum element in the layer and level traversal
- 文本相似度计算(中英文)详解实战
- SAP message TK 248 solved
- 查看Mysql数据库版本
- LRU缓存[线性表 -> 链表 -> hash定位 -> 双向链表]
- Ali on three sides: MQ message loss, repetition, backlog problem, how to solve?
- centos7安装mysql5.7
- EXCEL如何快速拆分合并单元格数据
- IDEA版Postman插件Restful Fast Request,细节到位,功能好用
- The use of C# control CheckBox
猜你喜欢

网络协议及相关技术详解
![[CPU Design Practice] Simple Pipeline CPU Design](/img/83/e1dfedfe2b2cfe83a34f86e252caa7.jpg)
[CPU Design Practice] Simple Pipeline CPU Design

PyQt5 rapid development and actual combat 10.1 Get city weather forecast

ERROR 1064 (42000) You have an error in your SQL syntax; check the manual that corresponds to your

PyQt5快速开发与实战 9.7 UI层的自动化测试

PyQt5快速开发与实战 10.1 获取城市天气预报

Istio微服务治理网格的全方面可视化监控(微服务架构展示、资源监控、流量监控、链路监控)

PHP Serialization: eval

PyQt5快速开发与实战10.2 复利计算 && 10.3 刷新博客点击量

C#控件ListView用法
随机推荐
抓住金三银四的尾巴,解锁程序员面试《刷题神器》
golang-gin - graceful restart
sqlalchemy 判断一个array 类型的字段是否和一个array有至少一个一致的数据
查看Oracle数据库的用户名和密码
Architecture Camp | Module 8
C#使用ComboBox控件
清除浮动的四种方式及其原理理解
[Niu Ke brush questions - SQL big factory interview questions] NO3. E-commerce scene (some east mall)
集群中增加数据节点与退役数据节点
Flutter键盘可见性
系统集成项目管理工程师(软考中级)知识点总结【挣值分析】【关键路径】
ICML2022 | 面向自监督图表示学习的全粒度自语义传播
ERROR 2003 (HY000) Can‘t connect to MySQL server on ‘localhost3306‘ (10061)
ASM module in SAP Ecommerce Cloud Spartacus UI and Accelerator UI
计算机复试面试问题(计算机面试常见问题)
Flutter keyboard visibility
Spark学习:为Spark Sql添加自定义优化规则
C# using NumericUpDown control
关于MySQL主从复制的数据同步延迟问题
基于神经网络的多柔性梁耦合结构振动控制