有关终端的一些tips
reg.exe是用于操作注册表的命令,可以通过reg /?来查看所有参数,在pentest中有两个很实用的参数 reg query 读取注册表信息, reg add 添加或修改注册表内容。
设想如下场景:
webshell已经拿到,为了进一步pentest需要登陆终端,但是并不知道终端服务是否开启,或者开启了但不知道端口,首先需要知道服务是否开启
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\TERMSERVICE" /v start
可能的值有三种:0x02是自动启动,0x03是手动启动,0x04是禁用
我本地2k3的虚拟机设置的是手动启动,如果需要改为自动启动可以:reg add "HKEY_LOCALMACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\TERMSERVICE" /v start /t reg_dword /d 0x02
然后需要知道是否允许远程链接
reg query "HKEY_LOCALMACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\TERMINAL SERVER" /v fdenytsconnections
可能的值有两种0x01表示允许,0x02表示不允许
如果需要修改为允许,则:
reg add "HKEY_LOCALMACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\TERMINAL SERVER" /v fdenytsconnections /t reg_dword /d 0x1 /f
最后是查看链接端口
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\TERMINAL SERVER\WINSTATIONS\RDP-TCP" /v portnumber
0xd3d就是十进制的3389。使用操作系统自带的命令的最大好处就是能在很大程度上规避防御性软件的检测。
如果确认系统开启了终端服务但是不确定端口,可以直接tasklist /svc查看终端服务对应的pid值,然后在netstat -ano查看pid对应的端口即可。
最后:我大天朝的大牛们写出来的script trojan有那么一些确实有着很强大和实用的功能,包括操作注册表,说实话这个比起老外写的确实功能丰富很多。