MSSQL映像劫持是一种操作系统内核级的技术,它通过将某个进程的内存布局和映像文件分离的方式,来提升某个用户的权限。MSSQL映像劫持由常规的MSSQL管理工具可使用,可以实现对本地或远程数据库的提权功能。
相关的MSSQL映像劫持技术可以实现以下功能:
(1)通过替换或编辑MSSQL数据库版本,和添加或更改MSSQL数据库中被加载的某个进程的映像文件,来实现对MSSQL数据库的提权功能。
(2)通过分离某个进程的内存布局和映像文件,可以实现对某个进程的远程操控,并可以把某些服务作为后门服务,以到达加载安全模块,获得额外权限乃至获得完全系统控制权的目的。
(3)MSSQL映像劫持可以利用CreatingToolhelp32Snapshot()api函数截取当前进程,利用Process32First()Process32Next()函数获得进程列表,并通过这些函数获得进程的内存布局和映像文件,可以实现利用这些进程替换或加载非法的脚本和模块——提权的目的。
以上就是MSSQL映像劫持技术的一些概念,大体流程以下:
1. 通过CreatingToolhelp32Snapshot()api函数获得当前进程。
2. 通过Process32First()Process32Next()函数获得进程列表,获得每一个进程的内存布局和映像文件。
3. 把某些进程的映像文件替换或加载区别的组件,实现对某个用户的提权操作。
// 例如附上一段在visual studio中实现MSSQL映像劫持技术的代码:
#include
#include
// 获得进程列表
bool GetProcessList(HANDLE& hProcessSnap)
{
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return false;
PROCESSENTRY32 pe = { 0 };
pe.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hProcessSnap, &pe))
return false;
// 其他处理
return true;
}
int main()
{
if (!GetProcessList(hProcessSnap))
return ⑴;
return 0;
}
本文来源:https://www.yuntue.com/post/229728.html | 云服务器网,转载请注明出处!

微信扫一扫打赏
支付宝扫一扫打赏