---------------------------
正如上图所指出的,一切看上去就向是内部有人在访问一个WWW主机,正常地浏览网页罢了,这个隐秘性可算是相当高了!
3:其他协议实现
也许HTTP协议实现的地道还不能满足你的需要,因为有的企业或者组织会设定WEB访问认证,内部员工只有给出正确的用户名和密码才能通过验证而访问WWW站点,也有的企业或者组织会设定仅仅允许员工访问可信任的几个站点,这样基于HTTP协议的秘密隧道技术将无用武之地!
正如原理中解释的:基于TCP/IP协议的高层协议都满足构造秘密隧道的条件,那么我们可利用的还将有SMTP,TELNET等等!是的,我们的前辈们早已开发出来琳琅满目的各种各式的工具有反向TELNET或者FTP的,也有利用SMTP的存储转发性质的,甚至有SSH ,HTTPS等!原理基本都一样,只是在应用范围和一些技术细节上稍有不同罢了,在此就不多提及,有兴趣的同好可以在网上找找。
4:直接使用TCP/IP包头部传输数据
这个办法不同于前面那些利用一种协议嵌入另一协议的方法,它利用TCP/IP协议包中为了未来扩展需要而存在的许多空闲空间中填充数据。这个方法主要来自Craig H.Rowland的经典论文 " Covert Channels in the TCP/IP Protocol Suite", Craig H.Rowland也编制了一个工具来实现这个技术,这个工具的名称就是 "Covert_TCP"
Covert_TCP 支持在 IP identification,TCP sequence number , TCP acknowledgment number 这三段中填充数据[其实其他段也一样可以填充,不过因为这三个段在传输中一般不改变,稳定性比较好]。
Covert_TCP 虽然也有服务端和客户端之分,不过它可不是基于C/S模式的,事实上它的服务端和客户端是一样的,用参数指定使用TCP/IP包头的哪个段进行隐秘通信:
-ipid:使用 IP identification
这个模式原理上十分简单,客户端将ASCII码直接放入IP identification段,每个包携带一个组,服务器端将其取出就可以
-seq :使用 TCP sequence number
原理:第一个SYN包携带第一个字符,它取代了identification位,因为它不能合法地建立起三次握手,服务端返回RESET包;客户端再次送出SYN包,它携带第二个字符;以此类推,并无任何一个完整的TCP三次握手,并且RESET包可看作对每个SYN包的响应,因此这个方法虽然效率不是很高,但是亦有它可取之处。
-ack :使用 TCP acknowledgment number
这个方式比较复杂,在攻击发起者和目标直接还需要用到一个作为“传输中间人”的 bounce 服务器
---------- ------ -------
关键词:信息地道战-浅谈信息隐藏技术在HACK中应用