Sniffer
Sniffer(嗅探器)程序是一种利用以太网的特性把网络适配卡(NIC, 一般为以太网卡)置为杂乱(promiscuous)模式状态的工具, 一旦网卡设置为这种模式, 它就能接收传输在网络上的每一个信息包。 Sniffer分为软件和硬件两种, 一般指的是软件, 但功能有限, 硬件价格比较贵。
Sniffer可以用来监听任何网络信息, 在此 我只关心http/https数据的监听。
下面我以登录126为例, 运行了在网上随便找的一个嗅探工具, 我这里为了更清楚的说明问题没有选"SSL安全登录"选项。 这里我们也该体会到的一点是防止嗅探攻击的最好方式就是加密数据。
在图片的末尾我们可以看到下面的内容:
domain=126.com&language=0&bCookie=&username=xuanhun521@126.com&user=xuanhun521&password=xuanhun&style=-1&remUser=&enter.x=%B5%C7+%C2%BC
用户名和密码都可以被嗅探到。
13.2
下面改编了一下网上的相关资料, 介绍一下会话劫持。
我们可以把会话劫持攻击分为两种类型:1)中间人攻击(Man In The Middle, 简称MITM), 2)注射式攻击(Injection);并且还可以把会话劫持攻击分为两种形式:1)被动劫持, 2)主动劫持;被动劫持实际上就是在后台监视双方会话的数据流, 丛中获得敏感数据;而主动劫持则是将会话当中的某一台主机"踢"下线, 然后由攻击者取代并接管会话。
(1)中间人攻击
要想正确的实施中间人攻击, 攻击者首先需要使用ARP欺骗或DNS欺骗, 将会话双方的通讯流暗中改变, 而这种改变对于会话双方来说是完全透明的。 不管是ARP欺骗, 还是DNS欺骗, 中间人攻击都改变正常的通讯流, 它就相当于会话双方之间的一个透明代理, 可以得到一切想知道的信息, 甚至是利用一些有缺陷的加密协议来实现。
对于IP欺骗, 有两种情况需要用到:1)隐藏自己的IP地址;2)利用两台机器之间的信任关系实施入侵。 对于基于TCP协议的注射式会话劫持, 攻击者应先采用嗅探技术对目标进行监听, 然后从监听到的信息中构造出正确的序列号, 如果不这样, 你就必须先猜测目标的ISN(初始序列号), 这样无形中对会话劫持加大了难度。
2、TCP会话劫持
如果劫持一些不可靠的协议, 那将轻而易举, 因为它们没有提供一些认证措施;而TCP协议被欲为是可靠的传输协议, 所以要重点讨论它。 SEQ ACK S_SEQ S_ACK S_WIND // C_SEQ C_ACK C_WIND // C_ACK <= C_SEQ <= C_ACK + C_WIND S_ACK <= S_SEQ <= S_ACK + S_WIND A SEQ (hex): X ACK (hex): Y FLAGS: -AP--- Window: ZZZZ B SEQ (hex): Y ACK (hex): X+60 FLAGS: -AP--- Window: ZZZZ A SEQ (hex): X+60 ACK (hex): Y+50 FLAGS: -AP--- Window: ZZZZ B SEQ (hex): Y+50 ACK (hex): X+100 FLAGS: -AP--- Window: ZZZZ SEQ (hex): X+100 ACK (hex): Y+80 FLAGS: -AP--- Window: ZZZZ B SEQ (hex): Y+80 ACK (hex): X+120 FLAGS: -AP--- Window: ZZZZ
Web应用程序是通过2种方式来判断和跟踪不同用户的:Cookie或者Session(也叫做会话型Cookie)。 其中Cookie是存储在本地计算机上的, 过期时间很长, 所以针对Cookie的攻击手段一般是盗取用户Cookie然后伪造Cookie冒充该用户;而Session由于其存在于服务端, 随着会话的注销而失效(很快过期), 往往难于利用。 所以一般来说Session认证较之Cookie认证安全。
会话型cookie也是可以通过程序获得的, 换句话说我们进行TCP会话劫持的时候如果针对http会话劫持的话可以截获所有http内容包括Session信息。
下面我们一个具体的例子。 这个例子中我使用的是一个非ARP欺骗方式的工具SSClone。 本机ip是192.168.1.107, 我在ip地址为192.168.1.105的机器上打开126邮箱。
之后在ip是192.168.1.107的计算机上我们截获了这个会话, 而且可以直接进入邮箱, 不用登录。
哎呀, 好累, 还剩点内容, 留到明天吧, 欢迎各位读者踊跃批评。
……