咨询:域名主机客服!261689845 建站:网站建设请点我!173022933 推广:网站推广请点我!452936608 销售:域名主机客服309128758 客户体验 | 售后平台 | 代理加盟 | 客户口碑

 

穿透防火墙的数据传输方法 - 新闻中心 - 南宁巨人网络
穿透防火墙的数据传输方法
时间:2013/3/8 9:03:59    来源:南宁巨人网络    浏览次数:380次
【字体大小:    】    【温馨提示:双击可滚动页面,单击则停止滚动。】

穿透防火墙的数据传输方法

  通常,在我们为目标主机安放好了后门需要将数据传输出去时,主机上的防火墙都会让我们遇到一些不大不小的麻烦。如果为我们自己的进程开一个端口(甚至是新建套接字),那么大部分的防火墙都会将其拦截。有什么方法能“穿透”这些防火墙呢?

  下面我为您介绍一种“洞穿”防火墙小规模传输重要数据的方法。不过,不推荐您在其它情况下使用该方法。

  其实我的思路很简单,既然防火墙会拦截未验证进程而放行已验证进程的数据传输,那我们就将其它进程中允许数据传输的套接字句柄拿为已用。具体过程如下:

  1、找出目标进程;

  2、找出SOCKET句柄;

  2、用DuplicateHandle()函数将其SOCKET转换为能被自己使用;

  3、用转换后的SOCKET进行数据传输。

  上面的过程写的很简单,但是实现起来还存在一些问题(后面再做讨论)。另外,从上面的实现方法中也可以看到一些很难控制的地方,比如在目标进程的SOCKET不能是TCP,只能是UDP,因为TCP的句柄已经跟外面建立了连接。同时,针对不同系统不同进程我们也很难定位一个稳定的进程SOCKET。

  看到这么多“麻烦”,你有点泄气了对不对?不要着急,再想一想,其实我们有一条真正通向罗马的“黄金大道”。我们都知道只要一台计算机联上了网络,那么有一种数据传输是肯定不会被拦截的,不错,就是DNS!你能想像域名解析数据都被拦截所造成的后果吗?既然DNS是不会被拦的,而且它又是UDP传输,我们就从它“开刀”。

  本文为您提供了一个通过直接控制DNS进程(其实也就是svchost.exe,不过对应用户名是NETWORK SERVICE)进行数据传输的例子。您可以点击这里查看详细源代码

  需要说明的是,在实际编程中出现了很多问题,比如说获取svchost对应用户名时没有权限(但是能够操作LOCAL SERVICE)、在句柄值为0x2c时进行getsockname时会停止运行等等。具体解决方法请您仔细阅读源代码中的注释部分。

  最后,我们可以再用测试代码看看效果。测试步骤:

  1、在一台机器上执行UdpReceiver;

  2、在安装防火墙的机器上执行第一个程序。

  小结:在本例的源代码中,因为要在多个svchost.exe进程中找出DNS进程句柄,所以通过用户名进行判断。其实本来是计划采用OpenProcessToken的,但在编程中发现始终不能实现,只好换了方法。例子中还用到了wtsapi32库函数。

        



关于我们 | 网站公告 | 参观机房 | 合作伙伴 | 代理合作 | 付款方式 | 法律声明 | 常见问题 | 在线留言 | 服务监督 | 联系我们 | 南宁网站建设
 
地址:广西南宁市广西大学正门左侧火炬路17号金达花园7栋2单元241室  邮编:530001  
业务邮箱:    技术邮箱:   财务邮箱:
在线服务空间域名:网站推广请点我!261689845 网站建设:网站建设请点我!309331800 网站推广:网站推广请点我!452936608 售后技术支持:网站推广请点我!309128758
代理合作:网站推广请点我!173022933 全国业务客服电话:0771-3824424  找巨人?  到巨人?
版权所有南宁市巨人网络 未经授权,禁止使用 中华人民共和国备案编号 :桂ICP备06014082号