Jektor:一款功能强大的Windows用户模式Shellcode执行测试工具

关于Jektor

Jektor是一款功能强大的Windows用户模式Shellcode执行测试工具,该工具可以帮助广大研究人员了解和测试恶意软件所使用的各种不同技术。

宁夏ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

该工具主要针对的是Shellcode注入技术,可以演示恶意软件在目标系统上执行Shellcode时所使用的技术方法,其中包括:

  • 动态解析API函数以避免IAT包含
  • 使用未记录的NT Windows API函数
  • 通过CreateThread执行本地Shellcode
  • 通过CreateRemoteThread执行远程Shellcode
  • 通过QueueUserAPC支持本地Shellcode注入
  • 通过EnumTimeFormatsEx支持本地Shellcode注入
  • 通过CreateFiber进行本地Shellcode注入

反病毒检测

在使用动态函数地址解析时,将一组NOP预挂起到Msfvenom异或加密Shellcode Payload后,可以绕过Windows Defender。

IAT导入规避

Jektor利用了动态函数地址解析,并使用了LoadLibrary和GetProcessAddress来增加了静态分析的难度。

除此之外,很多恶意软件也不会直接调用类似VirtualAlloc这样的重要函数,这也会使得调试和通过断点转储Shellcode变得更加困难。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

 
 
 
  1. git clone https://github.com/FULLSHADE/Jektor.git 

通过CreateThread实现本地Shellcode执行

在Windows上,当你想要在当前进程中创建一个新的线程,需要调用CreateThread函数,这是在一个进程中执行恶意代码或Shellcode时会使用的一个最基本的技术了。此时,我们只需要为Shellcode分配一个内存区域,然后将Shellcode移动到分配的内存区域中,并使用指向该区域地址的指针来调用CreateThread即可。调用CreateThread时,需传递lpStartAddress 参数,而该参数是一个指向由新创建线程所执行的应用程序定义函数的指针。

通过EnumTimeFormatsEx实现本地Shellcode执行

EnumTimeFormatsEx是一个Windows API函数,可以枚举提供的时间格式,能够用于执行Shellcode,因为第一个参数可以接收用户定义的指针:

 
 
 
  1. BOOL EnumTimeFormatsEx( 
  2.  
  3.   [in]           TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx, 
  4.  
  5.   [in, optional] LPCWSTR            lpLocaleName, 
  6.  
  7.   [in]           DWORD              dwFlags, 
  8.  
  9.   [in]           LPARAM             lParam 
  10.  
  11. ); 
  • 使用VirtualAlloc为Shellcode Payload分配本地内存。
  • 使用memcpy/RtlCopyMemory将Shellcode Payload移动到新分配的内存区域。
  • 将Shellcode作为EnumTimeFormatsEx的lpTimeFmtEnumProcEx参数来传递,并触发Shellcode。

通过QueueUserAPC实现本地Shellcode执行

  • 使用VirtualAlloc为Shellcode分配内存缓冲区。
  • 使用GetCurrentProcess获取当前进程的句柄。
  • 使用WriteProcessMemory向新分配的内存区域写入Shellcode Payload。
  • 使用GetCurrentThread获取当前线程的句柄。
  • 将分配的内存区域以pfnAPC参数的形式提供给QueueUserAPC,并将新创建的APC程序加入队列。
  • 通过调用未记录的NtTestAlert函数触发Shellcode Payload,该函数将清除当前线程的APC队列。
  • 通过关闭当前线程和当前进程的句柄来执行清理任务。

项目地址

Jektor:【GitHub传送门】

名称栏目:Jektor:一款功能强大的Windows用户模式Shellcode执行测试工具
网站链接:http://www.shufengxianlan.com/qtweb/news4/194004.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联