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

端口映射技术杂谈

端口映射按照原理可以分为动态端口映射和静态端口映射两类。动态端口映射指当内网中的电脑访问外部网络时,其发送的数据包中包含源地址和端口,以及目标地址和目标端口等信息,但是由于在Internet上并不识别专用地址,所以当数据包发送到网关服务器上时,网关会把其中的源地址和源端口替换为自己的地址和端口,然后把数据包发送出去,同时记录下这种地址和端口的对应关系。当外网的主机接收到该数据包后,会发送一个应答包给网关服务器,因为刚才网关服务器已经建立了对应关系,所以会把应答包中的目的地址和端口修改为内网中的地址和端口,之后转发给指定的内网主机,这就实现了数据转发功能,常用的Sysgate,Wingate等软件都可以可以实现上述功能。当内网和外网的连接关闭时,服务器网关会释放这条转发连接,这就是动态端口映射技术。静态端口映射技术指服务器网关打开一个固定的端口,而且发送到该端口的数据都将转发到内网中的某台主机的指定端口上,不管连接是否存在,这种数据转发关系都一直存在,这里说得网关服务器指的是路由器,交换机或者独立的PC。接下来危险漫步就给各位详细的讲一讲。

一、使用IIS实现简单端口映射

打开Windows的Internet信息服务管理器,在其窗口左侧列表中选中合适的站点项目,在其右键菜单中点击“属性”项,在属性窗口中的“主目录”面板中选中“另一台计算机上的共享”项,在“网络目录”栏中输入UNC路径信息,例如\\192.168.0.9 server,这样来自外界的连接请求就会自动映射到另一台电脑的指定目录上,业可以选择“重定向到URL”项,在“重定向到”栏中输入内部网络的Web服务器地址,这样来自外界的访问请求就会自动转移到指定的URL上了。在IIS中还包含了FTP组件,同样可以实现FTP的端口映射,在Internet信息服务管理器中选中“默认FTP站点”项,在其属性窗口中打开“主目录”面板,在其中选中“一台计算机上的共享位置”项,其余的操作方法和上述完全相同。

二、巧用路由和远程访问实现端口映射

在Windows Server中可以使用系统自带的“路由和远程访问”功能。来实现端口映射功能。

点击“开始”→“程序”→“管理工具”→“路由和远程访问”,在其窗口左侧列表中选中本地计算机名称,在右键菜单中点击“配置并启用路由和远程访问”项,弹出操作向导界面,在“配置”窗口中选择“网络地址转换”项,在“NAT Internet连接”窗口中选择“使用此公共接口连接到Internet”项,在列表中显示出本机中的所有网卡信息,在其中选中连接Internet的网卡,在下一步窗口中点击“完成”按钮,即可完成配置并启动路由和远程访问功能。在“路由和远程访问”窗口中选中“本机名称”→“IP路由选择”→“NAT/基本防火墙”分支,在右侧窗口中双击外网连接项,在属性窗口中的“服务和端口”面板中点击“添加”按钮,在添加服务窗口中输入服务的描述信息,在“协议”栏中选择TCP或者UDP协议,在“传人端口”中输入输入在lnternet上供用户访问的端口号,例如输入端口号80,在“专用地址”栏中输入内部网络中的服务器地址,例如输入“192.168.0.100”,在“传出端口”栏中输入内网中服务器的端口号,例如端口号80,假设本机的外部地址为“219.89.56.91”,那么访问“219.89.56.91”上的Web服务,就会自动转向内网中的IP为“192.168.0.100”的主机Web服务器上。如果本机使用多个公用IP,那么在配置端口映射之前,需要进行NAT地址池的设置。在属性窗口中的“地址池”面板中点击“添加”按钮,如果使用IP和掩码表示地址范围,在弹出的对话框中输入起始地址和掩码即可,否则直接输入起始和结束地址即可。同时在上述“添加服务”窗口中设置端口映射时,需要选择“在此地址池”项。

三、使用专用工具实现端口映射

除了系统自带的工具外,一些第三方的软件也可以实现端口映射功能。这里以PortTunnel和Port2Port为例进行说明。PortTunnel提供了HTTP、FTP、SMTP等多种服务的端口映射功能,还提供了日志,统计和安全性等的设置功能,在其主窗口中点击“Add”按钮,在弹出窗口的“Main”面板中的“Name”栏中输入新建映射的名称,勾选“Enabled”项,表示激活端口映射功能。在“In”栏中的“Port”中输入供外界访问的端口号,在“Bind address”中选择本机的外网IP,在“Out”栏中的“Port”中输入映射端口,在“Bind address”中输入内网中的主机地址。PortTunnel还提供了批量端口映射功能,在上述“In”和“Out”栏中选中“Range”项,即可设置映射的端口群。之后点击OK按钮即可实现端口映射功能。

Port2Port是一款命令行下的端口映射工具,使用的方法很简单,其语法结构为“P2P [-options]<-11Port><-T tIP><-t tPort>”,其中的“-h”参数表示帮助信息,“-d”参数表示显示信息,“-s”参数表示在同目录下生成名称为P2P.log的日志文件,其中的“-1 lport”参数表示输入端口,“-T tIP”参数表示输出IP,“-t tPORT”参数表示输出端口。例如将本机的80端口映射到内网中的“192.168.0.99”的80端口上,只要在CMD窗口中执行命令“p2p -d -s -180 -T 192.168.0.99 -t 80”即可。

四、巧用端口映射突破内网束缚

现在很多单位的局域网都是通过网关来控制内网共享上网的,对于外网用户来说,如何能够突破网关的限制,轻松访问内网资源呢?实际上。利用端口重定向技术,即可巧妙解决上述问题。这里假设网关的IP为202.98.196.6,需要访问的内网电脑IP为192.168.0.79。这里使用Fpipe这款小巧的端口重定向工具,在网关服务器上执行“fpipe -1 81 -s 91 -r 21 192.168.0.79”(将发送给网关服务器81端口的数据通过91端口转发向192.168.0.79的21端口),“fpipe -1 82 -s 92 -r 23 192.168.0.79”(将发送给网关服务器82端口的数据通过92端口转发向192.168.0.79的23端口),“fpipe -1 83 -s 93 -f 80 192.168.0.79”(将发送给网关服务器83端口的数据通过93端口转发向192.168.0.79的80端口),“fpipe -1 84 -s 94 -r 139 192.168.0.79”(将发送给网关服务器84端口的数据通过94端口转发向192.168.0.79的139端口)等命令,即可实现对内网指定电脑的端口映射功能。这里需要简单说明一下Fpipe的用法,命令行中的“-l”参数表示输入端口号,“-r”参数表示要定向到的目标IP主机,“-s”参数表示重定向的端口号。之后在本机上执行命令“telnet 202.98.196.6 82“就相当于等价于telnet到了内网192.168.0.79的23号端口上,执行“ftp 202.98.196.6 81”相当于等价于登录到内网192.168.0.79的21号端口上。这样,就实现了突破网关访问内网主机的目的。实际上,在黑客入侵活动中,端口重定向技术也是很常用的,例如黑客可以通过各种系统漏洞,使用溢出工具对Internet上某台主机进行溢出攻击,在其上取得了具有相当权限的CMDShell环境,在该机上开启了3389终端服务,但是管理员使用IP安全策略对3389端口进行了封锁,从外部直接连接终端服务是无法成功的,黑客可以通过IPC$连接将-Port2Port,Fpipe等工具上传到服务器上,之后在CMDSheU中执行“Fpipe -v -1 3333 -r 3389 127.0.0.1”,这样即可将目标服务器上的3333端口映射到3389端口上之后黑客即可在本机使用终端服务连接工具连接目标机的3333端口,这样就可以通过端口映射使用目标机的终端服务了,因为管理员通常只对重要的端口进行封锁,使用端口映射技术可以轻松突破这种封锁。

五、妙用端口映射突破昂罗封锁

QQ是很常用的聊天工具,它使用的是UDP协议,现在很多单位为了防止员工使用QQ聊天,将UDP协议进行了封锁,这样在默认情况下是无法使用QQ的,实际上,使用端口映射技术可以有效的突破协议封锁。这里使用的端口映射工具为“SuperAgent”,这是一款很经典的工具,对于那些完全屏闭某些网络协议数据包的防火墙有效,因为它可以改变数据包的协议类型,其实质就是一款端口映射工具。首先在网上照一台可以完全控制的主机(假设其IP为“61.54.56.90”),在其上运行“superagent 219.133.49.168 8000 4000 5000”,其中的“219.133.49.168”是腾讯的QQ服务器地址,之后在本机上运行“superagent-t 61.54.56.90 5000 8000”,在QQ的设置窗口中将QQ服务器的IP修改为“127.0.0.1”,端口仍设为8000,这样就可以将本机伪装为QQ服务器,在使用QQ聊天时,从本机发出的数据包经过本机的8000端口到网上主机的5000,再发送到网上主机的4000端口,最后发送到QQ服务器的8000端口,在从本机和网上主机的通讯时,使用的是TCP协议,网上主机和QQ服务器之间才使用UDP协议,这样就巧妙的突破了本网中的UDP协议封锁。当然,如果在本网中只是对QQ的端口进行了封锁,那么就可以使用专用端口映射工具“qqport”来突破端口封锁。首先将QQ设置中将服务器地址修改为“127.0.0.1”,接着运行“qqport.exe”程序,指定新的网络端口(例如2000端口),之后将QQ离线后重新上线即可。