News:禁止使用本博客的技术文章、源码、工具等用于非法用途,否则后果自负。

内网渗透中PSTools套件的使用

jasonx 486 1 条

前言

我本人在内网渗透中,经常会用到PSTools。
在内网中很多win7电脑,知道对方密码但无法直接远程登录的情况下,psexec的优势就体现出来了。

psexec.exe

psexec.exe是一个远程执行工具,知道对方账号密码即可远程执行命令,运行程序等等。

常用参数说明

-u 输入对方用户名
-p 输入对方密码
-d 无需等待程序执行完,直接返回。
-s 以system权限运行
-i 让对方看到你运行的程序窗口
-c 运行对方电脑里面的指定程序
cmd 返回一个cmdshell
直接输入程序名称的话,是调用本地的文件,如果要运行目标上面的文件,记得用-c参数。

用法

直接连接对方电脑,并返回一个shell

PsExec.exe \\192.168.200.215 -u administrator -p 123456 cmd

连上对方电脑,并执行自己电脑里面的一个程序。

PsExec.exe \\192.168.200.215 -u administrator -p 123456 -c c:\222.exe

执行成功后,可以看到已经把自己本地c盘下的222.exe运行在目标电脑上了。

1.jpg

连上对方电脑后,执行对方电脑里面的某个文件。

PsExec.exe \\192.168.200.215 -u administrator -p 123456 -d c:\1.exe

用system权限运行程序
下面的命令就是以system权限运行本机的c盘下面的2.exe文件。

PsExec.exe \\192.168.200.215 -u administrator -p 123456 -s -c c:\2.exe

2.jpg

如果想要让对方看到你运行的程序窗口,那么可以用-i参数。

PsExec.exe \\192.168.200.215 -u administrator -p 123456 -i -s -c c:\2.exe

psservice.exe

psservice是服务管理程序,可以用来查看、管理系统服务。

使用格式:

psservice.exe [\\远程机器ip [-u username] [-p password]] [命令]

命令如下
query [服务名]:显示某一服务的状态,如不填则显示所有服务状态。
config <服务名>:显示某一服务的配置。
start <服务名>:启动某一服务。
stop <服务名>:停止某一服务。
testart <服务名>:停止某一服务并重新启动它。
pause <服务名>:暂停某一服务。
cont <服务名>:恢复暂停的服务。
depend <服务名>:显示某一服务依存关系。
find <服务名>:在网络种搜寻指定的服务。

比如你想查看在远程机器上的telnet服务的状态可以用如下命令:

psservice \\远程机器ip query tlntsvr

比如你查看远程机器上的telnet服务的配置可以打:

psservice \\远程机器ip config tlntsvr

比如你想启动远程机器上的telnet服务可以打:

psservice \\远程机器ip start tlntsvr

其他用法以此类推。

pssuspend.exe

pssuspend是一个暂时停止进程的软件

它的使用格式为:

pssuspend [-r] [\\远程机器ip [-u username] [-p password]] 

它有三个参数:
-u:后面跟用户名 -p:后面是跟密码的,如果建立ipc连接后这两个参数则不需要。
-r:恢复进程。

比如要暂时停止一个pid号为999,名称为srm.exe的进程可以打:

pssuspend \\远程机器ip 999 或 pssuspend \\远程机器ip srm

如果想要恢复它就可以打

pssuspend -r \\远程机器ip 999  或  pssuspend -r \\远程机器ip srm

psinfo.exe

psinfo可以获得操作系统信息,硬件信息和软件信息。
它的使用格式为:

psinfo [-h] [-s] [-d] [-c] [\\远程机器ip [-u username [-p password]]]

它的参数有:
-u:后面跟用户名 -p:后面是跟密码的,如果建立ipc连接后这两个参数则不需要。
-h:是显示它安装了哪些补丁包
-s:是显示它装了哪些软件
-d:是显示磁盘信息。

比如我只想看远程机器的软硬件信息

psinfo \\远程机器ip

假如我还想看看它装了哪些补丁包

psinfo -h \\远程机器ip

假如我还想看看它磁盘信息

psinfo -d \\远程机器ip

如果我想看它装了哪些软件

psinfo -s \\远程机器ip

pslist.exe

pslist是一个查看进程的程序。

它的使用格式为:
pslist [-d] [-m] -x[-s [n] [-r n]  [\远程机器ip [-u username] [-p password]] [name | pid]

它的参数有:
-u:后面跟用户名 -p:后面是跟密码的,如果建立ipc连接后这两个参数则不需要。
-s:是使用任务管理器模式实时查看进程,可以按ESC键退出。
-r <秒数>:是和-s连用的一个参数,它用来指定任务管理器模式是的刷新间隔。(默认的刷新间隔为1秒)
-d:示各个进程的cpu使用信息。
-m:显示各个进程的存储器使用信息。
-x:非常详细显示进程的所有信息。
-t:以树型方式显示进程。

比如要查看远程机器ip上的进程的cpu使用信息

pslist -d \\远程机器ip

比如要查看一个pid号为999,名称为srm.exe进程的存储器使用信息

pslist -m \\远程机器ip 999  或 pslist -m \\远程机器ip srm

比如要以任务管理器模式实时查看61.12.23.4上进程情况,并且刷新间隔为3秒。

pslist -s -n 3 \\远程机器ip

psuptime.exe

psuptime是一个了解远程机器运行了多久的命令。
使用它只需要打:psuptime \远程机器ip

psshutdown.exe

psshutdown是一个远程关机命令

它的使用格式为:
psshutdown [-s | -r | -k [-t nn[-f]] -a | -l | -o] [\远程机器ip]

它的参数有:
-a:取消以前执行的关机指令。
-t:离关机还有多少秒。(默认是20秒)
-s:关闭机器。
-m:是要显示的信息。
-f:是关机是不保存运行的程序。
-r:表示重启。
-l:表示锁定电脑。
-o:表示注销用户。

比如我想让远程机器30秒后关闭并显示(要关机了,请保存文件)则打:

psshutdown -t 30 -s -m "要关机了,请保存文件" \\远程机器ip

如果是要重起的话打:

psshutdown -t 30 -m "要关机了,请保存文件" -r \\远程机器ip

如果要取消刚才的指令可以打:

psshutdown -a \\远程机器ip

psfile.exe

psfile是一个显示机器上的会话和有什么文件被网络中的用户的打开的命令。

它的使用格式为:
psfile [\远程机器ip [-u Username [-p Password]]] [[Id | path] [-c]]

它的参数有:
-u 后面跟用户名 -p后面是跟密码的,如果建立ipc连接后这两个参数则不需要。
-c:关闭会话或文件

比如我想看看远程机器上的会话和被远程用户打开的文件可以打:

psfile \\远程机器ip

接着就会显示

[33] C:\WINNT
    User:   ADMINISTRATOR
    Locks:  0
    Access: Read
[63] \PIPE\srvsvc
    User:   ADMINISTRATOR
    Locks:  0
    Access: Read Write

接着我想关闭id为33,路径为c:winnt的这个会话。

psfile \\远程机器ip 33 -c    或    psfile \\远程机器ip c:\winnt -c

psloggedon.exe

psloggedon是一个显示目前谁登陆的机器的命令。

它的参数只有:
-l只显示本地登陆用户而不显示其它的网络登陆用户
-x不显示登陆时间

比如说要显示远程机器现在登陆的用户可以打:

psloggedon \\远程机器ip

psgetsid.exe

psgetsid是一个远程获取账号sid信息的工具。

它的使用格式为:
psgetsid [\远程机器ip [-u username [-p password]]] [account]

它的参数有
-u 后面跟用户名 -p后面是跟密码的,如果建立ipc连接后这两个参数则不需要。

比如要看远程机器上账号名为abc的sid信息可以打:

psgetsid \\远程机器ip abc

pskill.exe

pskill是一个杀除进程的程序。

它的使用格式为:
pskill [\远程机器ip [-u username] [-p password]] 

比如要杀除一个pid号为999,名称为srm.exe的进程可以打:

pskill \\远程机器ip 999    或    pskill \\远程机器ip srm

psloglist.exe

psloglist是一个事件日志转储及管理工具
在渗透中也比较常用,特点就是可以远程删除日志。

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

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

写在最后

比较常用的也就psexec和psloglist吧。
其他的很多都可以在返回cmdshell的时候操作。

下载地址:

https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools

与本文相关的文章

网友最新评论(1)

  1. 大表哥能不能给我这套工具,在线磕头了

    mylovecp1October 25th, 2019
发表我的评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址