分离加载shellcode(文件路径读取shellcode)

admin 2024年1月22日11:34:49评论16 views字数 803阅读2分40秒阅读模式

免责声明

     文章所涉及内容,仅供安全研究教学使用,由于传播、利用本文所提供的信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任

前言

为了避免杀毒软件的监测,我们通过将shellcode与加载器(loader)分开放置,达到一个防止杀软检测的原理,如果使用无阶段shellcode(stagerless)进行上线,那么shellcode的文件大小会很大,我们的loader大小还没有shellcode大,如果将shellcode放置在loader中去进行加载,那么文件的熵值会很大(例如:一个loader(含shellcode)1MB大小,那么shellcode就占文件大小的百分之90),很有可能被扫描出来,所以这里我们通过将shellcode和loader分离,然后通过loader去加载指定路径的文件,将shellcode导入。

      那么接下来我们进入正题,我们来看具体操作和代码:

分离加载shellcode(文件路径读取shellcode)

     通过文件加载shellcode,都是一些常见API函数,但是我在实验中不能运行Createfile函数,各位读者大大可以试试使用CreatefileA这个等同函数,如使用都不成功可以试试我接下来提供的方法。

分离加载shellcode(文件路径读取shellcode)

      这里我们通过模拟creatfile函数的功能创建一个函数,去读取文件,在我们自己实现的函数中我们通过文件操作函数来执行一系列操作。

      接下来是具体操作:

分离加载shellcode(文件路径读取shellcode)

      这里我们可以看到,shellcode的路径就是当前路径下的

分离加载shellcode(文件路径读取shellcode)

     双击Project4.exe可以看到成功上线,可以看到Process是Project4.exe

分离加载shellcode(文件路径读取shellcode)

     可以看到火绒没有任何反应。

     但是为了更可靠的免杀效果,我们可以对loader进行更多的免杀细节,比如断开函数调用链等等,具体可根据读者自己需求来。

原文始发于微信公众号(泾弦安全):分离加载shellcode(文件路径读取shellcode)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月22日11:34:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   分离加载shellcode(文件路径读取shellcode)http://cn-sec.com/archives/2415828.html

发表评论

匿名网友 填写信息