|
|
|
联系客服020-83701501

跨平台双通道端口转发

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
跨平台双通道端口转发

先说几句空话。论坛里面的机油有些时刻会会问类似的标题,譬如这两个严重帖对于某内网3389端口转发不出来 ,内网转发的标题严重,但凡内网没法转出来,独霸我上次发布的工具很简单就转出来了。再譬如这几个严重帖:提权,内网,国际的办事器,转发的时刻涌现这类情况 ,固然我没有试过,但是目测和上面的情况差不多。至因此甚么原由,我在这里简单说一下:

原由很简单,我们大要把端口转发工具(如lcx等)构思成一个桥,因为客户端和远程主机没法直连气儿接,必要一个桥梁才大要建立邻接,正常情况下,这个桥梁建立起来后,就不会被被动拆掉。但是有一些不凡情况,譬如,办事端负载较多,版本纷歧致,邻接客户端太多等标题,乡村导致桥梁建立起来后会被办事器被动拆掉。假设是直连气儿接,mstsc客户端会被动重连,而办事器端收到被动重连,会正常建立起邻接来,也即是说有些情况必要2次大要或许更频繁,才大要建立侵蚀的邻接。而假设转发工具没有思索到这一点,就会在办事器拆掉桥梁后没法再次把桥梁被动架起来,导致转发成功,经典的成功成果下列图所示:

知道原由后,筹划方式就很简单,那即是让工具否决被动重连就OK了,大要严重秒掉。说了半天空话,上面说第二天的重点模式。

阐明:
四月份,我写了端口转发工具第一版,只否决TCP传输,Windows平台。事后,又想要否决端口复用,因此对工具进级。端口复用没有侵蚀,但是照常对挨次做了大的改进,目前否决UDP和TCP双通道转发,否决WINDOWS和LINUX平台(跨平台,双通道端口转发)。假设防火墙对TCP无限制,大要尝尝UDP通道(纷歧定相对大要颠末)。至于LINUX的转发,也是有实践意义的,我就用它来SSH登录过内网的LINUX主机。(话说这次改进很心酸,写了好几天,主假设碰到种种蛋疼标题,唉~~我把碰到的标题也记载上去了,种种蛋疼啊。。)

上面开端注解:
1.端口复用尝试
1).颠末SOCKET的选项SO_REUSEADDR来终了复用测试:

Default
1234567891011121314                  ServerAddr.sin_family=AF_INET;                 ServerAddr.sin_addr.s_addr=inet_addr("10.104.171.216");//当地对外ip。也即是本机的公网IP地址                ServerAddr.sin_port=htons(RECV_PORT);                val=TRUE;               if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val))!=0)//设置socket选项用来重绑定端口              {                     printf("设置socket选项错误!n");                     return(-1);              }             if(bind(sock,(struct sockaddr FAR *)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)//绑定端口            {                   printf("socket绑定成功!");                   return(-1);              }

 

?

实验测试,在一台2003的机子上复用成功,此路摒弃。2).API HOOK,来截获80端口,从而完成复用
经测试,此路在用户态下,没法完成。原由下列:IIS是在PID为4的进程下创议的,System进程。远程线程注入没法打开System进程的句柄,更没法完成注入。 3).原始套接字:
原始套接字不必指定端口号,处于TCP上层,从而理论上,大要复用80端口。但是这个如故成功,原由为:从Windows XP SP2当前,windows再也不承诺原始套接字发送TCP数据包,因此,此路不通。 4).Winpcap编程:
此路不予思索,因为很多主机上没有布置Winpcap。因为复用端口此路碰鼻,就想到了耐久摒弃此路,想到了UDP传输,因为有些防火墙大约防TCP,但是纷歧定能防UDP。以是,思索独霸UDP通道终了中转。 二.UDP通道? ? 独霸UDP通道,远程登录报奇怪的错误,如协议错误,大要或许加密数据成功等等奇怪错误。这是TCP不曾有的。我思索到,原由下列:UDP是不可靠的传输,而TCP是不乱的,UDP没法保证数据未必可达,也不能保证数据有序。对于加密数据而言,这是致命的,因为会导致后续数据部份错误。?因此,独霸UDP作为转发通道,必须字节完成TCP的材干,也即是保证数据的有序性和不乱性。必要设置超时重传,ACK确认等等。事后,加了ACK和超时重传机制,终究侵蚀。无非速度不如TCP,我独霸的不是滑动窗口。三.跨平台的完成
完成了windows下的TCP,UDP双通道后,接着移植到Linux平台。留心,这里有两点必要留心的中央:1).Select函数。Windwos下,第一个参数大要轻易,而Linux第一个参数必要设为套接字的最大值加1.

2).Windwos的远程桌面和Linux的SSH,建立邻接后,第一个包的发起者不同。前者是客户端发送第一个包,后者是办事端发送第一个包。这一点, 对Windows和Linux的转发的流程,和独霸递次有影响。

四.挨次独霸阐明

挨次参数下列:

1.jpg ????????因为-trans,也即是中转通道感召不大,背面的进级中,没有思索-trans。此中,-udp参数是可选的,假设指定,即是独霸UDP传输。-listen模式最背面如有有-linux参数。假设目标主机是linux系统,则中转主机即-listen,背面必要加-linux参数。? ?? ???别的,windows和linux的递次近似。首先,但凡中转主机-listen终了监听,假设目标主机是linux,背面跟上-linux。假设独霸UDP通道,独霸-udp参数。? ?? ? 上面终了实践测试。
1.Linux下的TCP通道测试:假设以Windows为中转主机,必要SSH登录到远程Linux主机上。第一步,Windows主机-listen监听,最后跟-linux参数,以注解目标主机是Linux主机。

2.jpg ??????假设目标是Linux,必要客户端先邻接中转挨次: 3.png

而后,linux的SSH反弹返来:

4.jpg

这样,就大要侵蚀登录SSH了:

5.jpg

2.Windows下的UDP通道测试。

同样,先在主机上监听端口,背面不要加-linux参数,而是加-udp参数:

6.jpg

而后,远程主机反弹返来:

7.jpg

而后,mstsc邻接畴前:

8.jpg

????????登录侵蚀: 9.jpg 附:提倡最好独霸TCP通道,因为TCP通道更不乱,更疾速。? ?? ?假设TCP通道不可用,大要尝试UDP通道。独霸的时刻,假设远程是Linux主机,必要SSH客户端先邻接;假设远程是Windows,则远程端先反弹,而后客户端才邻接。 link:http://team.f4ck.net/ 本文由网络安全攻防钻研室(www.91ri.org)信息安全小组征集整理,转载请注明因由。

数安新闻+更多

证书相关+更多