【网络安全】追踪PowerShell命令历史

1. 概述:无处遁形的"隐形"操作

在现代网络对抗中,PowerShell 是一把名副其实的双刃剑。它不仅是系统管理员的得力助手,更是高级威胁参与者(APT)和勒索软件团伙在"离地攻击"(Living off the Land, LotL)时的首选武器。

很多攻击者以为,只要不留下恶意可执行文件,或者在内存中执行脚本,就能做到"踏雪无痕"。但实际上,从 Windows 10 和 PowerShell 5.0 开始,微软引入了 PSReadLine 模块,它会在默认情况下悄悄记录用户在控制台中输入的每一条命令------这为安全防守方和应急响应人员(IR)提供了一个极具价值的"黑匣子"。


2. 核心线索:PowerShell 的历史记录文件

如果你正在进行应急响应排查,或者怀疑某台机器被植入了后门,你必须检查以下路径中的文本文件:

默认文件路径:

C:\Users<USER>\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

(注意:将 <USER> 替换为你正在调查的实际 Windows 用户名。)

3. 文件特性与作用

  • 行为类似 Bash History :对于熟悉 Linux 的人来说,这个文件就等同于 ~/.bash_history。它以纯文本格式保存了该用户在 PowerShell 交互式控制台中执行过的所有命令。
  • 独立于事件日志:即使攻击者清除了 Windows 的安全事件日志(Event Logs),只要他们没有专门处理这个文本文件,他们的命令行操作记录依然会完整保留在这里。

4. 实战应用:防守方能从中发现什么?

通过读取 ConsoleHost_history.txt,SOC 分析师和应急响应人员通常可以挖掘出以下关键指标(IOCs):

  1. 恶意载荷下载 :例如使用 Invoke-WebRequest (或 iwr)、Net.WebClient 从外部恶意服务器下载 C2 远控木马或横向移动工具。
  2. 混淆与编码命令 :发现长串的 Base64 编码数据(通常伴随 -enc-EncodedCommand 参数)。
  3. 权限提升与凭证窃取:例如运行 Mimikatz 的命令,或者尝试导出 SAM 注册表项的操作。
  4. 防御规避行为 :发现关闭 Windows Defender (Set-MpPreference) 或绕过执行策略 (-ExecutionPolicy Bypass) 的命令。

查看记录的快捷命令:

如果你当前拥有这台机器的访问权限,可以直接在 PowerShell 中运行以下命令来快速读取历史记录:

powershell 复制代码
Get-Content (Get-PSReadLineOption).HistorySavePath
相关推荐
xixixi777775 小时前
三大 AI 安全里程碑:Akamai 高危风险预警、智能体水印强制落地、PQC 量子安全全产业链统一
大数据·人工智能·安全·ai·大模型·智能体·政策
hz567897 小时前
电子远程评标系统哪家好?安全、合规、易用平台评测指南
安全·云计算·音视频·实时音视频·信息与通信
MartinYeung57 小时前
[论文学习]大语言模型安全综述:攻击、防御、对齐、度量与护栏的深度解析
学习·安全·语言模型
2301_780303908 小时前
网络安全、自动化运维、ERP、CRM、MES
运维·web安全·网络安全·自动化·安全威胁分析
学逆向的9 小时前
汇编——内存
开发语言·汇编·算法·网络安全
卓豪终端管理10 小时前
企业数据防泄漏:现代设备控制如何成为终端安全的关键防线
安全
技术不好的崎鸣同学12 小时前
[GXYCTF2019]Ping Ping Ping 思路及解法
网络·安全·web安全
学逆向的14 小时前
汇编——位运算
开发语言·汇编·算法·网络安全
GEO_youxuan15 小时前
2026年儿童电话手表推荐:定位精度、通话安全与健康监测深度横评
安全
数据知道15 小时前
安全报告怎么写才专业:渗透测试报告模板与踩坑
安全·网络安全·漏洞修复·安全报告·渗透测试报告