反弹端口型木马

首先要知道反弹端口的原理:
简单地说,就是由木马的服务端主动连接客户端所在IP对应的电脑的80端口。相信没有哪个防火墙会拦截这样的连接(因为它们一般认为这是用户在浏览网页),所以反弹端口型木马可以穿墙。

以下是在“网络神偷”的介绍中挖下来的:道高一尺、魔高一丈,不知哪位高人分析了防火墙的特性后发现:防火墙对于连入的连接往往会进行非常严格的过滤,但是对于连出的连接却疏于防范。于是,与一般的软件相反,反弹端口型软件的服务端(被控制端)主动连接客户端(控制端),为了隐蔽起见,客户端的监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用端口扫描软件检查自己的端口,发现的也是类似 TCP UserIP:1026 ControllerIP:80 ESTABLISHED 的情况,稍微疏忽一点你就会以为是自己在浏览网页(防火墙也会这么认为的)。

看到这里,有人会问:既然不能直接与服务端通信,那如何告诉服务端何时开始连接自己呢?

答案是:通过主页空间上的文件实现的,当客户端想与服务端建立连接时,它首先登录到FTP服务器,写主页空间上面的一个文件,并打开端口监听,等待服务端的连接,服务端定期用HTTP协议读取这个文件的内容,当发现是客户端让自己开始连接时,就主动连接,如此就可完成连接工作。

反弹端口型木马:利用反弹端口原理,躲避防火墙拦截的一类木马的统称。国产的优秀反弹端口型木马主要有:灰鸽子、上兴远程控制、PcShare等。


1  一般木马的工作过程
木马程序有两部分组成,一部分是服务器(Server)端程序,服务端运行后,会在本机打开一个特定的网络端口监听客户端的连接。另一部分是客户(Client)端程序,即控制在攻击者手中的程序,攻击者通过它获取远程计算机的数据并通过它控制远程计算机。攻击者用客户端去连接服务端计算机的特定端口,进行登录,发出控制命令等,进而取得对计算机的控制权限,可以任意查看或删改服务端文件,操作服务端的注册表 ,获取服务端的系统信息 ,窃取口令等 ,就如同访问他自己的计算机一样方便。
其过程可用 VB 实现如下:(Horse_Server 和Horse_Client 均为 Winsock控件) :
服务端:
Horse_Server. LocalPort = 31339 (打开一个特定的网络端口)
Horse_Server.Listen(监听客户端的连接)
客户端
Horse_Client . RemoteHost = RemotelP (设远端地址为服务器端IP地址)
Horse_Client . RemotePort = 31339(设远程端口为服务端程序起动的特定端口)
Horsec_Client . Connect (连接服务端计算机)
一旦服务端接到客户端的连接请求 ConnectionRequest ,就接受连接。
Private Sub Horse_Server_ConnectionRequest (ByVal requestlD As Long)
Horse_Server.Accept requestlD
End Sub
客户机端用 Horse_Client . SendData 发送命令 ,而服务器在 Horse_Server_DataArrive事件中接受并执行命令(如:修改注册表、删除文件等) 。
如果客户断开连接 ,则服务端连接并重新监听端口:
Private Sub Horse_Server_Close ()
Horse_Server. Close (关闭连接)
Horse_Server.Listen(再次监听)

End Sub[1 ]


2  反弹端口型木马的工作原理
一般木马服务端运行后,会用邮件、ICQ 等方式发出信息通知入侵者,同时在本机打开一个网络端口监听客户端的连接(时刻等待着客户端的连接) 。收到信息后,入侵者再运行客户端程序向服务器的这一端口提出连接请求(Connect Request) ,服务器上的守护进程就会自动运行,来应答客户机的请求。
目前,由于大部分防火墙对于连入的连接往往会进行非常严格的过滤,能对非法端口的IP包进行有效的过滤,非法连接被拦在墙外,客户端主动连接的木马,现已很难穿过防火墙。
与一般的软件相反,反弹端口型木马是把客户端的信息存于有固定IP的第三方FTP服务器上,服务端从 FTP 服务器上取得信息后计算出客户端的IP和端口,然后主动连接客户端。另外,网络神偷的服务端与客户端在进行通信,是用合法端口,把数据包含在像HTTP或FTP的报文中,这就是黑客们所谓的“隧道”技术。其过程如下:
服务端:
Horse_Server. RemoteHost = RemotelP(设远端地址为从指定FTP服务器取得的客户端IP地址)
Horse_Server. RemotePort = RemotePort (设远程端口为客户端程序起动的特定端口,如:80、21等)
Horse_Server. Connect (连接客户端计算机)
客户端:
Horse_Client . LocalPort = LocalPort (打开一个特定的网络端口,如:80、21等)一旦客户端接到服务端的连接请求 ConnectionRequest ,就接受连接。
Private Sub Horse_Client_ConnectionRequest(ByVal requestlD As Long)
Horse_Client .Accept requestlD
End Sub
Horse_Client .Listen(监听客户端的连接)客户机端用Horse_Client . SendData 发送命令,而服务器在 Horse_Server DataArrive事件中接受并执行命令。如果客户断开连接,则服务器端关闭连接:
Private Sub Horse_Server_Close ()
Horse_Server. Close (关闭连接)
End Sub
之后每隔一段时间服务端就会向客户发一个连接请求:Horse_Server. Connect (连接客户端计算机)
目前,大部分防火墙对于连入的连接往往会进行非常严格的过滤,但对于连出的连接却疏于防范。像这种“反弹端口”原理的木马,又使用“隧道”技术,客户端的监听端口开在防火墙信任的端口上,把所有要传送的数据全部封装到合法的报文里进行传送,防火墙就不会拦截。如80(提供HTTP服务的端口)或21(提供FTP服务的端口),它会认为内部用户在浏览网页或进行文件传输,则木马穿过防火墙。其实即使用户使用端口扫描软件检查自己的端口,对类似TCP local address :1026 foreign address :80 ESTABLISHED的情况也未必注意。这样,反弹端口型木马不但可以穿过防火墙,而且可以通过HTTP、SOCKS4/ 5 代理,甚至还能访问局域网内部的电脑。像用NAT透明代理和HTTP的 GET型代理等的局域网,还有拨号上网、ISDN、ADSL 等的主机,都有可能。


3  查杀方法

对是不是中了反弹端口型木马我们可以做如下检查:
(1)关掉所有的网络连接程序(如:IE浏览器、FTP服务等) ,转入命令行状态用netstat -a命令,netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运行。

(2)用网络监视软件,如:sniffer、IParmor 等查一下自己怀疑的端口是否被侦听。如在(1)中发现类似TCP local address :1026 foreign address :HTTP ESTABLISHED(或者是类似TCP local address :1045 foreign address:FTPESTABLISHED)的情况或在(2)中发现怀疑的端口被侦听,有可能中了此类木马。

目前发现的反弹端口型木马有网络神偷和灰鸽子(辐射版)两种。


如果中了反弹端口型的木马,对于网络神偷,我们可以用下面的方法清除:

(1)查看注册表启动项HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中的可疑键值(键名是在生成服务端时由用户设置的)并删除(做这一步必须对Windows注册表非常熟悉),重启后,再删除系统目录(C:\Windows\System)中的服务端程序(文件名也是由用户设置的) 。
(2)在中了木马的机器上运行客户端程序,可以再生成并运行新的配置正确的服务端,就会把原来的服务端冲掉。重新运行客户间 ,在客户端的“服务端在线列表”找到自己并连接上,再用菜单“网络” — >“远程卸载” ,就可以彻底清除。
对于灰鸽子,由于此软件原理与其他同类软件不同,它的服务端只有生成它的客户端才能访问,其他人是不可能访问的,所以不能用自动卸载的方法清除它 ,只能手工清除:先删除注册表启动项
(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)
(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices)
(HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run)
中的可疑键值(键名是在生成服务端时由用户设置的)。重启后,再删除系统目录(C:\Windows\System)中的服务端程序(文件名也是由用户设置的)。最后检查一下是不是木马程序与EXE关联,如果与EXE关联则修改注册表:(HKEY_CLASSES_ROOT\exefile\shell\open\command\)默认值为:“%1”% 3。否则删除服务端程序后什么程序也不能运行了。

由于以前的木马都是客户端主动连接,所以目前大部分防火墙对于连入的连接往往会进行非常严格的过滤,对付木马我们只要在防火墙上设置为只能连出不能连进,就可一劳永逸了。然而反弹端口型木马的出现对传统的防火墙提出了新的要求:防火墙不但要防外还要防内,即应用程序访问网络规则,过滤那些存在于用户计算机内部的各种不法程序对网络的应用,从而可以有效的防御像“反弹式木马”那样的骗取系统合法认证的非法程序。当用户计算机内部的应用程序访问网络的时候,必须经过防火墙的内墙的审核。但这也带来一些问题:我们在访问网络的时候必须手工确认哪些程序合法,这个工作可能非常烦琐。再者对一个电脑入门者,决策哪些程序合法也是一个非常困难的问题。防,随着攻的发展始终存在不完善之处,但是却始终遵循一个原则:魔高一尺,道高一丈。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值