关闭

反弹端口原理与HTTP隧道技术

标签: 远程控制
2622人阅读 评论(0) 收藏 举报
分类:
现在,很多木马都利用了“反弹端口原理”与“HTTP隧道技术”,它的服务端(被控制端)会主动连接客户端(控制 端),因此,在互联网上可以访问到局域网里通过NAT代理(透明代理)上网的电脑,可以穿过防火墙( 包括:包过滤型及代理型防火墙) ,并且支持所有的上网方式,只要能浏览网页的电脑,这种木马都可以访问到,那么我们有必要了解一下此类木马用到的相关技术。

反弹端口原理:

如果对方装有防火墙,客户端发往服务端的连接首先会被服务端主机上的防火墙拦截,使服务端程序不能收到连接,软件不能正常工作。同样,局域网内通过代理上 网的电脑,因为是多台共用代理服务器的IP地址,而本机没有独立的互联网的IP地址( 只有局域网的IP地址) ,所以也不能正常使用,就是说传统型的同类软件不能访问装有防火墙和在局域网内部的服务端主机。

与一般的软件相反,反弹端口型软件的服务端(被控制端) 主动连接客户端(控制端) ,为了隐蔽起见,客户端的监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情况,稍微疏忽一点就会以为是自己在浏览网页(防火墙也会这么认为的) 。看到这里,有人会问:既然不能直接与服务端通信,如何告诉服务端何时开始连接自己呢?答案是:通过主页空间上的文件实现的,当客户端想与服务端建立连接 时,它首先登录到FTP服务器,写主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客 户端让自己开始连接时,就主动连接,如此就可完成连接工作。

HTTP隧道技术
常常使用木马的用户一定对木马所使用的反弹连接技术、线程插入技术等耳熟能详,但是对“HTTP隧道技术”可能就不 甚了解了,那到底什么是“HTTP隧道技术”呢?我们知道,使用了“反弹连接技术”的远程控制软件只能访问拨号上网的服务端以及局域网里通过 NAT 代理上网的服务端。
  而使用“HTTP 隧道技术”以后,远程控制软件可以访问到局域网里通过 HTTP、SOCKS4/5 代理上网的服务端。简单来说,“HTTP 隧道技术”就是把所有要传送的数据全部封装到 HTTP 协议里进行传送。因此,在互联网上可以访问到局域网里通过 HTTP、SOCKS4/5 代理上网的电脑,而且也不会有什么防火墙会拦截。
  可以这么说,使用“HTTP 隧道技术”的远程控制软件几乎支持了所有的上网方式,如:拨号上网、ADSL、Cable Modem、NAT透明代理、HTTP的GET型和CONNECT型代理、SOCKS4 代理、SOCKS5 代理等。
  通过使用反弹连接技 术和HTTP隧道技术后,服务端程序的打开端口一般开为80(即用于网页浏览的端口)。这样稍微疏忽一点用户就会以为是自己在浏览网页,而防火墙也会同样 这么认为,再加上反弹连接型木马的服务端主动连接客户端,这样就可以轻易突破防火墙的限制。 曾经案例
  2005年7月,作为网站管理员的张 庆发现自己所管辖的网站被黑客入侵。通过对网路日志的分析,跟踪到一个IP地址,结果发现该IP地址是一台代理服务器的IP地址。在通过对代理服务器当前 网络连接的分析后,最终锁定黑客真正的IP地址,并确认黑客是通过一款名为Pcshare的木马程序对它进行了控制。而Pcshare就是一款集反弹连接 技术和HTTP隧道技术于一身的木马程序。 简单防御方法
  由于HTTP隧道技术穿透防火墙的能力十分的强大,并且现在只被利用到某些木马程 序之中,所以要防范“HTTP隧道技术”对用户带来的危害,还需要从木马程序的基本防范做起。

  除此以外,我们应该了解哪些木马程序使用了“HTTP隧道技术”,这些木马程序的特点又是什么。据统计,现在 国产木马程序使用了“HTTP隧道技术”的有Pcshare和网络神偷这两款木马程序。网络神偷的清除相对简单,而Pcshare的清除就相对复杂了。 如今又有一款隧道技术木马红狼(Gh0st RAT)。

B/S 型木马
冰河、灰鸽子、红狼都属于C/S型木马,而这里不得不介绍下B/S型木马。
C/S型木马就是通过客户端(Client)对服务端(Server)进行控制操作;而B/S型木马就是通过浏览器(Browser)对服务端 (Server)进行控制操作。
最早的B/S型木马是1998年第七届"DEF CON“黑客大会,由”死牛崇拜(CDC)“组织拿出的BO2000.国内也有个网络精灵,其实是把BO2000进行汉化精简后重新用VC++进行编译封 装。

利用HTTP协议的缺陷来实现对防火墙的渗透,或者说现有的一些HTTP隧道技术的实现,是基于防火墙在对HTTP协议的报文进行识别与过滤时,往往只对 其诸如POST、GET等命令的头进行识别,而放行其后的所有报文。
所以,只要具备了对HTTP的基本认识与基本的C语言或者Perl等编程语言的常识,就可以从事HTTP方面的学习与研究了。
这是C版本的:
http://www.nocrew.org/software/httptunnel.html
虽然是在UNIX下的源代码,但对于了解基本原理与基本实现技术是很好的。
如果需要JAVA和PHP版本的可以到
http://www.ohardt.com/mailbridge/
这里下载,这是一个利用HTTP隧道技术来收发EAMIL的实现。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25339次
    • 积分:291
    • 等级:
    • 排名:千里之外
    • 原创:0篇
    • 转载:28篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论