首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

由SharpNoPSExec看lateral movement

前言 Github发布了一款名叫SharpNoPSExec的工具,地址为https://github.com/juliourena/SharpNoPSExec 主要功能就是后渗透中的横向移动。...而横向移动也一直是老生常谈的话题,无论是PSexec还是wmi等等都是为了快速获取其他目标的权限,而目前各类的杀软、EDR也已经对此类攻击方式做了许多的防御,那PSexec来说,默认情况下是使用服务来目标机器上来执行代码...分析 分析该工具之前,我们先来了解服务创建、执行的基本步骤。...ChangeServiceConfigA(schService, 0xffffffff, 3, 0, payload, null, null, null, null, null, null); 此时便可以将指定服务的程序,替换为自定义程序...利用 SharpNoPSExec.exe --target=192.168.2.110 --payload="c:\windows\system32\cmd.exe /c calc.exe" --username

65020

CC++ x32 Inline Hook 代码封装

Hook 技术常被叫做挂钩技术,挂钩技术其实早在DOS时代就已经存在了,该技术是Windows系统用于替代DOS中断机制的具体实现,钩子的含义就是程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权...,执行系统调用之前执行自身程序,简单来说就是函数劫持....按下Ctrl+G输入MessageBoxA找到我们需要Hook的地方,如下所示我们为了完成弹窗转向功能,只需要在函数开头写入jmp无条件跳转指令即可,32位系统中JMP指令默认占用5个字节,前三条指令恰好...Hook 实现改标题: 通常情况下,程序设置标题会调用SetWindowTextA这个API函数,我们可以拦截这个函数,并传入自定义的窗口名称,从而实现修改指定窗口的标题的目的,代码只是在上面代码的基础稍微改一下就能实现效果...#include #include "hook.h" MyHook MsgHook; int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText

32010
您找到你想要的搜索结果了吗?
是的
没有找到

4.5 MinHook 挂钩技术

它支持钩子API函数和普通函数,并且可以运行在32位和64位Windows操作系统。其特点包括易于使用、高性能和低内存占用。...MinHook使用纯汇编语言实现,安装和卸载钩子时只需要短暂地锁定目标线程,因此对目标线程的影响非常小。...DllMain函数中,如果是DLL进程附加事件,则执行SetHook函数,如果是DLL进程分离事件,则执行UnHook函数禁用和释放钩子。...如下代码通过对SetWindowTextA函数进行挂钩,当读者点击设置标题是则触发自定义fpSetWindowTextA函数,该函数内部通过调用自定义标题修改函数实现了将当前软件标题替换为破解版本,并返回给用户...我们再次点击设置标题按钮,此时标题将被修改为破解版本,如下图所示; 实现监控进程创建 要实现监控进程创建,我们可以通过MinHook库来钩住explorer.exe程序,通过劫持程序内的CreateProcessW函数,Windows

20920

4.5 MinHook 挂钩技术

它支持钩子API函数和普通函数,并且可以运行在32位和64位Windows操作系统。其特点包括易于使用、高性能和低内存占用。...MinHook使用纯汇编语言实现,安装和卸载钩子时只需要短暂地锁定目标线程,因此对目标线程的影响非常小。...DllMain函数中,如果是DLL进程附加事件,则执行SetHook函数,如果是DLL进程分离事件,则执行UnHook函数禁用和释放钩子。...如下代码通过对SetWindowTextA函数进行挂钩,当读者点击设置标题是则触发自定义fpSetWindowTextA函数,该函数内部通过调用自定义标题修改函数实现了将当前软件标题替换为破解版本,并返回给用户...我们再次点击设置标题按钮,此时标题将被修改为破解版本,如下图所示;图片实现监控进程创建要实现监控进程创建,我们可以通过MinHook库来钩住explorer.exe程序,通过劫持程序内的CreateProcessW函数,Windows

42040

Windows 字符串处理宏(适应与Unicode及多字节字符集)

如果你进入本文时,若对与 多字节 Unicode ASCII 等这些概念不清楚的话,请转到如下文章学习: API入门系列之一 -那‘烦人’的Windows数据类型 http://blog.csdn.net...字符和字符指针类型 http://blog.csdn.net/beyondcode/article/details/4021085 Windows 下编程,说实话要注意的事情比 Linux 多很多...Unicode 字符集下可以顺利编译通过,但如果将项目属性修改为“多字节字符集”时,你会发现编译器报出如下错误: error C2664: “int MessageBoxA(HWND,LPCSTR,LPCSTR...,UINT)”: 无法将参数 2 从“wchar_t [12]”转换为LPCSTR” 原因我想大家清楚了,是由于切换了字符集以后,要传递的参数应该由原来的 wchar_t 更换为 char。...通过 Windows 提供给我们的宏 TCHAR 就可以实现我们这个需求。

30440

无可执行权限加载 ShellCode

并且机器码明文处于可执行权限的内存中,迟早会被查杀 2.规避查杀点 目标 不使用 RWX、不修改内存属性、不解密 ShellCode,就可以加载 ShellCode 解决方案 代码编写 -> 提取 ShellCode -> 机器码汇编...禁用安全检查)* 2.链接器* 清单文件: 生成清单(否)* 调试: 生成调试信息(否)* 高级: 入口点(Shell)*/ typedef int(WINAPI* pMessageBoxA)(HWND, LPCSTR..., LPCSTR, UINT); // 入口函数置顶#pragma code_seg(".text") void Shell(pMessageBoxA funcMessageBoxA) {char a[...funcMessageBoxA(0, a, a, MB_ICONWARNING);} 生成 ShellCode.exe 后提取 ShellCode (ctrl+shift+c),粘贴至 asm.txt 机器码汇编...file:asmHex = file.read().replace(' ', '').replace('\n', '')subAsm(asmHex) 输出 (保存到 ShellCode.txt): ;--栈

21310

CC++ Inline Hook 钩子编写技巧

Hook 技术通常被称为钩子技术,Hook技术是Windows系统用于替代中断机制的具体实现,钩子的含义就是程序还没有调用系统函数之前,钩子捕获调用消息并获得控制权,执行系统调用之前执行自身程序,简单来说就是函数劫持...Hook改标题: 通常情况下,程序设置标题会调用 SetWindowTextA 这个API函数,我们可以拦截这个函数,并传进不同的窗口名称,从而实现修改指定窗口的标题,其实先代码只是在上面代码的基础稍微改一下就能实现效果...Detours 库4.x开始就已经基于MIT许可开源了,GitHub地址: https://github.com/Microsoft/Detours 首先在Git上下载,下载好以后直接解压到指定磁盘,...然后使用VS的命令行工具并进入Detours目录,直接数据命令 nmak 等待编译完成,然后配置VS项目,【调试】->【属性】->【VC目录】将include和lib目录包含到项目中。...)(HWND, LPCSTR, LPCSTR, UINT) = MessageBoxA; int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR

2.2K10

BSTR LPSTR LPWSTR CString VARIANT COleVariant variant t CC

VariantInit(&va); // 初始化 int a = 2002; va.vt = VT_I4; // 指明long数据类型 va.lVal = a; // 赋值 为了方便处理VARIANT类型的变量,Windows...ATL7.0原有3.0基础完善和增加了许多字符串转换宏以及提供相应的类,它具有如图3所示的统一形式: 其中,第一个C表示“类”,以便于ATL 3.0宏相区别,第二个C表示常量,2表示“to”,EX表示要开辟一定大小的缓冲...例如: WORD wValue; BYTE loValue = LOBYTE(wValue); //取低8位 BYTE hiValue = HIBYTE(wValue); //取高8位 如何将...CStringLPCTSTR (const char *) CString cStr; const char *lpctStr=(LPCTSTR)cStr; LPCTSTRCString LPCTSTR...)str); (LPCSTR)str这种强制转换相当于(LPTSTR)(LPCTSTR)str CString类的变量需要转换为(char*)的时,使用(LPTSTR)(LPCTSTR)str 然而,LPCTSTR

1.1K20

MSBuild后门技术分析

写在前面的话 2020年,不同的美国联邦政府分支机构都受到了大规模数据泄露的影响。...除此之外,SUNBURST攻击者还会创建一个计划任务,目标设备每次启动时执行后门植入操作。 实际,我认为这种方式是很粗糙也很草率的,那怎么做才会更好呢?我们接着往下看!...MSBuild回顾 MSBuild微软引擎构建应用程序时,绝大多数时候都会使用XML文件来指导目标解决方案的构建过程。...正如CrowdStrike所提到的,植入的后门代码已经检查出了正确的解决方案,所以我们测试中也将针对MSBuild.exe文件进行操作。...szSrcFileName, ; LPCSTR szDestFileName, ; LPCSTR szSrcDir, ; LPCSTR szDestDir, ; LPCSTR szCurDir

74710

4.2 Inline Hook 挂钩技术

Hook():成员函数,通过将函数入口代码的前5个字节替换为JMP指令,将控制流重定向到指定的钩子函数,从而在指定的模块中钩子指定的函数。此函数返回一个BOOL,指示挂钩是否成功。...lpCaption: 指向要显示消息框标题栏的字符串指针,通常用于指定消息框的标题。...// 定义全局类 MyHook MsgHook; // 定义自定义Hook函数 int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption...首先实现去MessageBox弹窗,由于64位编译器无法直接内嵌汇编代码,所以我们需要Hook时只能将跳转机器码以二进制字节方式写死程序里,如下代码是一段去弹窗演示案例。...; // 拷贝Hook机器指令 MessageBoxW(NULL, L"hello lyshark", NULL, NULL); return 0; } 接着我们在上面代码的基础继续进行完善

29030

4.2 Inline Hook 挂钩技术

InlineHook 是一种计算机安全编程技术,其原理是计算机程序执行期间进行拦截、修改、增强现有函数功能。...Hook():成员函数,通过将函数入口代码的前5个字节替换为JMP指令,将控制流重定向到指定的钩子函数,从而在指定的模块中钩子指定的函数。此函数返回一个BOOL,指示挂钩是否成功。...lpCaption: 指向要显示消息框标题栏的字符串指针,通常用于指定消息框的标题。uType: 用于指定消息框的按钮和图标样式,可以使用预定义的常量值进行设置,如MB_OK、MB_YESNO等。...// 定义全局类MyHook MsgHook;// 定义自定义Hook函数int WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption...首先实现去MessageBox弹窗,由于64位编译器无法直接内嵌汇编代码,所以我们需要Hook时只能将跳转机器码以二进制字节方式写死程序里,如下代码是一段去弹窗演示案例。

50320

Windows字符集的统一与转换

Windows字符集的统一与转换 一、字符集的历史渊源 Windows编程时经常会遇到编码转换的问题,一直以来让刚接触的人摸不着头脑。...要显示字符信息,就需要将之转换为二进制信息表示——编码。“可悲”的是计算机是美国人发明的,而英语就是26个英文字母和一些常用标点符号的组合,这些字符称为ASCLL字符集。...尤其是中文的编码,中国大陆、中国香港、中国台湾的中文编码方式截然不同,这就给信息的共享带来了很大的困难,最明显的是早期港台的网页到大陆打开时没有编码转换时就无法正常显示。...Unicode标准编码方式是使用2个字节编码, 16位编码可以表示65536个字符,即UTF-16,基本能表示世界所有语言常用的字符。...一个Unicode字符集的项目中使用MBCS的函数调用是常有的事情,例如系统API WinExec是执行一个Windows命令,它的第一个参数LPCSTR lpCmdLine标识了它只接收MBCS的字符串

1.4K100
领券