何为:httptunnel隧道技术?如何实现?(100分)

  • 主题发起人 主题发起人 jlcsx
  • 开始时间 开始时间
J

jlcsx

Unregistered / Unconfirmed
GUEST, unregistred user!
何为:httptunnel隧道技术?如何实现?
 
www.source520.com 再次更新近3万代码,全部免费免注册狂下载
 
http://linux.ccidnet.com/art/302/20060324/488973_1.html
Tunnel的意思是隧道,通常HTTPTunnel被称之为HTTP暗道,它的原理就是将数据伪装成HTTP的数据形式来穿过防火墙,实际上,它是在HTTP请求中创建了一个双向的虚拟数据连接来穿透防火墙。说得简单点,就是说在防火墙两边都设立一个转换程序,将原来需要发送或接受的数据包封装成HTTP请求的格式骗过防火墙,所以它不需要别的代理服务器而直接穿透防火墙。
 
http://www.heibai.net/article/info/info.php?sessid=&infoid=23660
上述功能似乎用端口映射也能做的到,把A主机上的23端口重定向到80端口,再把B主机上的80端口重定向到23端口就行了。但如果B主机已经开启了WWW服务了呢?要使用上述功能,使用端口映射必须牺牲B主机的80端口,这是得不偿失的。试想在一次渗透防火墙的对某台主机的攻击中,把别人本来已经开启的WWW服务DOWN了,你还能在这台主机上呆多久?但是,使用http-tunnel就可以完美实现,即使B主机已经开放80,提供WWW,我们也照样可以发送telnet到其80端口上,享受到“正版”的telnet服务。

端口复用或者说劫持、重用都是一个意思。基本原理就是通过修改socket的属性SO_REUSEADDR来实现端口重绑定的。
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val)
然后bind(s,(SOCKADDR *)&saddr,sizeof(saddr) 这里的saddr.sin_addr.s_addr =ip; saddr.sin_port = htons(80); 要劫持的端口
之后原80端口的数据你都可以accpet,recv了。需要注意的是如果接收到的数据是自己的包,就可以进行一些特殊处理,不是的话通过127.0.0.1进行转发。

不知道这样写大家看得明白不,如果不明白的话多半是基础还不够好,需要好好恶补一下课的哈!~
 
顶顶。说得不错
 
请问这个httptunnel主要应用在啥地方?
 
写木马要用吧
 
用的地方可多呢?
 
后退
顶部