最近在玩一个很牛逼的小工具叫做psexec,知道对方的管理员帐号和密码就可以远程连接对方主机的cmd,对方无需打开远程桌面等任何服务。n年前曾被黑客们用来做过很多坏事,不过这个工具对于网管和程序员来说倒是可以提供不少方便。今天在公司的域环境下试了试,结果居然爆了:

我输入的用户名及密码是正确的(用户名得包含域,即domain\username),并且这个帐号在目标机器上也是有管理员权限的。可是试了好几次都是Access is denied。

于是我登录目标机器,看了下Windows的日志,结果发现psexec发起的这次登录,居然是要用我本机当前用户的身份执行的。我本机执行cmd的用户名如下:

这个会出现在目标机器的Security日志里:

图中,Specail Logon里使用的是psexec参数里的帐号,而Logoff里显示的,却是我本机登录帐号。这个帐号在目标机器上不是管理员,这就是为什么会拒绝访问。所以解决办法很简单,有两种。第一种是把我本地的登录帐号(ITLInfosys\Edi_408764)加到目标机器的管理员组内。再次执行psexec就可以连接成功:

第二种办法,是用目标机器的域帐号登录自己的机器,未必要在管理员组,再用这个身份去执行psexec,也是可以成功的。(这个比较适合黑客入侵的场合吧)

最后申明,本文纯属技术研究为目的,仅仅是为网管和程序员提供方便,请不要用来入侵别人机器,后果自负。