了解黑客的"初级阶段"---网络信息探测技巧

了解黑客的初级阶段 --- 网络信息探测技巧
 
 
1 、快速建立TCP 扫描的方法
    我们都有一个经验,就是要网卡工作到高速率上不容易, 100M 的网卡流量到 60M 时就差不多了。但是很多做测试仪器的,如 Smartbit 在测试时可以到物理带宽,看了下面的小工具你也能做到了:
先了解一些 TCP 的基础, TCP 的会话过程 ( 三次握手 )
n         A 发送 SYN B ,生成 ISN-A(A 收到包编号基数 ) ISN 为防止连接中数据接收顺序差错的编号,初始值在建立连接时随机生成,以后开始递增。 ISN 为通讯的双向 ISN-A ISN-B ,各自记录自己的包顺序
n         B 回送 SYN/ACK A ,生成 ISN-B(B 收到包编号基数 ) AN=ISN-A+1
n         A 发送 SYN B ISN-A+1 AN=ISN-B+1
TCP 包头序列号 SN 字段,存放在对话初协商随机的 32 位编号 ISN
主机在发送 SYN 时,要在会话内存中保留 ISN 与预期的 AN ,等待回送的 SYN/ACK ,并与收到的包中的作对比,一致的才认可,防止其他“冒充”的数据包,若等待时间超出,则重发几次 SYN ,直到有回应,或返回一个超时的错误。一般在扫描过程中,多数连接是没有回应的,但都要等待到超时才结束,因为同时建立的会话多,计算机消耗资源多,尤其是内存,所以多数的扫描工具速度较慢。
逆向 SYN cookie 技术:在发送 SYN 时,使用非随机的 ISN ,利用源与目的 IP 、源与目的端口,与一个作为“密钥”的种子 ( 160 )( 该种子是扫描工具设置的 ) ,通过单向散列函数计算出一个 32 位的 ISN Scanrand 工具采用的是 SHA-1 160 位输出截取到 32 位。这样发送 SYN 时,就不记录 ISN 等信息,发送进程只管尽快发送。当目标回应时,监听进程把接收数据包的 AN 1 ,然后利用数据包的 IP 与端口信息,与“种子”一起进行同样的散列算法处理,的出发送时的 ISN ,如果与收到的数据相匹配,监听进程就可以判定是自己发送的,并且可以知道目的的 IP 与端口。
由于发送无需等待回应,也不用内存占用,所以扫描发送的速度只受网卡的物理限制。
Scanrand TCP 扫描的返回值:
²        UP :打开 SYN/ACK
²        DOWN :关闭 RST/ACK
²        un** ICMP type 3 目的不可达 (RFC792) un01 主机不可达, un03 端口不可达
²        *** ICMP type 11 服务超时
    另外,逆向 SYN cookie 技术把发送与接收过程的联系分开,因为之间的联系“没有”了,这样扫描工具可以分别起两个进程,一个只管发,另一个只管收,大大提供扫描的效率。
 
2、 躲避IDS 监测的探测扫描技巧
入侵的第一步是收集信息阶段,也就是收集目标是漏洞点,俗称“踩点”。踩点的主要是工作为几个方面:
Ø         确定目标系统的操作系统类型与版本
Ø         开启服务的端口
Ø         开启服务的版本信息
原理:探测扫描的真正风险在于向目标发送太多的数据包暴露攻击者的存在,这些通讯中常包含一些构成可识别签名的数据,其中一些被有意构建为畸形的数据包,以便得到可辨识的错误信息回复。很多入侵检测系统 (IDS) 把这些签名作为“特征”进行查找,从而识别攻击的扫描行为。尤其是纯粹的 TCP 方式。
Xprobe2 工具混合了 ICMP TCP UDP 多中方式,并且不发送畸形数据包,探测行为不给网络带来“噪音”,所以能躲避很多 IDS 的检测。同时利用 IDS 一般喜欢有产生大量日志或假报警的习惯,用一些表面上看是偶尔可疑的事件,尤其是在大数量事件的背景下,很容易逃脱安全管理人员的眼睛。
探测操作系统类型:
例子 1 ICMP PING 是网络中常见的连接查询方式,但很多“指纹”细节可以带来探测中需要的重要信息。正常情况下发送 ICMP Echo Request ,目标机器一般回复为 Echo Reply 。工具 Xprobe2 在发送 Request 时,把 ICMP 包的 Code 字段设为 123( 自己定义的 ) ,而不是 0 。有意思的是不同操作系统的目标机器回复是不同的, Microsoft Windows 会用 Code 0 回复,其他 OS 一般采用与请求相同的 Code 值回复。
探测服务端口是否带开:
例子 2 :正常情况下,探测服务端口会对常见的端口或全部端口直接发送连接建立请求包,密度大,排列整齐,很容易被 IDS 发现。为了在探测目标端口是否打开时躲避 IDS 的监控,工具 Xprobe2 采用了一个“第三方模拟”的技术。 Xprobe2 先自己给本地 DNS 发个某地址 DNS 请求,得到正确的返回包。然后 Xpeobe2 把这个返回包改造为自己是 DNS 服务器,给目标机器的返回包,发送 DNS 端口 (53) ,查询端口就是目标中要探测的端口,如 UDP65500 。目标机器收到这个包很意外,因为自己没有发过请求,所以就给了一个正常的回复,如端口不可达,而这正式 Xprobe2 所需要的,回复中表明该端口关闭。因为 DNS 包不会引起 IDS 的注意,从而掩盖了探测的行为。
探测服务端口上的服务类型信息:
该需求对常见服务是不必要的,但对于网络管理人员采用了很多“安全”措施后,也就变得很需要了。“不公开,即安全”是一种传统的安全理念,所以网管人员采用一些非标准端口运行通常的网络服务,让探测者失去“目标”,保证安全。
作为扫描者需要探知端口上的服务详细信息,作为网络管理员需要探知网络内用户安装了那些公司不允许的“服务”。
Amap([url]www.thc.org[/url]) 是探测端口服务的工具。主要的原理是通过开启多个连接,抓取该端口服务的“特征”,从而判断服务的类型。如 Telnet 到到端口,即可提示服务类型与版本信息等。但是服务“特征”不明显或被修改时,这种方式就难以奏效。 Amap 通过模拟一些查询或会话建立的初始请求,尝试与目标建立连接,从而探测服务的类型与版本。如 SSL 服务需要握手的三个步骤: 1 Client_hello 2 Server_hello 3 Server-to-client certificate transfer
当然,该工具积累了一个庞大的常见应用模拟通讯数据库。
Amap 也是网管人员的好工具,可用来发现用户安装的、未经授权的服务,尤其是对经常变化端口号,隐藏公司不允许的服务的情况,如 P2P VNC 远程桌面等。
 
3、 不可小看的ARP 协议
ARP 是通讯中匹配 IP 地址与 MAC 地址的协议,是 TCP/IP 通讯的基础,当主机要给目标发送数据时,首先通过 DNS 协议把 www 地址 ( 应用层地址 ) 翻译成目标 IP 地址 ( 网络层地址 ) ,再通过 ARP 协议把 IP 地址影射为目标的 MAC 地址 ( 数据链路层地址 )( 可能是网关而非真正的目标计算机 ) ,数据才可以发送。在 Hub 时代,大家通讯都是可监听到的, MAC 地址的广播与更新相对简单,但到了 Switch 时代,冲突域“没有了”,其他两人的通讯也不再是你能随意获得的,所以 ARP 也有了新的发展。
Ø         代理 ARP(proxy ARP) :在很早的时候,目标主机与源主机不在一个网段时, ARP 的广播会网关设备截止而抛弃,目标主机就听不到,当然就无法回答。所以网络中有一个“管理者”负责把不是本网段的 ARP 请求统一管理,代理这些请求,让源主机先发送给自己,再由自己发送给目标机器,这就是 ARP 代理。后来主机内都设置了默认网关地址,当主机发现目标主机不在本网段时,直接发送给设备的网关。所以直接请求网关的 MAC 地址就可以了。虽然 ARP 代理已经很少使用,但想侦听别人通讯的人也可以冒充网关,从而代理你的业务。
Ø         查询 ARP(Unsolicited ARP ,也称未经同意的 ARP) :在主机开机时,初始化 TCP/IP 栈,并向准备使用的 IP 地址发送一个 ARP 请求,查看网络中是否有地址冲突。当请求没有收到答复时,可以放心使用该 IP 地址。当然 TCP/IP 规定在发送方不知道目标的 MAC 时,都要先发送查询 ARP ,等待目标者答复,没有目标 MAC 是没有办法组织发送包的。
Ø         免费 ARP(Unicast ARP Gratuitous ARP ,也称无故 ARP) :因为网络设备 ( 交换机 ) 中的 FDB 转发表 (MAC 地址对应端口 ) 和主机 ARP 缓存表 (IP 地址对应 MAC 地址 ) 都是动态学习刷新的,一段时间没有数据包就会“老化”而删除,所以为了刷新这些会“学习”的表格,直接发送 ARP 应答,由于是自己主动发送的,并且此 ARP 应答不是针对某个地址,而是针对本网段的广播,所以称免费 ARP 。一种情况是主机在开机时会发送免费 ARP ,目的是告诉网络“我来了”,同时通知交换机在对应的端口上记录自己的 MAC 。另一种情况是有些主机与网络设备为了保持自己在别人缓存中不被老化,定期发送的刷新提示,这样当有人给自己发数据时,就不用因为地址老化而发送 ARP 请求再重新查找了。 Cisco 的网络设备就有定期发免费 ARP 的习惯。
   
ARP MAC 地址学习的工具,所以免费 ARP 一般很常见,安全设备会忽视他是存在,从而成为攻击者监听的工具。
ARP 下毒攻击原理:攻击方的目标是成为通讯双方的 ARP 代理,也称作中间人攻击,具体是通过免费 ARP ,快速刷新通讯双方的主机 ARP 缓存,让双方都认为对方的 IP 地址对应的 MAC 地址就是中间人的,从而在他们双方通讯时把数据“误送”给了中间人,再由中间人代理给对方。
中间人攻击若模拟自己是网关,则可以代理网段上所有主机对外的通讯,所以网关设备对网络上的冒充自己 IP 的行为一向非常重视。
 

你可能感兴趣的:(扫描,网络安全,黑客,休闲,探测)