PsTools是Sysinternals Suite中一款排名靠前的一个安全管理工具套件。现在被微软收购。目前pstools中含有12款各式各样的小工具,在批量管理方面有很多用途。

所有的pstool第一次运行时都会弹框。可以用–accepteula这个参数绕过。

还有所有的pstool都支持IPC$,一旦IPC$共享是连接的就不用输入-u 和-p这两个参数。

如何建立IPC$连接。命令如下:

Net user \目标ip\ 密码 /user:用户
例如:Net user \192.168.1.3\ 123456 /user:test 

建立后所有的ps工具都将可以不用输入用户和密码了。

其中12款工具简介如下:

  • PsExec – 远程执行进程
  • PsFile – 显示远程打开的文件
  • PsGetSid – 显示计算机或用户的 SID
  • PsInfo – 列出有关系统的信息
  • PsKill – 按名称或进程 ID 终止进程
  • PsList – 列出有关进程的详细信息
  • PsLoggedOn – 查看在本地通过资源共享(包含所有资源)登录的用户
  • PsLogList – 转储事件日志记录
  • PsPasswd - 更改帐户密码
  • PsService – 查看和控制服务
  • PsShutdown – 关闭并重新启动(可选)计算机
  • PsSuspend – 暂停进程

这里对其中的几个工具进行详解,其他的将只介绍用法。

 

psexec的应用详解

Pstools中最强大最常利用的工具就属psexec这款工具。这款工具的本意是替代telnet这种不安全的管理方式。它最大的特点就属无需安装客服端程序就可以远程操作服务器。

简单来说,就是一旦你知道服务器或者电脑的用户名和密码,你就可以利用它远程执行系统命令。它适用于windows NT/2x/xp/vista

下面介绍详细参数:

  • -u 远程计算机的用户名
  • -p 远程计算机用户对应密码
  • -c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)
  • -d 不等待程序执行完就返回 (意思就是,当你执行一个程序无需等到他结束才返回信息)
  • -h用于目标系统是Vista或更高版本

其他参数就不做介绍,这里主要是讲用法。

 

远程登录

psexec \目标ip -u 用户名 -p 密码 进程名
psexec \192.168.1.3 –u test –p 123456 cmd.exe 

这样可以连接到一台远程服务器,并获得一个cmdshell,shell权限即为当前用户权限。

需要注意,由于windows策略,不允许空密码登陆 ,另外比guest权限大的用户组都可以远程登陆 。

 

程序上传并执行

这里用抓取系统密码的神器getpass来演示,程序放在H:\getpass.exe

程序上传并执行命令如下:

Psexec \192.169.1.3 –u test –p 12345 –c H:\getpass.exe –d

最后一个-d的参数是防止程序远程运行后会卡住而无法返回信息 。

 

pspasswd的应用详解

Pspasswd是一个用来更改用户密码的工具,支持远程密码修改和本地密码修改。这款工具的特点就是不依靠net,exe程序进行密码修改。

本地修改命令如下:

pspasswd administrator yueyan

远程命令如下:

pspasswd \192.168.1.3 –u administrator –p 123456 guest yueyan

命令的意思就是,用administrator这个管理员账户登录后修改用户guest的密码为yueyan。

相对来说本地修改密码的功能更强大一些。

 

pskill+psinfo+pslist的应用详解

pskill.

如果你想远程结束远程主机上的一个进程,你可以使用pskill。

我们就介绍一下常用的命令:

比如我们想远程关闭远程主机正在运行的cmd这个进程,可以用pskill进行杀掉。命令如下:

pskill \192.168.1.3 –u test –p 123456 cmd.exe

 

psinfo

基本参数是:

  • -h 显示已经安装的补丁信息
  • -s 显示已安装的软件信息
  • -d 显示磁盘信息

如果我们想看远程主机的基本信息,命令如下:

psinfo –h –s –d \192.168.1.3 –u administrator –p 123456
psinfo –h –s –d \192.168.1.3 –u administrator –p 123456

 

pslist

主要特点是,显示本地或者远程计算机的进程运行情况。

主要参数:

  • -m 显示内存信息
  • -x 显示进程,内存和线程
  • -t 显示进程树
  • -s n 在任务管理器模式先运行,n指定秒,以esc结束。
  • -r n 任务管理器模式刷新速率,n指秒

例如我们想看远程计算机的进程运行情况,命令如下:

Pslist –x \192.168.1.3 –u test –p 123456

 

其他ps工具介绍

PSLOGGEDON

查看指定计算机的本地及远程登录的用户和登录时间。必须建立在IP$共享下才可以使用这个工具。

命令如下:

Psloggedon –l \192.168.1.3

 

PSLOGLIST

事件日志转储及管理。

这个对于渗透测试是非常有用的,它最大的特点就是远程清理系统日志。

常用:

psloglist \72.56.17.74 application -c > nul 
psloglist \72.56.17.74 system -c > nul
psloglist \72.56.17.74 security -c > nul 

分别是清理应用程序日志,系统运行日志,安全日志。

 

PSSERVICE

管理服务。

常用:

psservice query messenger

查询messenger服务的相关信息。

最重要的项目是:服务名称、显示名称、服务描述、服务类型、服务状态。

psservice config messenger

查询服务的配置信息。

最重要的项目是:服务名称、服务描述、服务类型、服务启动类型、服务错误控制级别、可执行文件的路径等等。

 

PSSHUTDOWN

关机工具。

常用命令:

Psshutdown –s –t 60

60秒后关机。

下面几个不常用,就简单介绍下:

#PsFile – 显示远程打开的文件
Psfile \192.168.1.3

#PsGetSid – 显示计算机或用户的 SID
Psgetsid \192.168.1.3

#PsSuspend – 暂停进程
Pssuspend \192.168.1.3 –u test –p 123456 cmd,exe

 

以上转载自 sysprogram ,在远程工作中很有用,记录于此便于查找。

 


恰不到“人到中年万事休”,

我怎肯虚度了春秋。

——关汉卿