千家信息网

从Linux到Windows的PowerShell远程处理是怎样的

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章将为大家详细讲解有关从Linux到Windows的PowerShell远程处理是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。前提条件1
千家信息网最后更新 2026年11月02日从Linux到Windows的PowerShell远程处理是怎样的

这篇文章将为大家详细讲解有关从Linux到Windows的PowerShell远程处理是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

前提条件

1)后期利用期间可以通过目标NTLM身份验证

2)重启WinRM服务

3)使用此NTLM支持PowerShell Docker镜像到Linux的PS-Remote,您可以从Linux到Windows进行PS远程到Windows。

背景资料

偶然发现在我的测试中使用PowerShell远程处理作为维护系统远程代码执行的主要方法很有用。它是一个内置的Windows功能。不幸的是,由于PowerShell Core的Linux分支支持的身份验证机制,从我的Kali Linux远程连接到我的目标并不是一件容易的事。

PowerShell远程处理需要对Kerberos身份验证,这意味着客户端计算机和目标计算机必须都连接到同一域。如果我们没有可以连接的机器来执行远程处理,那么这对测试人员来说可能会造成问题。幸运的是,我们可以选择将自己添加为目标配置中的"TrustedHost",这将允许我们执行NTLM身份验证而不是Kerberos,因此无需从域上的系统进行连接。

现在唯一的问题是,用于Linux的PowerShell核心(撰写本文时为PowerShell 6.1.0)并未支持NTLM身份验证。幸运的是,Redditors找到了在Centos上使用PowerShell进行NTLM身份验证的方法,因此我将他们的发现整合到一个简单的PowerShell Docker镜像quickbreach / powershell-ntlm中。

如何使用从Linux到Windows的PowerShell远程处理

本节将逐步介绍如何从Linux客户端到Windows目标建立远程PowerShell会话。假设您对目标PC具有管理访问权限(RDP,payload等)。

1.在目标上启用PowerShell远程处理

Enable-PSRemoting -Force

2.获取目标系统上当前TrustedHost的列表以供参考

Get-Item WSMan:\localhost\Client\TrustedHosts

3.将自己添加为目标上的TrustedHost。这是在Enter-PSSession设置阶段使用NTLM身份验证所必需的,这是唯一可用于通过PowerShell远程连接从Linux连接到Windows的身份验证机制。要完成此操作,请运行以下命令之一:使用通配符允许所有计算机在对此主机进行身份验证时使用NTLM

Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Value

或者只将您的IP添加到NTLM身份验证允许列表中

Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Concatenate -Value 192.168.10.100

4.设置并重新启动WinRM服务

Set-Service WinRM -StartMode Automatic

Restart-Service -Force WinRM

5.放入PowerShell-NTLM Docker镜像的实例。下面的示例命令还在docker镜像内的/mnt路径上安装包含PowerShell脚本

docker run -it -v /pathTo/PowerShellModules:/mnt quickbreach/powershell-ntlm

6.现在我们一直在等待:使用以下命令进入远程PowerShell会话 - 请注意,您必须指定-Authentication类型:

# Grab the creds we will be logging in with
$creds = Get-Credential

# Launch the session
# Important: you MUST state the authentication type as Negotiate
Enter-PSSession -ComputerName (Target-IP) -Authentication Negotiate -Credential $creds

# 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 {Get-HotFix}

清除痕迹

如果您的命令之前存在TrustedHosts以自行添加,请更换您的IP并运行以下命令:

$newvalue = ((Get-ChildItem WSMan:\localhost\Client\TrustedHosts).Value).Replace(",192.168.10.100","")Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Value $newvalue

或者,如果您是唯一的TrustedHosts,则可以删除所有TrustedHosts

Clear-Item WSMan:\localhost\Client\TrustedHosts

重新启动WinRM服务以完成更改(请注意,这将使您与Enter-PSSession断开连接)

Restart-Service WinRM

关于从Linux到Windows的PowerShell远程处理是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

身份 验证 目标 处理 命令 镜像 系统 计算机 支持 服务 幸运 内容 功能 客户 客户端 文章 方法 更多 机制 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网品科技 互联网科技社 互联网科技公司招聘 中化能源互联网科技招聘 科技互联网大厂 互联网软件和科技 重庆互联网医院沙龙医盟信息科技 厦门千工互联网科技有限公司 互联网5g黑科技有哪些 河南住房之家互联网科技 迪庆互联网科技招生 深圳无忧互联网科技 皮皮虾互联网科技有限公司 全球科技与互联网公司市值变化 上海万顺科技互联网有限公司招聘 科技互联网经济论坛 广州三三互联网科技有限公司 亚光科技低轨卫星互联网 瑞安市蟠桃会互联网科技有限公司 互联网科技创业有什么好项目 互联网金融监管科技数据 科技与互联网 互联网前沿科技 互联网金融科技公司干啥的 宁夏众和广鑫互联网科技有限公司 中国航天科技大学国际工业互联网 互联网科技与大数据专业 世界互联网领先科技成果获奖 互联网科技企业商标注意事项 伍佰万互联网科技是干嘛的
0