反弹端口 HTTP代理 HTTP隧道技术

现在,很多木马都利用了“反弹端口原理”与“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方面的学习与研究了。



HTTP代理原理

      通过HTTP协议与代理服务器建立连接,协议信令中包含要连接到的远程主机的IP和端口号,如果有需要身份验证的话还需要加上授权信息,服务器收到信令后首先进行身份验证,通过后便与远程主机建立连接,连接成功之后会返回给客户端200,表示验证通过,就这么简单,下面是具体的信令格式:

CONNECT 124.xxx.xxx.xx:443 HTTP/1.1 //建立http隧道要443端口
Proxy-Connection: Keep-Alive   //客户端到服务器端的连接持续有效
Content-Length: 0
Host: 124.xxx.xxx.xx   //主机地址
Proxy-Authorization:Basic YTph //身份验证信息
User-Agent: OpenFetion //可以标识请求者的信息,如什么浏览器类型和版本、操作系统、使用语言等信息

     其中Proxy-Authorization是身份验证信息,Basic后面的字符串是用户名和密码组合后进行base64编码的结果,也就是对username:password进行base64编码。

    其实编码对安全性没什么意义,base64严格意义上都已经不能算是加密了,现在信息安全这么受重视的年代,不需要密钥的加密算法还是叫编码更贴切一些,抓到这种包之后瞬间就可以得到用户名和密码。

HTTP/1.0 200 Connection established

    客户端收到收面的信令后表示成功建立连接,接下来要发送给远程主机的数据就可以发送给代理服务器了,代理服务器建立连接后会在根据IP地址和端口号对应的连接放入缓存,收到信令后再根据IP地址和端口号从缓存中找到对应的连接,将数据通过该连接转发出去。

                               


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值