V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
nareix
V2EX  ›  程序员

当年世界头号黑客凯文米特尼克完成了怎样的 TCP 劫持?

  •  
  •   nareix · 2016-05-12 22:59:30 +08:00 · 5719 次点击
    这是一个创建于 2899 天前的主题,其中的信息可能已经有所发展或是发生改变。
    http://www.freebuf.com/fevents/104106.html

    14:30 AM

    来自美国加州大学的选手曹跃在不共享链路(非中间人攻击)的情况下截取电脑与服务器的 TCP 链接,成功弹出一个钓鱼页面,盗走用户密码。而这个 TCP 协议栈的漏洞,会影响几乎全部的安卓和 Linux 系统。曹跃成功重现了当年世界头号黑客凯文米特尼克完成的 TCP 劫持。

    1 、 TCP 是什么?

    在互联网启蒙时期,不同的开发者使用了不同通信方式,而为了让通信成功并且可靠,要求所有主机都使用相同的语言,而非各自的“方言”。这时“协议”便出现了,通俗地说就是一种大家约定好的通信方式。

    TCP 的全名为传输控制协议,是上世纪 60 年代由麻省理工学院和一些商业组织为美国国防部开发的,作为目前世界上应用最为广泛的协议,被用于网站、邮件及即时通讯网络连接中。

    TCP 提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用 TCP 的应用(通常是一个客户和一个服务器)在彼此交换数据包之前必须先建立一个 TCP 连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。

    2 、 TCP 劫持 /破解 TCP 序列号为什么被视为“不可能的任务”?

    当主机与服务器通过 TCP 协议建立初始连接时,它们之间会发送一系列数据包,来创建一个连接。 TCP 协议要求把传输的数据分成大小适合的“包”,并给每个“包”一个序列号,接受者成功接收后也会发回一个相应的确认号( ACK )。

    因此是否能够有效劫持一个连接,取决于攻击者是否能够预测出 TCP 序列号和端口号。序列号这是一个 32 位随机数,有 40 多亿种可能;端口号则 6 万多种可能,两者相叠加一共有超过 280 万亿种可能。在实际网络环境中,由于网络带宽以及相应 TCP 连接持续时长有限,这样的连接是不可能被暴力猜解的。当今 TCP 连接序列号的设计就是为了防止被破解。

    --------

    这个新闻说的很牛逼,而且微博上说是『知道 IP 地址就能发起攻击』,然而真正实现并没说。所以到底是咋回事儿?
    4 条回复    2016-05-13 08:56:32 +08:00
    ryd994
        1
    ryd994  
       2016-05-12 23:15:50 +08:00
    想多了吧?
    “ TCP 连接序列号的设计就是为了防止被破解” 呵呵呵……那 TLS 干什么吃的?
    TCP 本来就是不加密的,而且也从不应被认为是安全的。即使不控制链路,一样有机会窃听到交换的数据包。序号是连续递增的,在不控制链路的情况下,难点不是猜到序号,而是在劫持后,避免另一方发现序号错误然后 rst 。控制链路的话当然就简单了, drop rst 包就行。如果不控制链路,个人水平有限,只能想到 ARP 之类的更低层的欺骗。或者服务器的防火墙恰好配置有误。
    ryd994
        2
    ryd994  
       2016-05-12 23:19:57 +08:00
    补充一条可能有用的
    前提是服务器配置不当(实际上网上很多教程都是这么配的,同时也是为什么 firewalld 的 catch-all reject 而不 drop )
    http://www.iptables.info/en/iptables-problems.html#SYNACKANDNEW
    nareix
        3
    nareix  
    OP
       2016-05-12 23:27:17 +08:00
    @ryd994 我也觉得是。然而它说『不共享链路』,就是说不在一个链路层,连窃听都不能?
    liwei
        4
    liwei  
       2016-05-13 08:56:32 +08:00   ❤️ 1
    http://wiki.cas.mcmaster.ca/index.php/The_Mitnick_attack

    Kevin Mitnick 当年实施 TCP 劫持时 TCP 协议栈还很简陋,并且需要依赖的外部条件也很多。如果说在当前的 linux 协议栈上还能重现 Mitnick 攻击,难度比当年要高很多。

    在没有提供详细的攻击方法之前,我对此持怀疑态度。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1173 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:16 · PVG 02:16 · LAX 11:16 · JFK 14:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.