在针对大型网络的一种小型缓解措施中,利用 cmd.exe 替换 Windows 修复中的 utilman.exe,然后更改用户密码,我正在编写一个基于 EventSentry 工具的小脚本,该脚本将检测 utilman.exe已更改,我可以为其附加一个操作。但此检测将在攻击者登录到本地计算机后进行。因此,我正在编写一个脚本来更改访问权限,并阻止删除和重命名 utilman.exe,并且我想为当前登录的用户添加密码更改,然后注销。
这是我到目前为止所拥有的:
@ECHO off
takeown /f c:\windows\system32\utilman.exe
icacls c:\windows\system32\utilman.exe /deny *S-1-1-0:(DE,WD,AD,RX)
net user [NeedToGetLogedUser] 123456
shutdown -L
Run Code Online (Sandbox Code Playgroud)
我附加的操作将在另一个用户(而不是实际登录的用户)下执行此脚本。因此,我需要获取登录到计算机的实际当前用户,而不是该脚本将在其下运行的用户。
我在想:
C:\Users\MyUser>query user
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>MyUser console 1 Active none 7/9/2020 6:27 PM
Run Code Online (Sandbox Code Playgroud)
但我不知道如何解析结果,只是为了让“MyUser”单独(使用 findstr)与 net user 命令一起使用。