全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3483|回复: 12
打印 上一主题 下一主题

[Windows VPS] 用vnc登陆桌面, 不输入密码最后一位也能登陆, 怎么回事

[复制链接]
1#
发表于 2012-6-12 16:53:19 | 只看该作者
这么强悍?
2#
发表于 2012-6-12 16:51:57 | 只看该作者
我的不能登陆呀
3#
发表于 2012-6-12 16:52:03 | 只看该作者
百度了一下没有答案,楼主发明了一个新东东!!!
vnc登陆口令猜解研究
来源:中国计算机联盟 作者:中计黑客 日期:2009年06月30日 访问次数:
  vnc所有帐号登陆的时候:  1.加入ip到一个列表(黑名单),并记录时间,在这个时间上+10s钟作为下一次连接拒绝时间。  2.登陆次数限制,如果失败超过5次,则加入黑名党,再等10s后才能登陆。    请 ...

  vnc所有帐号登陆的时候:
  1.加入ip到一个列表(黑名单),并记录时间,在这个时间上+10s钟作为下一次连接拒绝时间。
  2.登陆次数限制,如果失败超过5次,则加入黑名党,再等10s后才能登陆。
  
  请看下面代码:
  void
  vncServer::AddAuthHostsBlacklist(const char *machine)
  {
  omni_mutex_lock l(m_clientsLock);
  // -=- Is the specified host blacklisted?
  vncServer::BlacklistEntry *current = m_blacklist;
  // Get the current time as a 64-bit value
  SYSTEMTIME      systime;
  FILETIME      ftime;
  LARGE_INTEGER     now;
  GetSystemTime(&systime);
  SystemTimeToFileTime(&systime, &ftime);
  now.LowPart=ftime.dwLowDateTime;now.HighPart=ftime.dwHighDateTime;
  now.QuadPart /= 10000000; // Convert it into seconds
  while (current)
  {
  // Is this the entry we're interested in?
  if (_stricmp(current->_machineName, machine) == 0)
  {
  // If the host is already blocked then ignore
  if (current->_blocked)
  return;
  // Set the RefTime & failureCount
  current->_lastRefTime.QuadPart = now.QuadPart + 10;
  current->_failureCount++;
  if (current->_failureCount > 5)
  current->_blocked = TRUE;
  判定函数代码:
  while (current)
  {
  // Has the blacklist entry timed out?
  if ((now.QuadPart - current->_lastRefTime.QuadPart) > 0) {////当前时间超过隔离时间?即如果10s钟后
  // Yes. Is it a "blocked" entry?
  if (current->_blocked)
  {
  // Yes, so unblock it & re-set the reference time
  current->_blocked = FALSE;   ///超过10s,解除黑名单
  current->_lastRefTime.QuadPart = now.QuadPart + 10;
  } else
  {
  // No, so remove it
  if (previous)
  previous->_next = current->_next;
  else
  m_blacklist = current->_next;
  vncServer::BlacklistEntry *next = current->_next;
  free(current->_machineName);
  delete current;
  current = next;
  continue;
  }
  
  }
  
  // Is this the entry we're interested in?
  if ((_stricmp(current->_machineName, hostname) == 0) &&/////比较是否再黑名单里面
  (current->_blocked))
  {
  // Machine is blocked, so just reject it
  vnclog.Print(LL_CONNERR, VNCLOG("client %s rejected due to blacklist entry\n"), hostname);
  
  return vncServer::aqrReject;
  }
  
  previous = current;
  current = current->_next;
  }
  
  // Has a hostname been specified?
  if (hostname == 0) {
  vnclog.Print(LL_INTWARN, VNCLOG("verify failed - null hostname\n"));
  return vncServer::aqrReject;
  }
  
  ==================
  以上原因决定了vnc弱口令扫描的特点:
  1.密码最多只能超过5次出错,然后就会被锁定,需要10s钟解锁。
  2.出错超过5次后每猜解一个密码,都会被锁定,所以后面的密码猜解非常慢(每一个隔10s)。
4#
 楼主| 发表于 2012-6-12 16:36:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用vnc登陆桌面, 不输入密码最后一位也能登陆, 怎么回事
5#
发表于 2012-6-12 16:49:29 | 只看该作者
测试了一下,楼主果然说的对!!!!!!!!!!!!
6#
发表于 2012-6-12 17:05:02 | 只看该作者
最后一位是空格
7#
发表于 2012-6-12 17:05:20 | 只看该作者
密码长度 ?
8#
发表于 2012-6-12 17:13:42 | 只看该作者
我的不能登陆呀
9#
发表于 2012-6-12 17:20:02 | 只看该作者
是不是限制密码长度了
10#
发表于 2012-6-13 08:51:04 | 只看该作者
只有前8位有效,后面的是多余的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-10-29 22:02 , Processed in 0.066498 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表