激活用户小工具

2021-03-30 14:26:48 浏览数 (1)

前言

在渗透测试工作中,我们偶尔可能会遇到需要激活guest等用户的操作,所以编写了该工具,进行方便使用。

基本命令如下:

代码语言:javascript复制
net user guest /active:yes

编写工具

这里我们用到netusersetinfo这个api,其定义如下:

代码语言:javascript复制
NET_API_STATUS NET_API_FUNCTION NetUserSetInfo(  LPCWSTR servername,  LPCWSTR username,  DWORD   level,  LPBYTE  buf,  LPDWORD parm_err);

其中的level可以被我们所用,来进行操作,因为其1008定义是设置用户属性。

代码语言:javascript复制
typedef struct _USER_INFO_1008 {  DWORD usri1008_flags;} USER_INFO_1008, *PUSER_INFO_1008, *LPUSER_INFO_1008;

其中的UF_LOCKOUT属性可以达到我们的目的。最终代码如下:

代码语言:javascript复制
// active.cpp : 定义控制台应用程序的入口点。//
#include "stdafx.h"#include <windows.h>#include <lmaccess.h>#include <stdio.h>#include <lm.h>#pragma comment(lib, "netapi32.lib")
int _tmain(int argc, _TCHAR* argv[]){  USER_INFO_1008 ui;  ui.usri1008_flags = UF_LOCKOUT;  NET_API_STATUS nStatus = NetUserSetInfo(NULL, argv[1], 1008, (LPBYTE)&ui, NULL);  
  if (nStatus == NERR_Success) {    printf("[ ]%ls active successful...",argv[1]);  }  else  {    printf("[ ]%ls active fail,%u", argv[1],nStatus);  }
  return 0;}

效果如下:

0 人点赞