$cred= New-Object System.Management.Automation.PSCredential("Administrator",$pass) Invoke-Command -Computer Sniper -ScriptBlock { whoami } -Credential $cred ###验证是否是正确的凭证 Invoke-Command -Computer Sniper -ScriptBlock { dir } -Credential $cred Invoke-Command -Computer Sniper -ScriptBlock { C:\ProgramData
AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential($username, $password) Invoke-Command AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential($username, $password) Invoke-Command credentials = New-Object System.Management.Automation.PSCredential($username, $password) 2.2 远程修改密码 通过Invoke-Command Invoke-Command -ComputerName "119.45.173.154" -Credential $credentials -ScriptBlock { # ... Invoke-Command -ComputerName "119.45.173.154" -Credential $credentials -ScriptBlock {ipconfig} 3.
使用 Invoke-Command 运行脚本或命令 配合使用 PowerShell Direct 和 Invoke-Command 非常适合需要在虚拟机上运行一个命令或一个脚本但在这一点之外无需继续与虚拟机进行交互的情况 7.1 运行单个命令: 通过使用虚拟机名称或 GUID 运行以下命令之一来创建会话: Invoke-Command -VMName <VMName> -ScriptBlock { command } Invoke-Command -VMId <VMId> -ScriptBlock { command } 出现提示时,提供虚拟机的凭据。 \script.ps1 Invoke-Command -VMId <VMId> -FilePath C:\host\script_path\script.ps1 出现提示时,提供虚拟机的凭据。 这意味着我们可以使用 Invoke-Command 或 Enter-PSSession 反复引用同一个会话而无需传递凭据。 通过使用相同的令牌,会话将保持原有状态。
释放和续订 DHCP 租约 Invoke-Command -ComputerName -ScriptBlock {ipconfig /release} Invoke-Command -ComputerName 但是,通过利用 Invoke-Command,您可以通过调用 ipconfig 命令远程(或通过脚本)执行释放和/或续订。 10.
\_ rc4_hmac_old_exp OK \_ *Password replace @ 00000000017DA1E8 (16) -> null beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami} [*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami} [*] Tasked beacon to run: Invoke-Command
但是我们可以在Detect-PTHMultithreaded之前使用Invoke-Command调试: Invoke-Command -ScriptBlock $detectPTHScriptBlock
2.Invoke-Command Invoke-Command是一个 PowerShell命令,该命令可用于在远程机器上运行脚本或其他命令,并且可以同时在多台机器上运行命令。 Invoke-Command使用WinRM服务在远程计算机上执行命令。要使用 Invoke-Command则必须在远程机器上具有适当的权限,并且WinRM服务必须在远程计算机上运行。 接下来在跳板机中使用Powershell运行Invoke-Command命令,输入Invoke-Command -ComputerName 192.168.1.3 -Credential administrator
System.Management.Automation.PSCredential ('svc_deploy', $p) (向右滑动、查看更多) 传递命令: *Evil-WinRM* PS C:\Users> invoke-command 5986 -usessl -SessionOption $so -scriptblock {whoami} timelapse\svc_deploy *Evil-WinRM* PS C:\Users> invoke-command -usessl -SessionOption $so -scriptblock {hostname} dc01 (向右滑动、查看更多) 抓取用户凭证,使用AD-Module,查看 LAPS 密码: invoke-command
| Start-Service PS > Set-Item WSMan:localhost\client\trustedhosts -value 10.20.172.106 -Force PS > Invoke-Command -ComputerName 10.20.172.106 {Write-Output "Hello" > d:\helo.txt} -Credential $cred3 PS > Invoke-Command
advfirewall set allprofiles state off (当然,和上面一样,也要先调用凭据) 图37 Use remote-exec to disable firewall on DC (d).Invoke-Command 导入ps1脚本,然后使用powerpick去执行脚本的模块 图38 You can use powershell-import command to import module 其实可以使用系统自带的Invoke-Command 模块进行远程命令执行(当然,也需要调用凭据) powerpick Invoke-Command -ComputerName DC -ScriptBlock { netsh advfirewall set allprofiles state off } 图39 Use Invoke-Command module to remote disable firewall on DC c.One-liner
computername:TARGET Available WinRm modules /m:exec /a:whoami (Invoke-Command ) /m:exec /a:C:\beacon.exe /system (Invoke-Command as System) /m:comsvcs
i.e.Enter-PSSession -ComputerName 10.20.30.190 -Authentication Negotiate -Credential $creds 您也可以以类似的方式使用Invoke-Command 功能 Invoke-Command -ComputerName 10.20.30.190 -Authentication Negotiate -Credential $creds -ScriptBlock
图37 Use remote-exec to disable firewall on DC (d).Invoke-Command(个人补充) 补充:在CS中,可以使用powershell-import导入 图38 You can use powershell-import command to import module 其实可以使用系统自带的Invoke-Command模块进行远程命令执行(当然,也需要调用凭据 ) powerpick Invoke-Command -ComputerName DC -ScriptBlock { netsh advfirewall set allprofiles state off 图39 Use Invoke-Command module to remote disable firewall on DC c.One-liner oneliner其实就是生成一段在目标beacon本地运行的
Invoke-Command Module : [Microsoft.PowerShell.Core] Runs commands on local and remote computers. view=powershell-5.1 PS C:\> Invoke-Command -ComputerName zhangsan.testLab.com -ScriptBlock {GetLocalUser - ----------------------------------------------------------------------------- ----------- PS C:\> Invoke-Command
Get-Process 我们能够从上面看到 $StartJob名字叫做Job7,Job的类型为后台Job,状态为Running,Command表示执行的命令式Get-Process (2)Invoke-Command -AsJob 1 $InvokeCommandJob = Invoke-Command -ComputerName LocalHost -ScriptBlock {Get-Process} -AsJob
4.8增加的功能 兼容PowerShell 4.0 自动复制粘贴剪切板中的内容(密码、哈希等) 自动屏蔽Windows Defender(采用了四种不同的方法) 无需密码即可利用PSexec、WMI和Invoke-Command
DC.whoamianony.org image-20210804214149793 如下图所示,成功正在远程主机上启动了一个 calc 进程: image-20210804214037070 使用 Invoke-Command 命令 Invoke-Command 是 PowerShell 上的一个命令,用来在本地或远程计算机上执行命令。 : Invoke-Command-ComputerName192.168.93.30-Credential whoamianony\administrator -Command{ipconfig}# Invoke-Command -ComputerName [host] -Credential [user] -Command {[command]}# Invoke-Command -ComputerName [host] -Credential
OWA2010SP3 -Credential Credential or Enter-PSSession -computerName OWA2010SP3 -Credential $Credential or Invoke-Command -Session $Session {Command} #这个命令也经常用 Invoke-Command -ComputerName OWA2010SP3 -Credential $Credential Test-WsMan {hostname|ip} #和上一个命令类似 Get-Item WSMan:\localhost\Client\TrustedHosts #获取TrustedHosts的值 Invoke-Command
0x04 使用Invoke-Command或Invoke-Expression命令 Invoke-Command 通过交互式PowerShell控制台执行。 invoke-command -computername Server01 -scriptblock {get-executionpolicy} | set-executionpolicy -force
powershell Invoke-Command -ComputerName TARGET -ScriptBlock {command here} beacon> powershell Invoke-Command ComputerName WIN-P2AASSD1AF1 -ScriptBlock { net localgroup administrators} [*] Tasked beacon to run: Invoke-Command