美文网首页
32位程序执行64位shellcode

32位程序执行64位shellcode

作者: 看点书 | 来源:发表于2023-07-03 14:16 被阅读0次

    32位程序可利用段跳转执行64位shellcode
    (win32也可执行win64位的shellcode cs:eip cs在x32下为0x23,在64位下为0x33)

    1、shellcode如下

    段跳转-1.png

    执行6140863,修改CS为0x33,随后返回。

    段跳转-2.png

    返回以后,代码变成了64位代码


    段跳转-3.png

    随后执行NtCreateThreadEx, 参数分布如下:根据 fastcall 调用约定,前四个参数由寄存器传递( RCX、RDX、R8、R9),其他参数由 RSP+0x20 开始压栈,所以可以看出线程函数地址为020f0000

    NTSTATUS NtCreateThreadEx(
      PHANDLE               ThreadHandle,
      ACCESS_MASK           DesiredAccess,
      POBJECT_ATTRIBUTES    ObjectAttributes,
      HANDLE                ProcessHandle,
      LPTHREAD_START_ROUTINE lpStartAddress,
      LPVOID                lpParameter,
      BOOL                  CreateSuspended,
      SIZE_T                StackZeroBits,
      SIZE_T                SizeOfStackCommit,
      SIZE_T                SizeOfStackReserve,
      LPVOID                lpBytesBuffer
    );
    
    段跳转-4.png

    找到对应的进程ID,线程函数为020f0000,windbg 调试即可。

    相关文章

      网友评论

          本文标题:32位程序执行64位shellcode

          本文链接:https://www.haomeiwen.com/subject/axgqudtx.html