Admin2Sys是一种C ++恶意软件,用于从管理员帐户升级权限到NT AUTORITY SYSTEM

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/S12cybersecurity/Admin2Sys

Admin2Sys

相关技术点

  • C++编程
  • Windows系统权限提升
  • 进程访问令牌
  • 进程快照

项目用途

Admin2Sys是一个用于在Windows操作系统中将管理员账户权限提升至NT AUTHORITY SYSTEM的恶意软件。NT AUTHORITY SYSTEM是具有最高权限的用户账户。

该项目的使用过程如下:

  1. 将恶意二进制文件传输到目标系统。
  2. 执行该文件,创建一个包含SYSTEM级别访问令牌的新进程。
  3. 利用新进程的权限执行其他操作。

该项目的核心代码解释如下:

  • getToken:获取指定进程的访问令牌。
  • createProcess:创建一个新的进程,并使用指定的访问令牌。
  • GetProcessUserName:获取指定进程的访问令牌与用户名的关联。
  • main:对系统中所有进程进行遍历,获取具有NT AUTHORITY SYSTEM权限的进程的访问令牌,并创建一个具有相同权限的新进程。

该项目的目的是演示Windows系统中存在的安全漏洞,并提醒用户加强系统安全性。

Admin2Sys

Admin2Sys是一个C++恶意软件,用于从管理员帐户提升权限到NT AUTHORITY SYSTEM。 NT AUTHORITY SYSTEM是Windows操作系统中权限最高的“用户”帐户。

用法

让我们来使用并验证它:

首先,我打开了一个带有杀毒软件(Kaspersky)和Windows Defender的Windows 10 Home。

现在我传输恶意二进制文件以执行它:

 

ad1a1b7183000026

现在我执行它:

 

ad1a1b7183000038

在这种情况下,我执行了一个CMD。

 

ad1a1b7183000052

这是一个弹出的CMD,现在我执行whoami命令:

 

ad1a1b7183000102

代码

这段代码是一个C++程序,尝试在Windows系统上使用SYSTEM级别权限运行指定的应用程序,方法是找到正在运行的具有SYSTEM级别权限的进程,然后复制其访问令牌以创建具有相同权限的新进程。

以下是代码中每个函数的简要说明:

getToken:此函数获取进程ID(pid)并返回指向进程访问令牌(cToken)的句柄。它使用OpenProcess函数打开进程句柄,然后使用OpenProcessToken函数获取进程的访问令牌。

createProcess:此函数获取一个访问令牌句柄(token)和可执行文件路径(app),并创建一个具有与与访问令牌关联的进程相同的权限的新进程。它使用DuplicateTokenEx函数创建访问令牌的副本,然后使用CreateProcessWithTokenW函数创建新进程。

GetProcessUserName:此函数获取进程ID(pid)并返回与进程访问令牌关联的用户名。它使用OpenProcess函数打开进程句柄,然后使用OpenProcessToken函数获取进程的访问令牌。然后,它使用GetTokenInformation函数获取与访问令牌关联的用户SID,并使用LookupAccountSid函数将SID转换为用户名。

main:此函数是程序的入口点。它首先提示用户输入要作为SYSTEM运行的应用程序的路径。然后,它使用CreateToolhelp32Snapshot函数和Process32First和Process32Next函数循环遍历系统上所有运行的进程。对于每个进程,它使用GetProcessUserName函数检查与进程访问令牌关联的用户名。 如果用户名为空或“NT AUTHORITY/SYSTEM”,则尝试使用getToken和createProcess函数创建具有与当前进程相同权限的新进程。如果成功创建新进程,则退出循环并终止程序。

标签:工具分享, 本地提权