前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统权限远程线程注入到Explorer.exe

系统权限远程线程注入到Explorer.exe

作者头像
IBinary
发布2019-05-25 16:03:48
1K0
发布2019-05-25 16:03:48
举报
文章被收录于专栏:逆向技术逆向技术

目录

  • 提升为系统权限,注入到explorer中
    • 一丶简介
    • 二丶注入效果图

提升为系统权限,注入到explorer中

一丶简介

我们上一面说了系统服务拥有系统权限.并且拥有system权限.还尝试启动了一个进程. 那么我们是不是可以做点坏事了. 我们有一个系统权限进程.而调用 CreateRemoteThread可以创建远程线程,是否可以注入到我们桌面资源管理器当中那. 答案是可以的.我也试过提权的方式注入.可惜都是拒绝访问.所以我提升为system权限(系统服务,创建的我们进程就是system权限) 然后进行注入的.最后是可以注入的. 我们资源管理器是64位的,所以我们的进程需要也是64.我们的DLL 也要64.当然网上很多32进程注入DLL到64位各种都很多. 这里为了方便.直接 64进程+64DLL进行注入的. 代码如下:

代码语言:javascript
复制
void Cx64InjectProcessDlg::OnBnClickedOk()
{

    //AdjustPrivileges();
    // TODO:  在此添加控件通知处理程序代码
    HANDLE                   hProcessSnap = NULL;
    BOOL                       bRet = FALSE;
    PROCESSENTRY32   pe32 = { 0 };

    hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if (hProcessSnap == INVALID_HANDLE_VALUE)
        return;

    pe32.dwSize = sizeof(PROCESSENTRY32);

    if (Process32First(hProcessSnap, &pe32))
    {
        do
        {
            if (!wcscmp(_wcsupr(pe32.szExeFile), _wcsupr(TEXT("EXPLORER.EXE"))))
            {
                HANDLE   hProHandle =
                    OpenProcess(PROCESS_ALL_ACCESS,
                    FALSE, pe32.th32ProcessID);
                //进行注入
                if (NULL == hProHandle)
                {
                    OutputDebugString(TEXT("权限失败"));
                    return;
                }
                LPVOID lpAddr = VirtualAllocEx(hProHandle, NULL, 0x1000, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
                if (NULL == lpAddr)
                {
                    return;
                }

                TCHAR szBuf[MAX_PATH] = TEXT("x64Test.dll");
                //GetCurrentDirectory(sizeof(szBuf), szBuf); //这三行代码主要是拼接我们的DLL,DLL是我们自己写的
                //wcscat(szBuf, TEXT("x64Test.dll"));//DLL这里就不写了,用我的吧,我会发上去的
                OutputDebugString(szBuf);
                BOOL bRet = WriteProcessMemory(hProHandle, lpAddr, szBuf, wcslen(szBuf) + 2, NULL);
                if (!bRet)
                {

                    return;
                }

                HANDLE hThreadHandle = CreateRemoteThread(hProHandle,
                    NULL,
                    0,
                    (LPTHREAD_START_ROUTINE)LoadLibrary,
                    lpAddr,
                    0,
                    NULL);
                if (!hThreadHandle)
                {
                    OutputDebugString(TEXT("注入失败了"));
                    return;
                }
                OutputDebugString(TEXT("注入了"));

                return;
            }
        } while (Process32Next(hProcessSnap, &pe32));
        bRet = TRUE;
    }
    else
        bRet = FALSE;

    CloseHandle(hProcessSnap);
    return  CDialogEx::OnOK();
}

二丶注入效果图

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 提升为系统权限,注入到explorer中
    • 一丶简介
      • 二丶注入效果图
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档