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

clip_image001

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

A试图访问B的共享服务

第一步 A对B说:骚年,请让我登陆

第二步 B对A说:骚年,我给你一个challenge,请先把你的密码Hash和challenge加密一下返回给我,我得确认你是否有权限

第三步 A对B说:我加密好了,给你

情景一:

第四步 B对A说:嗯,对的,请进(认证结束)

情景二:

第四步 B对A说:骚年,不对,你的身份不能登陆,你可以试试以别人的身份来登陆

第五步 A对B说:好嘛,我用你之前告诉我的身份试试,回到第一步,循环下去

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

clip_image002

上图就是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)

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

clip_image003

Winxp 访问smbserver的共享

clip_image004

OK,到Kali下看看结果

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)

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

clip_image005

Winxp 访问share.baidu.com的共享

clip_image006

OK,到Kali下看看结果

clip_image007

成功拿到B的shell

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

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

看下图就知道了

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

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

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

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

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权限,然后在首页插入了这样的一个链接

很不幸,这张图他不会看到,如果他的个人机的账户及密码是和服务器是一样的,呵呵,他的服务器就这么沦陷了。但是有一个前提 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

http://sec.chinabyte.com/140/12892140.shtml

http://netsecurity.51cto.com/art/201403/433007.htm

源链接

Hacking more

...