SMB攻击的一些资料

发表于:2007-06-23来源:作者:点击数: 标签:
下一页 1 2 3 4 5 6 Volume 0x0b, Issue 0x3c, Phile #0x0b of 0x10 │=---------------------=[ SMB/CIFS BY THE ROOT ]=------------------------=│ │=-----------------------------------------------------------------------=│ │=---------------=

下一页 1 2 3 4 5 6 

   

Volume 0x0b, Issue 0x3c, Phile #0x0b of 0x10

│=---------------------=[ SMB/CIFS BY THE ROOT ]=------------------------=│
│=-----------------------------------------------------------------------=│
│=---------------=[ ledin ]=-----------------=│
│=-----------------------------------------------------------------------=│


本文提到了如何探测远程主机的SMB信息。您可以使用 T-SMB 这个工具来获取你所想要的信息,
包括操作系统指纹,共享目录,用户与组,传输列表及其他信息。您可以在中华安全网(SafeChina)
下载此软件。下载地址:

http://www.safechina.net/download/click.php?type=本站原创&id=1040000080


--[ 目录

1 - 介绍

2 - 什么是SMB/CIFS ?

3 - 会话的建立
客户端如何与服务器建立一个SMB会话 ?

4 - SMB的安全等级

5 - 密码

6 - 几种SMB数据报的描述

6.1 - SMB数据报的常规特征
6.2 - NETBIOS与SMB
6.3 - SMB的基础报文头部
6.4 - 重要SMB命令的描述
6.5 - 我们如何才能将本应该加密的SMB密码清楚的还原 ?
6.6 - Man in the middle 攻击
6.7 - 注意Windows 2k/XP里基于TCP的SMB操作

7 - 事物处理子协议与RAP命令

7.1 - 事物处理子协议
7.2 - RAP命令

8 - 使用RAP命令列出服务器上所有可得的共享列表

8.1 - Tconx数据报
8.2 - RAP命令“NetshareEnum”的解释

9 - 结论

10 - 参考

11 - 感谢


--[ 1 - 介绍

本文,我将向大家解释什么是CIFS和SMB,它们如何工作和这些协议里一些共同的不安全隐患。
本文将会成为学习微软网络知识的一个有用资源。SMB协议是一个在LAN中非常通用的协议了。我为
大家提供了一个关于如何操作SMB例子的源代码。

你将会学习到在所有SMB密码都是加密的情况下,如何使用ARP毒药来获得清晰的SMB密码(不需要
粗鲁与暴力)。你将会理解SMB与NETBIOS之间的关系。你同样会学到什么是微软远程管理协议(RAP),
以及如何使用它来扫描远程SMB服务器上的共享资源。

本文提供的程序和资料都只有一个教育性的目的。你将用它来做的任何事情与我无关。


--[ 2 - 什么是SMB/CIFS ?

依照微软的意思,CIFS是为客户系统在网络上向服务器请求文件和打印服务的开放跨平台的运行
机制。它是建立在广泛应用于个人电脑和工作站等操作系统的标准服务器消息块(SMB)协议。

实际上,SMB是一个通过网络在共享文件,设备,命名管道和邮槽之间操作数据的协议。CIFS是
SMB的一个公共版本。

SMB客户端的可用系统:

for Microsoft :
Windows 95, Windows for workgroups 3.x, Windows NT,2000 and XP

for Linux :
Smblient from Samba, Smbfs for Linux

SMB服务器:

Samba
Microsoft Windows for Workgroups 3.x
Microsoft Windows 95
Microsoft Windows NT
The PATHWORKS family of servers from Digital
LAN Manager for OS/2,SCO,etc
VisionFS from SCO
TotalNET Advanced Server from Syntax
Advanced Serverfor UNIX from AT&T (NCR?)
LAN Server for OS/2 from IBM.


--[ 3 会话的建立

注意:SMB协议已经被发展成为可以运行于DOS操作系统,因此字节顺序将会和网络顺序相反。

SMB可以运行在TCP/IP,NetBEUI,DECnet和IPX/SPX协议之上。如果SMB执行于TCP/IP,DECnet
或则是NetBEUI之上,那么NETBIOS名字必须被使用。

我将会在第六章向大家介绍什么是NETBIOS。但是现在,你必须知道NETBIOS名字用来在网络上鉴
别一台计算机。

SMB技术的发展开始于八十年代,出现过很多版本的SMB协议。但是最通用的(在Windows 98,
Windows NT,Windows 2000 and XP)是NT LM 0.12版本。本文是基于NT LM 0.12版本之上的。

你必须知道一个SMB域名是用来鉴别一个SMB服务器上的一组资源的(用户,打印机,文件……)。

那么一个客户端是如何与一个服务器建立SMB会话的呢?

让我们假设一个这样的环境:一个客户端希望访问一台服务器上的特定资源。

1 - 开始于客户端向服务器请求一个NETBIOS会话。客户端发送它的已编码的NETBIOS名字到SMB
服务器(它们在139端口监听连接请求)。服务器接收到NETBIOS名字后回复一个NETBIOS会话数据报给
有效的会话连接。客户端在建立了连接之后才能进入访问。

2 - 客户端发送一个SMB negprot请求数据报(negprot是磋商协议“negotiate protocol”的
简写)。客户端列出了它所支持的所有SMB协议版本。

3 - 通过磋商之后,客户端进程向服务器发起一个用户或共享的认证。(下一章中我们将会看到
共享认证和用户认证之间的不同)。

这个过程是通过发送SesssetupX(SesssetupX是会话建立和X“Session setup and X”的简称)
请求数据报实现的。客户端发送一对登录名/密码或一个简单密码到服务器,然后服务器通过发送一个
SesssetupX应答数据报来允许或拒绝本次连接。

4 - 好了,在客户端完成了磋商和认证之后,它会发送一个TconX数据报并列出它想访问的特定
网络资源的名称,之后服务器会发送一个TconX应答数据报以表示此次连接是否接受或拒绝。


netbios session request
(netbios name)
[client] ---------------------------> [server]
1)
netbios session granted
[client] <-------------------------- [server]


SMB negprot request
[client] ---------------------------> [server]
2)
SMB negprot reply
[client] <-------------------------- [server]


SMB sesssetupX request
[client] ---------------------------> [server]
3)
SMB sesssetupX reply
[client] <-------------------------- [server]


SMB TconX request
[client] ---------------------------> [server]
4)
SMB TconX reply
[client] <-------------------------- [server]


关于每个数据报的详细描述在第六章里有详细的讲解。


--[ 4 - SMB的安全等级

在SMB中有两种安全模式:

第一种是“共享”级的安全模式。这种安全模式需要一个访问网络上共享资源的密码。用户通过
这个正确的密码来访问网络资源(IPC,磁盘,打印机)。他可以是网络上任何一个知道共享资源服务
器名字的用户。

第二种是“用户”级的安全模式。这是在第一种模式上的增强版。它坚持使用一对登录名/密码来
访问共享资源。所以如果一个用户想访问这种类型的共享资源,就必须同时提供登录名和密码。这种
模式对了解用户如何使用共享资源是很有帮助的。


 

原文转自:http://www.ltesting.net