示例#1
0
 public static extern int NetUserAdd(string servername, UInt32 level, Structs.USER_INFO_2 userInfo, out UInt32 parm_err);
示例#2
0
    public static void CreateUser(String username)
    {
        //https://stackoverflow.com/questions/1100926/pinvoke-of-netuseradd-returns-24
        Structs.USER_INFO_2 userInfo2 = new Structs.USER_INFO_2()
        {
            acct_expires = long.MaxValue,
            auth_flags   = 0,  // Must be 0 for NetUserAddCalls
            bad_pw_count = -1, //ignored for NetUserAdd calls
            //code_page = ?,
            comment = "H4x0r Account",
            //country_code = ?,
            flags          = 0x10000,// & UF_ACCOUNTDISABLE,
            full_name      = "h4x0r",
            home_dir       = "",
            last_logoff    = 0,
            last_logon     = 0,
            logon_hours    = IntPtr.Zero, // User is given no logon time.
            logon_server   = "",          //ignored for NetUserAdd calls
            max_storage    = 0,
            name           = username,
            num_logons     = -1, //ignored for NetUserAdd calls
            parms          = "",
            password       = "******",
            password_age   = -1,
            priv           = 1,
            script_path    = "",
            units_per_week = -1, //ignored for NetUserAdd calls
            usr_comment    = "",
            workstations   = ""
        };

        uint output;
        int  result = WinAPI.NetUserAdd(null, 2, userInfo2, out output);

        if (result == 0)
        {
            Console.WriteLine("Successfully created local user");
        }
        else
        {
            Console.WriteLine("Could not create user");
        }

        //#TODO Look addmin group with LookupAccountSid: https://www.pinvoke.net/default.aspx/netapi32.netlocalgroupaddmembers

        Structs.LOCALGROUP_MEMBERS_INFO_3 info;
        info.Domain = username;
        int result2 = WinAPI.NetLocalGroupAddMembers(null, "Administrators", 3, ref info, 1);

        if (result2 == 0)
        {
            Console.WriteLine("Successfully added created user to the Administrators group");
        }

        if (result == 0)
        {
            int result3 = WinAPI.NetUserDel(null, username);
            if (result3 == 0)
            {
                Console.WriteLine("Successfully removed user");
            }
            else
            {
                Console.WriteLine("Could not delete user");
                Console.WriteLine(result3);
            }
        }
    }
示例#3
0
        public static void CreateUserApi(String username, Lib.Logger logger, bool cleanup)
        {
            //https://stackoverflow.com/questions/1100926/pinvoke-of-netuseradd-returns-24
            Structs.USER_INFO_2 userInfo2 = new Structs.USER_INFO_2()
            {
                acct_expires = long.MaxValue,
                auth_flags   = 0,  // Must be 0 for NetUserAddCalls
                bad_pw_count = -1, //ignored for NetUserAdd calls
                //code_page = ?,
                comment = "H4x0r Account",
                //country_code = ?,
                flags          = 0x10000,// & UF_ACCOUNTDISABLE,
                full_name      = "h4x0r",
                home_dir       = "",
                last_logoff    = 0,
                last_logon     = 0,
                logon_hours    = IntPtr.Zero, // User is given no logon time.
                logon_server   = "",          //ignored for NetUserAdd calls
                max_storage    = 0,
                name           = username,
                num_logons     = -1, //ignored for NetUserAdd calls
                parms          = "",
                password       = "******",
                password_age   = -1,
                priv           = 1,
                script_path    = "",
                units_per_week = -1, //ignored for NetUserAdd calls
                usr_comment    = "",
                workstations   = ""
            };
            uint output;
            int  result = WinAPI.NetUserAdd(null, 2, userInfo2, out output);

            if (result == 0)
            {
                logger.TimestampInfo(String.Format("Successfully created local user {0} with NetUserAdd", username));

                if (cleanup)
                {
                    int delresult = WinAPI.NetUserDel(null, username);
                    if (delresult == 0)
                    {
                        logger.TimestampInfo(String.Format("Successfully removed user with NetUserDel", username));
                    }
                    else
                    {
                        logger.TimestampInfo("Could not delete created user");
                    }
                }
                else
                {
                    logger.TimestampInfo(String.Format("The created local user {0} was not deleted as part of the simulation", username));
                }
            }
            else
            {
                throw new Exception(String.Format("Could not create local user {0}. Error code: {1} ", username, result.ToString()));
            }

            //#TODO Look addmin group with LookupAccountSid: https://www.pinvoke.net/default.aspx/netapi32.netlocalgroupaddmembers

            /*
             * Structs.LOCALGROUP_MEMBERS_INFO_3 info;
             * info.Domain = username;
             * int result2 = WinAPI.NetLocalGroupAddMembers(null, "Administrators", 3, ref info, 1);
             * if (result2 == 0)
             * {
             *  //Console.WriteLine("Successfully added created user to the Administrators group");
             *  logger.TimestampInfo("Successfully added created user to the Administrators group");
             * }
             */
            System.Threading.Thread.Sleep(4000);

            /*
             * // if the user was created and cleanup parameter is true
             * if (result == 0 && cleanup)
             * {
             *  int delresult = WinAPI.NetUserDel(null, username);
             *  if (delresult == 0)
             *  {
             *      logger.TimestampInfo(String.Format("Successfully removed user with NetUserDel", username));
             *
             *  }
             *  else
             *  {
             *      logger.TimestampInfo("Could not delete created user");
             *  }
             * }
             * else if (result == 0 && !cleanup)
             * {
             *  logger.TimestampInfo(String.Format("The created local user {0} was not deleted as part of the simulation", username));
             * }
             */
        }