一般入侵首先是对目标主机进行端口扫描(portscan),建立在开放端口(服务)上的攻击是非常有效的。而通过共享入侵是网络中最最常见也是最基础的攻击方法。很多的网络安全初学者都是由这里开始的。
1 共享必须接触到的知识: SMB {Server Message Block) Windows协议族用于文件打印共享的服务。 NBT {NETBios Over TCP/IP)使用137(UDP)138(UDP)139(TCP)端口实现基于TCP/IP协议的NETBIOS网络互联。 在Windows NT(windows 9x)以下版本中SMB基于NBT实现,而在Windows2000中,SMB除了基于NBT的实现,还有直接通过445端口实现。当Win2000(允许NBT)作为顾客来连接SMB服务器时,它会同时尝试连接139和445端口,如果445端口有响应,那么就发送RST包给139端口断开连接,以455端口通讯来继续.当445端口无响应时,才使用139端口;当Win2000(禁止NBT)作为顾客来连接SMB服务器时,那么它只会尝试连接445端口,如果无响应,那么连接失败。 如果win2000服务器允许NBT, 那么UDP端口137, 138, TCP 端口 139, 445将开放。如果 NBT 被禁止, 那么只有445端口开放.根据以上特点,当我们对目标主机进行portscan时,如果目标主机开放139,445端口,则基本上可以判断目标主机操作系统为windows NT/2K/XP,若只开放139端口,则目标主机操作系统有可能为windows 9x。但要注意:提供SAMBA服务的linux和UNIX操作系统的139端口也是开放的,用来提供类似windows的文件共享。
扫描到了开放139端口的windows系统,我们就能用BTSTAT命令来查询有关NetBIOS的信息。命令为: nbtstat [-a RemoteName] [-A IP_address] [-c] [-n] [-R] [-r] [-S ] [-s] [interval] 解释: -a 列出给定主机名的远程计算机的名字表(name table) -A 列出给定IP地址的远程计算机的名字表 -c 列出远程名字缓冲区(name cache),包括IP地址 -n 列出本地NetBIOS 名字 -r 列出通过广播(broadcast)和WINS解析的名字 -R 清除和重新装入远程的缓冲的名字表 -S 列出和目标IP地址会话的表 -s 列出会话表转换 NBTSTAT输出(Echo)的列标题具有以下含义: Input 接收到的字节数。 Output 发出的字节数。 In/Out 无论是从计算机(出站)还是从另一个系统连接到本地计算机(入站)。 Life 在计算机消除名字表高速缓存表目前“度过”的时间。 Local Name 为连接提供的本地NetBIOS名字。 Remote Host 远程主机的名字或IP地址。 Type 一个名字可以具备两个类型之一:unique or group 在16个字符的NetBIOS名中,最后一个字节往往有具体含义,因为同一个名可以在同一台计算机上出现多次。这表明该名字的最后一个字节被转换成了16进制。 State NetBIOS连接将在下列“状态”(任何一个)中显示。 状态含义: Accepting: 进入连接正在进行中。 Associated: 连接的端点已经建立,计算机已经与IP地址联系起来。 Connected: 这是一个好的状态!它表明您被连接到远程资源上。 Connecting: 您的会话试着解析目的地资源的名字-IP地址映射。 Disconnected: 您的计算机请求断开,并等待远程计算机作出这样的反应。 Disconnecting: 您的连接正在结束。 Idle: 远程计算机在当前会话中已经打开,但现在没有接受连接。 Inbound: 入站会话试着连接。 Listening: 远程计算机可用。 Outbound: 您的会话正在建立TCP连接。 Reconnecting: 如果第一次连接失败,就会显示这个状态,表示试着重新连接
以下是我所在网吧主机的实例: C:\>nbtstat -A 192.168.0.1 9
7
3
1
2
3
4
5
6
7
8
9
4
8
:
|