远程连接Windows系统
远程连接机器
当我们获取到远程 Windows 系统的账号密码(明文或哈希)后,我们有哪些方式可以利用该账号密码进行远程连接呢?
- RDP远程连接:普通账号即可,但是动静大,容易被发现,不到万不得已最好不要远程连接:RDP登录相关
- IPC远程连接:对方主机需开启IPC共享,连接成功后执行at、tasklist、schtasks等命令可获取权限。传送门:Windows系统安全 | IPC共享和其他共享(C、D、Admin)
- WMIC远程连接:对方主机需开启admin共享,传送门:WMIC使用浅析
- smbexec远程连接:对方主机需开启C共享,传送门:smbexec的使用(c$共享)
- WinRM远程连接:对方主机需开启WinRM服务,传送门:工具使用 | WinRM远程管理工具的使用
- 哈希传递攻击:内网渗透 | 哈希传递攻击(Pass-the-Hash,PtH)
而在远程连接时,哪些类型的账号允许远程连接,哪些类型的账号不允许远程连接,如下:
工作组环境:
工作组环境连接,涉及到了 LocalAccountTokenFilterPolicy 值,后面会详细讲述这个参数。
- Windows Vista之前的系统,比如Windows Server2003、Windows XP,只要使用本地管理员组内账号即可。
- Windows Vista之后的系统,比如Windows Server2008、Windows 7,默认只能使用 administrator 账号进行连接。
域环境
- 连接普通域成员主机,只需使用普通域账号连接即可。
- 连接域控,需域管理员组内账号连接。
LocalAccountTokenFilterPolicy
而在远程连接时,涉及到 LocalAccountTokenFilterPolicy值。
在 Windows Vista 以后的操作系统中,LocalAccountTokenFilterPolicy 的默认值为0,这种情况下内置账户 administrator 进行远程连接时会直接得到具有管理员凭证的令牌,而非 administrator 的本地管理员账户进行远程连接时,会得到一个删除了管理员凭证的令牌。而域用户不受此影响。也就是说,在工作组环境中,只有 administrator 账号才能建立具备管理员权限的远程连接,其他本地管理员账户建立需要管理员权限的远程连接时则会提示权限不足。而在域环境中,只要是域管理员都可以建立具备管理员权限的远程连接。所以,在域环境中,远程连接域控可以使用域管理员,远程连接普通域主机可以使用普通域成员。
而如何修改 LocalAccountTokenFilterPolicy 的值呢?可以通过以下方法修改远程系统上 LocalAccountTokenFilterPolicy 的值,使得非 administrator 的本地管理员建立连接时也可以得到具有管理员凭证的令牌,即可正常通过各种方式远程执行命令。
修改 LocalAccountTokenFilterPolicy 为1
代码语言:javascript复制reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
恢复 LocalAccountTokenFilterPolicy 为0 (删除后需要重启 explorer.exe 才能使修改生效)
代码语言:javascript复制reg delete HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciessystem /v LocalAccountTokenFilterPolicy /f
实验
Windows Server 2003:192.168.10.15
Windows Server 2008:192.168.10.20
本地管理员账号:
- administrator
- xie
普通账号:
- hack
默认情况下,使用本地管理员账号即可连接Windows Server2003,而Windows Server2008则只能 administrator 账号才可以连接。
修改Windows Server2008的 LocalAccountTokenFilterPolicy为1后,使用本地管理员账号 xie 也可远程连接了。