其实这个功能很多服务器安全程序上都有,比如D盾,护卫神,安全狗等,这个防御软件里都有这个功能,计算机名白名单。
主要用途:
用于服务器远程桌面(RDP)攻击的一种防御手段,虽然目前我只写了一个功能,要再完善点,做到更安全的话,可以计算机名+IP+用户等限制,可以更好的进行防御远程桌面攻击,还可以设定工作时间开启远程桌面,避免黑夜里的黑客攻击。这些都是防御手段,这些功能先记着,抽时间完善!
功能演示:
计算机名未加入白名单中,即使知道服务器帐号密码,也无法登陆。
通过白名单的远程连接不会被中断
程序写测试到正式可用,耗费一天一夜。翻阅了百度 和谷歌以及逆向D盾,才写出来。
两个关键API:
[DllImport("WTSAPI32.DLL", SetLastError = true, CharSet = CharSet.Auto)]static extern bool WTSEnumerateSessions(IntPtr hServer, [MarshalAs(UnmanagedType.U4)] UInt32 Reserved, [MarshalAs(UnmanagedType.U4)] UInt32 Version, ref IntPtr ppSessionInfo, [MarshalAs(UnmanagedType.U4)] ref UInt32 pSessionInfoCount);
[DllImport("Wtsapi32.dll")]public static extern bool WTSQuerySessionInformation(IntPtr hServer, Int32 sessionId, WTS_INFO_CLASS wtsInfoClass, out IntPtr ppBuffer, out Int32 pBytesReturned);
最早发现这个功能的是在D哥的D盾上面,我就觉得挺好用的,也想自己写一个,但是当时没去深究。
这个周末总算是没浪费时间,争取为服务器的安全尽一份力。