Admin2Sys是一种C ++恶意软件,用于从管理员帐户升级权限到NT AUTORITY SYSTEM
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/S12cybersecurity/Admin2Sys
Admin2Sys
相关技术点
- C++编程
- Windows系统权限提升
- 进程访问令牌
- 进程快照
项目用途
Admin2Sys是一个用于在Windows操作系统中将管理员账户权限提升至NT AUTHORITY SYSTEM的恶意软件。NT AUTHORITY SYSTEM是具有最高权限的用户账户。
该项目的使用过程如下:
- 将恶意二进制文件传输到目标系统。
- 执行该文件,创建一个包含SYSTEM级别访问令牌的新进程。
- 利用新进程的权限执行其他操作。
该项目的核心代码解释如下:
- getToken:获取指定进程的访问令牌。
- createProcess:创建一个新的进程,并使用指定的访问令牌。
- GetProcessUserName:获取指定进程的访问令牌与用户名的关联。
- main:对系统中所有进程进行遍历,获取具有NT AUTHORITY SYSTEM权限的进程的访问令牌,并创建一个具有相同权限的新进程。
该项目的目的是演示Windows系统中存在的安全漏洞,并提醒用户加强系统安全性。
Admin2Sys
Admin2Sys是一个C++恶意软件,用于从管理员帐户提升权限到NT AUTHORITY SYSTEM。 NT AUTHORITY SYSTEM是Windows操作系统中权限最高的“用户”帐户。
用法
让我们来使用并验证它:
首先,我打开了一个带有杀毒软件(Kaspersky)和Windows Defender的Windows 10 Home。
现在我传输恶意二进制文件以执行它:

现在我执行它:

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

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

代码
这段代码是一个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函数创建具有与当前进程相同权限的新进程。如果成功创建新进程,则退出循环并终止程序。