SMB攻击的一些资料

2008-04-02 10:58:52来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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]

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:企业安全的十个漏洞

下一篇:思科:自防御网络和可信网络