权限提升

  1. #include <Windows.h>
  2. #include <stdio.h>
  3. BOOL SetPrivilege(LPCTSTR lpszPrivilege, BOOL bEnablePrivilege)
  4. {
  5. TOKEN_PRIVILEGES tp;
  6. HANDLE hToken;
  7. LUID luid;
  8. OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken);
  9. LookupPrivilegeValue(NULL, lpszPrivilege, &luid);
  10. tp.PrivilegeCount = 1;
  11. tp.Privileges[0].Luid = luid;
  12. if (bEnablePrivilege)
  13. tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
  14. else
  15. tp.Privileges[0].Attributes = 0;
  16. AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), (PTOKEN_PRIVILEGES)NULL, (PDWORD)NULL);
  17. if (GetLastError() == ERROR_NOT_ALL_ASSIGNED)
  18. return FALSE;
  19. else
  20. return TRUE;
  21. }
  22. int main()
  23. {
  24. SetPrivilege(SE_DEBUG_NAME, TRUE);
  25. return 0;
  26. }

强制卸载DLL

  1. #include <Windows.h>
  2. #include <stdio.h>
  3. #include <TlHelp32.h>
  4. BOOL EnjectDll(DWORD dwPID, LPCTSTR szDllName)
  5. {
  6. BOOL bMore = FALSE, bFound = FALSE;
  7. HANDLE hSnapshot, hProcess, hThread;
  8. HMODULE hModule = NULL;
  9. MODULEENTRY32 me = { sizeof(me) };
  10. LPTHREAD_START_ROUTINE pThreadProc;
  11. hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwPID);
  12. bMore = Module32First(hSnapshot, &me);
  13. for (; bMore; bMore = Module32Next(hSnapshot, &me))
  14. {
  15. /*
  16. if (!_tcsicmp((LPCTSTR)me.szModule, szDllName) || !_tcsicmp((LPCTSTR)me.szExePath, szDllName))
  17. {
  18. bFound = TRUE;
  19. break;
  20. }
  21. */
  22. }
  23. if (!(hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID)))
  24. return FALSE;
  25. hModule = GetModuleHandle(L"kernel32.dll");
  26. pThreadProc = (LPTHREAD_START_ROUTINE)GetProcAddress(hModule, "FreeLibrary");
  27. hThread = CreateRemoteThread(hProcess, NULL, 0, pThreadProc, me.modBaseAddr, 0, NULL);
  28. WaitForSingleObject(hThread, INFINITE);
  29. CloseHandle(hThread);
  30. CloseHandle(hProcess);
  31. CloseHandle(hSnapshot);
  32. return TRUE;
  33. }
  34. int main(int argc, char *argv[])
  35. {
  36. EnjectDll(2568, L"hook.dll");
  37. return 0;
  38. }

C/C++ 提权与强制卸载DLL的更多相关文章

  1. MySQL数据库提权(一)

    一.获取Mysql登录账号和密码 1.数据库提权需要知道数据库的账号密码.以及它的配置文件,一般配置文件都在网站的根目录下,这些配置文件命名有鲜明的特征,如:conn.config.data.sql. ...

  2. 疑难杂症----udf提权无法导出.dll

    昨天进行测试一个网站,进行udf提权时候,没办法导出.dll, 起初以为是这个马的问题,后来用专用马,一样不行,但是有报错了,有上网找了半天,终于被我找到了. Mysql数据库从文件导入或导出到文件, ...

  3. WIN DLL劫持提权

    WIN DLL劫持提权 原理: Windows程序启动的时候需要DLL.如果这些DLL 不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权.通常,Windows应用程序有其预定义好的搜索DL ...

  4. WIN提权总结【本地存档-转载】

    [ web提权 ] 1.能不能执行cmd就看这个命令:net user,net不行就用net1,再不行就上传一个net到可写可读目录,执行/c c:\windows\temp\cookies\net1 ...

  5. 「白帽黑客成长记」Windows提权基本原理(下)

    上一篇文章我们介绍了信息收集方法和WMIC,今天我们将跟随作者深入学习Windows提权基本原理的内容,希望通过这两篇文章的讲解,大家能够真正掌握这个技能. 推荐阅读:「白帽黑客成长记」Windows ...

  6. 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践

    目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...

  7. [转帖]「白帽黑客成长记」Windows提权基本原理(下)

    「白帽黑客成长记」Windows提权基本原理(下) https://www.cnblogs.com/ichunqiu/p/10968674.html 提权.. 之前还在想 为什么 我的 sqlserv ...

  8. Windows提权总结

    当以低权用户进去一个陌生的windows机器后,无论是提权还是后续做什么,第一步肯定要尽可能的搜集信息.知己知彼,才百战不殆. 常规信息搜集 systeminfo 查询系统信息 hostname 主机 ...

  9. 系统提权之:Unix 提权

    郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. 系统 ...

  10. MYSQL提权总结

    最近在测试一个项目,遇到了MYSQL数据库,想尽办法提权,最终都没有成功,很是郁闷,可能是自己很久没有研究过提权导致的吧,总结一下MYSQL提权的各种姿势吧,权当复习了.关于mysql提权的方法也就那 ...

随机推荐

  1. pip 的高阶玩法

    pip 的高阶玩法 pip 应该是大家最熟悉的 Python 包安装与管理工具了,但是除了pip install 这个最常用的命令,还有很多有用的玩法.这里就介绍几个我平时会用到的,希望对大家有所帮助 ...

  2. 【MFC】CSingleLock的使用

    转载文章:CSingleLock的使用 // 先看看其代码: // 声明 class CSingleLock { // Constructors public: CSingleLock(CSyncOb ...

  3. 2020年第十一届蓝桥杯省赛 第一场(7月5日)B组个人题解

    PDF文件下载: https://files.cnblogs.com/files/Angel-Demon/CB.zip 试题 A: 跑步训练 [问题描述] 小明要做一个跑步训练. 初始时,小明充满体力 ...

  4. freeswitch修改mod_sofia模块并上报自定义头域

    概述 在之前的文章中,我们介绍了如何使用fs的event事件机制来获取呼叫的各种信息. 这些event事件一般都是底层模块定义好的,其中的各种信息已经很完备了,日常的开发需求都可以满足. 但是,总有一 ...

  5. 操作系统OS笔记2

    操作系统OS笔记2 调度和死锁 调度简介 1. 调度的基本概念 2. 调度原则 调度算法 平均周转时间: 平均带权周转时间:周转时间/服务时间 1. 先来先服务调度算法(FCFS) 当在高级调度中采用 ...

  6. kafka 在 zookeeper 中保存的数据内容

    转载请注明出处: 1. 服务器上下载 kafka : wget https://archive.apache.org/dist/kafka/2.4.0/kafka_2.12-3.2.0.tgz 2.  ...

  7. centos7使用nginx+uwsgi部署python django项目

    在django框架中,我们一般直接通过python manage.py runserver来启动提供服务,但是如果生产环境此方法不可行,而且容易导致异常退出,于是需要借助uwsgi来作为守护进程. 操 ...

  8. 结合SK和ChatGLM3B+whisper+Avalonia实现语音切换城市

    结合SK和ChatGLM3B+whisper+Avalonia实现语音切换城市 先创建一个Avalonia的MVVM项目模板,项目名称GisApp 项目创建完成以后添加以下nuget依赖 <Pa ...

  9. 问题--C中结构体想要嵌套一个该结构体指针,但是系统无法识别该类型

    代码如下: typedef struct_Person{ char name[64]; int age; //Person* person; //这里会出现一个问题,由于Person是在末尾定义的,那 ...

  10. 【LINT】cpplint 分析笔记

    cpplint 分析笔记 · [前提得看下google规范] @2022-1-13 20:44:48 error message formate: [filename] [linenum] [mess ...