PowerShell Remoting Cheatsheet

2015-09-12 7,112

我现在已经是PowerShell的一个大粉丝了。我发现自己经常在渗透测试和正常任务管理里面使用到它。这篇文章中,我分享给大家一篇基础的(PowerShell远程处理作弊条)PowerShell Remoting cheatsheet,这样你们也可以使用到它了。

 

PowerShell远程处理介绍

PowerShell远程处理本质上是一种原生的Windows远程命令执行的功能,是建立在Windows远程管理(远程管理)协议基础上的。基于我谷歌到的结果,WinRM 是通过Windows Vista Service Pack 1或更高版本,Windows 7,Windows Server 2008,Windows Server 2012的支持。

使用PowerShell远程处理

在我们开始之前,让我们确保PowerShell远程处理在您的系统上安装妥当了。

  1. 管理员权限启动PowerShell控制台,启用PowerShell远程处理。
    Enable-PSRemoting –force

    这句应该就够了,如果你遇到了问题,可以使用下面的命令。

  2. 确保WinRM服务被设置成自启动。
    # Set start mode to automatic
    Set-Service WinRM -StartMode Automatic
     
    # Verify start mode and state - it should be running
    Get-WmiObject -Class win32_service | Where-Object {$_.name -like "WinRM"}
    
  3. 设置所有远程主机到可信。(Note: 你可能后续会取消这个)
    # Trust all hosts
    Set-Item WSMan:localhost\client\trustedhosts -value *
     
    # Verify trusted hosts configuration
    Get-Item WSMan:\localhost\Client\TrustedHosts

powershell2

用PowerShell Remoting执行远程命令

现在 我们可以小玩一把了。这里有篇博文可以小览一下PowerShell Remoting :

http://blogs.technet.com/b/heyscriptingguy/archive/2009/10/29/hey-scripting-guy-october-29-2009.aspx.

这绝对是在我推荐的阅读清单上,但我会在这方面上展开一个小例子。

  • 在远程系统上执行单一命令

    Invoke-Command –ComputerName MyServer1 -ScriptBlock {Hostname}
    Invoke-Command –ComputerName MyServer1 -Credentials demo\serveradmin -ScriptBlock {Hostname}
    

    有时候使用存储在本地的脚本似乎更好。如下面几个例子所示:

    Invoke-Command -ComputerName MyServer1 -FilePath C:\pentest\Invoke-Mimikatz.ps1
    Invoke-Command -ComputerName MyServer1 -FilePath C:\pentest\Invoke-Mimikatz.ps1 -Credentials demo\serveradmin

    Also, if your dynamically generating commands or functions being passed to remote systems you can use invoke-expression through invoke-command as shown below.

  • 在远程系统上建立交互PowerShell控制台

    如果你想退出交互界面的 PowerShell session,你可以使用 "Exit-PsSession" 命令。

    Exit-PsSession

 

  • 创建后台会话

  • 列举后台会话

  • 与后台会话的交互

    Exit-PsSession

 

  • 通过后台会话执行命令

  • 移除后台会话

Wrap Up

自然,PowerShell 远程管理为管理员和渗透测试者都提供了很多选择。不管你的使用情况,我认为它归结为:

  • 如果在单一系统上执行命令,使用"Invoke-Command"。
  • 如果你想跟单一系统交互,使用 "Enter-PSSession"。
  • 如果在多系统执行多命令,使用PowerShell会话。

希望这份cheatsheet 作弊条能对你们有用。玩的开心,负责任的Hack。

关于PowerShell,安全脉搏上已经有很多文章介绍了,http://www.secpulse.com/?s=powershell

参考:

【原文:PowerShell Remoting Cheatsheet 翻译:安全脉搏SP小编  转载请注明来自安全脉搏 分享技术 悦享品质】

本文作者:SP小编

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/37479.html

Tags:
评论  (0)
快来写下你的想法吧!

SP小编

文章数:209 积分: 25

交流和分享以及愉快的玩耍

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号