危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2289 浏览19378971

穿墙妙招——浅议端口复用技术

我们知道,电脑要和外接网络进行连接,必须通过特定的端口才行。在传统印象中,通过一个端口只能开辟一条网络连接。但是,实际情况却不仅如此。接下来就看危险漫步给各位详细讲解一下吧。使用端口复用技术,就可以通过一个端口开辟多条连接通道。端口复用是指允许多个程序在共用一个端口,当客户端向该端口发送连接请求时,服务器端后对该请求作出判断,然后把网络数据发送给相应的程序。当然,在电脑中存在6万多个可以利用的端口,端口复用技术似乎用处不大,但实际上在某些场合,端口复用技术还是有着重要的用途。例如在局域网中,通常利用防火墙和外网分隔,但是防火墙不可能关闭所有网络端口,只要在防火墙上开启了特定的端口,就可以利用端口复用技术轻松穿越防火墙的“束缚”。另外,现在一些后门程序也都采用了这以技术,打造隐蔽入侵的目的,因为我们很有必要了解端口复用技术,达到知己知彼的目的。这里我们就以WxhShell为例,从实战的角度了解端口复用技术

WxhShell是一个小巧的远程控制程序,可以轻松实现端口复用。当然,该程序对于采用独占方式的端口无法实现绑定操作(例如Windows XP中的135、445等端口),对于其它端口基本上都可以实现多重绑定。在服务器上的CMD窗口执行“wxhshell.exe”,之后程序没有任何回显信息,但是WxhShell已经在系统中运行了。在Windows的任务管理器中可以看到其“身影”,当然您可以直接在其中关掉该进程,WxhShell默认开启的网络端口号是5000。在客户端我们使用监听工具“nc.exe”与之建立连接。例如在客户端的CMD窗口中执行命令“nc 61.54.56.120 5000”,就可以和服务器建立连接,这里的“61.54.56.120”为服务器的IP。在弹出的“Please Input Your Password”栏中输入密码(默认为“xuhuanlingzhe”),之后弹出“#>”命令提示符,表示已经和服务器建立了网络连接。在其中输入“?”,可以列出WxhShell所有命令参数当使用WxhShell通过服务器上的80端口远程遥控服务器时,对服务器上运行的IIS服务毫无影响,这样,我们的遥控操作就可以轻松穿越防火墙的阻隔了,因为防火墙在一般情况下,是不会关闭80等常用端口的。这样就实现了IIS和WxhShell共同绑定80端口的操作,此时在CMD窗口中执行命令“netstat -an”,查看系统当前的端口占用情况,就会发现80端口的确被同时占用。值得说明的是,当与复用的端口正常绑定的程序突然退出病重启时,会出现系统出错的情况。例如本例中,当IIS服务突然退出并重启时,就会出现“地址已经使用”的提示,造成IIS无法使用的情况。这就是端口复用技术的薄弱之处,此时必须退出并终止WxhShell,才可以正常启动IIS等常用的程序。