http反向连接技术

常见的普通木马,是安装在用户计算机里的一
段服务程序,而攻击者控制的则是相应的客户端程
序.服务程序通过特定的端口,打开用户计算机的
连接资源.一旦攻击者所掌握的客户端程序发出请
求,木马便和他连接起来,将用户的信息窃取出去.
这种连接方法叫做主动连接,这类木马的一般工作
模式如图1所示.

 

 


 

可见,此类木马的最大弱点,在于攻击者必须
和用户主机建立连接,木马才能起作用.一般的防
火墙都限制外部对内的连接,因此这样的木马很难
工作起来.而反弹式木马_4 J,在工作原理上就与常
见的木马不一样.图2是反弹式木马的一般工作原
理.木马程序的服务器通过访问第三方代理服务器
获取控制台的IP地址,主动发起对指定IP的连接
请求.由于连接是从防火墙内部网络到外部网络的
连接请求,防火墙一般不进行过于严格的检查,因
此可以非常容易地通过防火墙.当服务端和控制台
建立连接后,即可以进行命令或数据信息的传输.

2.2 HrrrP隧道技术
HrrrP隧道技术,就是把所有要传送的数据全
部封装到HrrrP协议里进行传送.由于[nternet的迅
猛发展,H,rrP协议已经离不开了,浏览器访问Web
资源都要通过HrrrP协议,所得到的Web信息都是
封装在HrrP协议里面进行传输的.HrrP隧道技术
就是将应用程序要传输的数据信息利用HrrP协议
进行封装,把应用程序要传输的信息都伪装成HTTP
包,然后把请求的目的端口设置成80,这样防火
墙检测时就认为是安全的数据包,从而在应用程序
和远程主机之间利用HrrP协议封装建立起一条安
全传输隧道.

 

2.3 HTFP端口复用技术
端口复用技术也称端口劫持技术,其基本原理是
通过修改socket的属性SO—REUSEADDR来实现端
口重绑定的.setsockopt(S,SOL—SOCKET,SO—REUSE—
ADDR,(char :l:)&val,sizeof(va1)),然后bind(S,
(SOCKADDR :l:)&saddr,sizeof(saddr))这里的sad—
dr.sin— addr.s— addr = ip;saddr.sin— port = htons
(80);80端口是要劫持的端口.这样原80端口就可
以用来发送和接收我们自己的数据包.需要注意的
是:如果接收到的数据是自己的包,就可以进行一些
特殊处理;如不是,则通过127.0.0.1进行转发

 

2.4 共享DNS套接字句柄技术
只要一台计算机连上了网络,那么有一种数据
传输是肯定不会被拦截的,那就是DNS域名解析服
务(以下简称DNS服务),DNS服务共享Network
Service组的svchost.exe进程空间.DNS服务所使用
的套接字 是利用UDP进行传输的,可以获得DNS
服务所使用的套接字句柄,然后利用这个套接字句
柄来发送和接收自己的数据并且保持原来的数据
传输不变

 

反向连接技术和HTFP隧道技术虽可穿透部分
防火墙,但有很大局限性.本文采用的反向连接和
HTFP隧道相结合的技术则可更有效地穿透国内外
主流的防火墙.
反向连接就是从服务端发起连接,从防火墙所在
主机内部向外部连接,这样一般的防火墙都会放
行 .以木马为例:木马服务端首先植入到目标主机
上,木马服务端运行后访问第三方Web服务器,得到
控制台的IP地址和端口号,创建套接字连接控制台.
为了实现HrrP隧道,选择控制台的监听端口为80,
这样木马服务端就是向外连接控制台的80端口,建
立好连接之后所有的数据传输都是经过HTFP协议
封装的,在TCP头之前加上HTI'P请求头,只要服务
端所在主机防火墙允许目的端口为80的HrrP请求
通过,通信就能安全进行,而只要主机联网访问web
服务器,那么80端口都是开放的,网络防火墙也对目
的端口为80的HrrP请求放行,这样木马就可以顺
利地穿透防火墙了.不过值得注意的是,在数据前要
加上HrrP请求头,这样在数据处理时要还原,在数
据处理之前要先把HTFP请求头去掉.
数据的HrrrP协议封装通过添加HrrP请求头
和标记实现.在应用层准备数据之后,在数据之前
加上HTFP请求头“GET/HTFP/1.0\r\nUser—

Agent:Molliza/1.22 \r\nAccept: %/ % \r\n\r\n”,
然后在数据之后加上“$$”作为数据段的标记,最
后再把这个经过封装处理的数据利用socket套接字
发送到对方的8O端口上.数据的解封就是去掉HTTP
请求头和标记.客户端接收到数据包后通过查找
标记字符串“$$”找到真正的数据段,把HTFP请
求头去掉,然后把数据交给应用程序处理.
3.2 共享DNS套接字句柄技术的实现及测试
反向连接一般只能用在木马上,一般的服务都是
通过客户端向服务端发起连接.本文提出一种更好的
穿透防火墙的方法,那就是共享套接字句柄穿透防火
墙.共享套接字通信要求套接字可以被应用程序共
享.这样对套接字要求就不能用TCP连接的套接字
了,而只能用面向无连接的UDP套接字通信.一般的
防火墙对UDP通信监管比较严,找到一个比较稳定,
而且只要主机联网就必须开启的DNS服务的套接字
作为共享套接字句柄的目标套接字.利用DNS服务
主要是利用了它和防火墙之间的信任关系:防火墙如
果关闭DNS服务,不允许DNS服务通信,整个域名解
析也就不能实现,导致许多网页打不开,因此在本文
的设计中就是利用了DNS的套接字来发送和接收应
用程序的数据

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值