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

系统权限远程线程注入到Explorer.exe的更多相关文章
- 安全之路 —— 借助DLL进行远程线程注入实现穿墙与隐藏进程
简介 大多数后门或病毒要想初步实现隐藏进程,即不被像任务管理器这样典型的RING3级进程管理器找到过于明显的不明进程,其中比较著名的方法就是通过远程线程注入的方法注入将恶意进程的DLL文 ...
- 远程线程注入dll,突破session 0
前言 之前已经提到过,远线程注入和内存写入隐藏模块,今天介绍突破session 0的dll注入 其实今天写这个的主要原因就是看到倾旋大佬有篇文章提到:有些反病毒引擎限制从lsass中dump出缓存,可 ...
- windows-CODE注入(远程线程注入)
远程线程注入(先简单说,下面会详细说)今天整理下代码注入(远程线程注入),所谓代码注入,可以简单的理解为是在指定内进程里申请一块内存,然后把我们自己的执行代码和一些变量拷贝进去(通常是以启线程的方式) ...
- 安全之路 —— 无DLL文件实现远程线程注入
简介 在之前的章节中,笔者曾介绍过有关于远程线程注入的知识,将后门.dll文件注入explorer.exe中实现绕过防火墙反弹后门.但一个.exe文件总要在注入时捎上一个.dll文件着 ...
- 详细解读:远程线程注入DLL到PC版微信
一.远程线程注入的原理 1.其基础是在 Windows 系统中,每个 .exe 文件在双击打开时都会加载 kernel32.dll 这个系统模块,该模块中有一个 LoadLibrary() 函数,可以 ...
- 远程线程注入DLL突破session 0 隔离
远程线程注入DLL突破session 0 隔离 0x00 前言 补充上篇的远程线程注入,突破系统SESSION 0 隔离,向系统服务进程中注入DLL. 0x01 介绍 通过CreateRemoteTh ...
- 远程线程注入DLL
远程线程注入 0x00 前言 远程线程注入是一种经典的DLL注入技术.其实就是指一个新进程中另一个进程中创建线程的技术. 0x01 介绍 1.远程线程注入原理 画了一个图大致理解了下远程线程注入dll ...
- 远程线程注入突破SESSION 0
远程线程注入突破SESSION 0 SESSION 0 隔离 在Windows XP.Windows Server 2003,以及更老版本的Windows操作系统中,服务和应用程序使用相同的会话(Se ...
- 远程线程注入方法CreateRemoteThread
最近在整理学习Windows注入方面的知识,这个远程注入前面早写过,现在看看人家博客的理解整理,整理, 需要源码的可以到我的github上下载. 链接是 https://github.com/Ars ...
随机推荐
- C# Winform 文本框默认提示信息
private string Notes = "提示文本"; private void textBox1_Leave(object sender, EventArgs e) { / ...
- Nginx配置gzip.md
参考 入门系列之在Nginx配置Gzip gzip是一种流行的数据压缩程序.您可以使用gzip压缩Nginx实时文件.这些文件在检索时由支持它的浏览器解压缩,好处是web服务器和浏览器之间传输的数据量 ...
- 不用Pageant告别Pageant Windows10下TortoiseGit和Git配置使用同一SSH密钥
关于Git使用SSH免密连接参考:https://blog.csdn.net/qq_32786873/article/details/80570788 关于Windows10下TortoiseGit使 ...
- vue中对象数组去重
其实很简单,一般的数组去重可以直接用 new Set() 方法即可,但是数组对象的话,比较复杂,不能直接用,我们可以采取间接的方法来去重 unique(arr) { const res = new M ...
- Vue学习之过滤器和自定义指令小结(三)
过滤器: 过滤是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰.过滤器就是过滤用的工具.渲染数据用的!!! 我们需要知道的是: 1.Vue中的过滤器不能 ...
- QT制作一个位图画图板程序
本文学习如何创建一个Qt绘制程序,用户将能够通过使用不同的尺寸和画笔的颜色来表达他们的创造力. 主要功能:保存画板内容为图片.清除画板内容.设置画板大小.设置画笔颜色 新建基于QMainWindow的 ...
- Linux添加用户并赋予root权限
新增用户 创建一个名为qiang,其家目录位于/usr/qiang的用户 adduser -d /usr/qiang -m qiang 或直接这样,则用户的家目录会默认为/home/目录 adduse ...
- linux/unix发行清单
unix http://www.slackware.com/ https://www.freebsd.org/ http://www.netbsd.org/ https://www.opensuse. ...
- spark遇到的问题及解决方法
1. 表中数据过亿,加载速度过慢,而我只需要加载增量数据 如:加载昨天一整天的数据,添加predicates分区,方法如下: //predicates相当于是把昨天的数据分成一个区,其它的数据不加载 ...
- ShortKey – Visual Studio/VS Code etc.
Switching between .h and .cppIn Visual Studio 2013 and later :there is a default keyboard shortcut f ...